基于業(yè)務(wù)類別的自適應(yīng)中斷調(diào)整的制作方法
【專利摘要】提出一種包括與中斷矢量相關(guān)聯(lián)的兩個(gè)或更多個(gè)調(diào)整計(jì)時(shí)器的裝置。在一個(gè)實(shí)施例中,所述裝置包括兩個(gè)或更多個(gè)中斷矢量,并且調(diào)整計(jì)時(shí)器被設(shè)置有不同的中斷率。如果存在來自與調(diào)整計(jì)時(shí)器相關(guān)聯(lián)的隊(duì)列的中斷事件并且調(diào)整計(jì)時(shí)器到期,則中斷矢量邏輯單元發(fā)送中斷矢量。
【專利說明】基于業(yè)務(wù)類別的自適應(yīng)中斷調(diào)整
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的實(shí)施例涉及計(jì)算機(jī)系統(tǒng)的輸入/輸出接口,更具體地,本發(fā)明的實(shí)施例涉及數(shù)據(jù)業(yè)務(wù)的中斷處理。
【背景技術(shù)】
[0002]例如主機(jī)系統(tǒng)的計(jì)算設(shè)備可以包括多個(gè)中斷生成代理,如輸入/輸出(I/O)控制器。許多I/o控制器每秒能夠接收數(shù)萬或者數(shù)十萬的分組(例如,幀、信元等)。I/O控制器,包括高速I/o控制器(例如,千兆以太網(wǎng)MAC),可以將中斷用作指示I/O事件(如分組的到達(dá))的方法。與對應(yīng)于I/O控制器的設(shè)備驅(qū)動(dòng)器相關(guān)聯(lián)的中斷服務(wù)例程可以處理I/O事件。所述處理可以包括向協(xié)議堆棧指示到達(dá)的分組,然后向需要包含于所述分組的數(shù)據(jù)的應(yīng)用程序指示到達(dá)的分組。高速互連的例子包括以太網(wǎng)光纖通道(FCoE)、互聯(lián)網(wǎng)廣域RDMA協(xié)議(iWARP)、數(shù)據(jù)中心橋(DCB)上的iSCSI,等等。在虛擬化系統(tǒng)中,中斷會(huì)占據(jù)多達(dá)20,000個(gè)時(shí)鐘周期。
[0003]頻繁的中斷會(huì)降低計(jì)算設(shè)備的系統(tǒng)性能。高速率的中斷能增加CPU利用率。結(jié)果,系統(tǒng)可能成為CPU受限的且不能服務(wù)接收到的分組。此外,對協(xié)議堆棧、操作系統(tǒng)、應(yīng)用程序等其它部件可用的處理時(shí)間量將被減少。在發(fā)送確認(rèn)時(shí)會(huì)存在延時(shí),或者后續(xù)分組會(huì)被丟棄??偟南到y(tǒng)吞吐量和系統(tǒng)的可靠性將被降低,并且可能發(fā)生活鎖?!盎铈i”指的是處理器帶寬完全被中斷處理所消耗并且其它功能被餓死的狀態(tài)。
[0004]當(dāng)系統(tǒng)中的中斷級別影響系統(tǒng)性能時(shí),來自中斷生成代理的中斷級別必須得調(diào)節(jié)。一些技術(shù)包括輪詢,其不使用中斷,以限制系統(tǒng)中的中斷級別。I/o控制器也可以使用單個(gè)中斷來指示發(fā)生若干中斷事件,如正在接收十個(gè)分組,以減少中斷次數(shù)。
[0005]分層協(xié)議堆棧結(jié)構(gòu)允許復(fù)雜的通信過程分解成可管理的組分,并還允許在一定程度上模塊化系統(tǒng)設(shè)計(jì)。例如,在網(wǎng)絡(luò)環(huán)境中,耦合到主機(jī)計(jì)算機(jī)的例如以太網(wǎng)卡或者光纖通道卡的網(wǎng)絡(luò)適配器可以接收輸入/輸出(I/O)請求或?qū)闹鳈C(jī)發(fā)起的I/O請求的響應(yīng)。主機(jī)計(jì)算機(jī)操作系統(tǒng)可以包括一個(gè)或多個(gè)設(shè)備驅(qū)動(dòng)器,以與網(wǎng)絡(luò)適配器硬件進(jìn)行通信,從而管理網(wǎng)絡(luò)上傳送的I/O請求。在網(wǎng)絡(luò)適配器處接收到的數(shù)據(jù)分組可以存儲(chǔ)在主機(jī)存儲(chǔ)器中可用的已分配分組緩沖區(qū)中。主機(jī)計(jì)算機(jī)還可以包括傳輸協(xié)議驅(qū)動(dòng)器,以處理由網(wǎng)絡(luò)適配器接收到的存儲(chǔ)于分組緩沖區(qū)中的分組,并訪問嵌入到分組中的I/o命令或數(shù)據(jù)。傳輸協(xié)議驅(qū)動(dòng)器可以包括傳送控制協(xié)議(TCP)和互聯(lián)網(wǎng)協(xié)議(IP) (TCP/IP)協(xié)議堆棧,以處理在網(wǎng)絡(luò)適配器處接收到的TCP/IP分組。例如存儲(chǔ)聯(lián)網(wǎng)環(huán)境的特定計(jì)算環(huán)境可以實(shí)現(xiàn)更復(fù)雜的通信協(xié)議。
【專利附圖】
【附圖說明】
[0006]根據(jù)以下給出的詳細(xì)描述并且根據(jù)本發(fā)明的各個(gè)實(shí)施例的附圖,可以更全面地理解本發(fā)明的實(shí)施例,然而,所述描述和附圖不應(yīng)被視為將本發(fā)明限制為特定實(shí)施例,而是僅用于解釋和理解。[0007]圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的中斷處理系統(tǒng)的框圖。
[0008]圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的利用調(diào)整(moderation)計(jì)時(shí)器進(jìn)行中斷處理的圖。
[0009]圖3是利用調(diào)整計(jì)時(shí)器進(jìn)行中斷處理的過程的一個(gè)實(shí)施例的流程圖。
[0010]圖4示出了用于與本發(fā)明的一個(gè)實(shí)施例一起使用的計(jì)算機(jī)系統(tǒng)。
[0011]圖5示出了用于與本發(fā)明的一個(gè)實(shí)施例一起使用的點(diǎn)對點(diǎn)計(jì)算機(jī)系統(tǒng)。
【具體實(shí)施方式】
[0012]提出包括與中斷矢量相關(guān)聯(lián)的兩個(gè)或更多個(gè)調(diào)整計(jì)時(shí)器的裝置。在一個(gè)實(shí)施例中,所述裝置包括兩個(gè)或更多個(gè)中斷矢量,并且調(diào)整計(jì)時(shí)器設(shè)置有不同的中斷率。如果存在來自與調(diào)整計(jì)時(shí)器相關(guān)聯(lián)的隊(duì)列的中斷事件且調(diào)整計(jì)時(shí)器到期,則中斷矢量邏輯單元發(fā)送中斷矢量。
[0013]在后續(xù)的描述中,闡述多個(gè)細(xì)節(jié)來提供對本發(fā)明實(shí)施例的更詳盡描述。然而,對于本領(lǐng)域的技術(shù)人員而言,顯然可以不用這些特定細(xì)節(jié)而實(shí)踐本發(fā)明的實(shí)施例。在其他情況下,以框圖的形式而不是細(xì)節(jié)示出了已知的結(jié)構(gòu)和設(shè)備,以免模糊本發(fā)明的實(shí)施例。
[0014]后續(xù)詳細(xì)描述的一些部分借助于算法和在計(jì)算機(jī)存儲(chǔ)器內(nèi)數(shù)據(jù)位上的操作的符號化表示呈現(xiàn)。這些算法描述和表示是數(shù)據(jù)處理領(lǐng)域的技術(shù)人員用于將其工作的實(shí)質(zhì)最有效地傳達(dá)給同領(lǐng)域中的其他技術(shù)人員的手段。在本文中以及通常地將算法認(rèn)為是導(dǎo)致期望結(jié)果的自相一致的步驟序列。所述步驟是那些需要物理操縱物理量的步驟。通常,雖然不是必要的,這些量呈電信號或磁信號的形式,其能夠被存儲(chǔ)、傳輸、組合、比較以及操縱。已經(jīng)證明在時(shí)間上是便利的,主要是一般使用的原因,以將這些信號稱作位、值、元件、符號、字符、項(xiàng)目、數(shù)字等。
[0015]然而,需要牢記在心的是,所有這些和類似的術(shù)語與適當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián),且僅是應(yīng)用到這些量上的便利標(biāo)簽。除非具體聲明,否則是從以下討論中明顯得出的,可以理解的是貫穿整個(gè)描述,利用諸如“處理”或“運(yùn)算”或“計(jì)算”或者“確定”或“顯示”等的術(shù)語的討論指的是計(jì)算機(jī)系統(tǒng)或類似電子計(jì)算設(shè)備的動(dòng)作或過程,所述計(jì)算設(shè)備操縱表示為計(jì)算機(jī)寄存器和存儲(chǔ)器內(nèi)的物理(電子)量的數(shù)據(jù)并將其變換成類似表示為計(jì)算機(jī)系統(tǒng)存儲(chǔ)器或寄存器或其它這種信息存儲(chǔ)、傳送或顯示設(shè)備內(nèi)的物理量的其它數(shù)據(jù)。
[0016]本發(fā)明的實(shí)施例還涉及用于執(zhí)行本文的操作的裝置。一些裝置可以特別構(gòu)造用于所要求的目的,或者其可以包括由存儲(chǔ)在計(jì)算機(jī)內(nèi)的計(jì)算機(jī)程序可選擇地激活或配置的通用計(jì)算機(jī)。這種計(jì)算機(jī)程序可以存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,例如但是不限于,任意類型的磁盤,包括軟盤、光盤、CD-ROM、DVD-R0M,以及磁光盤、只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、EPR0M、EEPR0M、NVRAM、磁卡或光卡,或者任意類型的適于存儲(chǔ)電子指令的介質(zhì),并且每一個(gè)都耦合到計(jì)算機(jī)系統(tǒng)總線。
[0017]本文所呈現(xiàn)的算法和顯示并不固有地涉及任何具體計(jì)算機(jī)或其它裝置。各種通用系統(tǒng)可以與依照本文教導(dǎo)的程序一起使用,或者可以提供便于構(gòu)造更專用的裝置以執(zhí)行所需的方法步驟。多種這些系統(tǒng)所需的結(jié)構(gòu)根據(jù)以下描述將變得清晰。另外,本發(fā)明的實(shí)施例并不參考任何具體編程語言進(jìn)行描述。期望的是多種編程語言可以用于實(shí)現(xiàn)本文描述的本發(fā)明教導(dǎo)。[0018]機(jī)器可讀介質(zhì)包括用于存儲(chǔ)或傳送呈機(jī)器(例如,計(jì)算機(jī))可讀形式的信息。例如,機(jī)器可讀介質(zhì)包括只讀存儲(chǔ)器(ROM);隨機(jī)存取存儲(chǔ)器(RAM);磁盤存儲(chǔ)介質(zhì);光存儲(chǔ)介質(zhì);閃存設(shè)備;等等。
[0019]本文所描述的方法和裝置用于一般輸入/輸出互連。具體地,輸入/輸出互連主要參考多核處理器計(jì)算機(jī)系統(tǒng)進(jìn)行討論。然而,輸入/輸出互連并不限于此,它們可以在任意的集成電路設(shè)備或系統(tǒng)上實(shí)現(xiàn)或者與其相關(guān)聯(lián)地實(shí)現(xiàn),例如蜂窩電話、個(gè)人數(shù)字助理、嵌入控制器、移動(dòng)平臺(tái)、臺(tái)式平臺(tái)、以及服務(wù)器平臺(tái),并與例如硬件/軟件線程的其它資源結(jié)合。
[0020]鍵
[0021]提出包括與中斷矢量相關(guān)聯(lián)的兩個(gè)或更多個(gè)調(diào)整計(jì)時(shí)器的裝置。在一個(gè)實(shí)施例中,所述裝置包括兩個(gè)或更多個(gè)中斷矢量,并且調(diào)整計(jì)時(shí)器設(shè)置有不同的中斷率。如果存在來自與調(diào)整計(jì)時(shí)器相關(guān)聯(lián)的隊(duì)列的中斷事件且調(diào)整計(jì)時(shí)器到期,則中斷矢量邏輯單元發(fā)送中斷矢量。
[0022]圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的中斷處理系統(tǒng)的框圖。諸如總線和外圍部件的許多相關(guān)部件未示出,以免模糊本發(fā)明。參考圖1,在一個(gè)實(shí)施例中,系統(tǒng)包括操作系統(tǒng)網(wǎng)絡(luò)堆棧101、網(wǎng)絡(luò)驅(qū)動(dòng)器102、以及包括以太網(wǎng)控制器104的CPU103。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)驅(qū)動(dòng)器102支持基于業(yè)務(wù)類別的自適應(yīng)中斷調(diào)整(TCAM)。在一個(gè)實(shí)施例中,CPU103包括一個(gè)或多個(gè)處理核心(例如,核心110、核心111)和PC1-快速(PCIe)接口 120。在一個(gè)實(shí)施例中,CPU103經(jīng)由PCIe總線121耦合到以太網(wǎng)控制器104。
[0023]在一個(gè)實(shí)施例中,以太網(wǎng)控制器104包括DMA/PCIe接口 130、中斷矢量邏輯單元143、中斷矢量邏輯單元144、分組處理引擎170、MAC/PHY層171、以及映射寄存器164。在一個(gè)實(shí)施例中,以太網(wǎng)控制器104包括一個(gè)或多個(gè)存儲(chǔ)器設(shè)備以支持一個(gè)或多個(gè)LAN隊(duì)列161、一個(gè)或多個(gè)FCoE隊(duì)列162、以及一個(gè)或多個(gè)iWARP隊(duì)列163。中斷矢量邏輯單元143經(jīng)由“中斷矢量O”接口 121耦合以發(fā)送中斷矢量(中斷消息)。
[0024]在一個(gè)實(shí)施例中,基于業(yè)務(wù)類別的自適應(yīng)中斷調(diào)整使得中斷能夠在不同業(yè)務(wù)類別之間共享,并提供用于每個(gè)業(yè)務(wù)類別的中斷調(diào)整率。通過在來自不同業(yè)務(wù)類別(例如,LAN、FCoE或IWARP)的隊(duì)列間共享相同的中斷矢量,中斷共享減少了總的系統(tǒng)中斷。在一個(gè)實(shí)施例中,通過在來自不同業(yè)務(wù)類別的隊(duì)列上應(yīng)用不同的中斷調(diào)整率,中斷處理提供獨(dú)立的自適應(yīng)調(diào)整算法以達(dá)到用于高優(yōu)先級業(yè)務(wù)類別的更好的時(shí)延。在一個(gè)實(shí)施例中,系統(tǒng)包括硬件支持以太網(wǎng)控制器104以及設(shè)備驅(qū)動(dòng)器支持(例如,網(wǎng)絡(luò)驅(qū)動(dòng)102)。
[0025]在一個(gè)實(shí)施例中,中斷矢量邏輯單元143包括三個(gè)中斷調(diào)整計(jì)時(shí)器(ITR)。中斷矢量邏輯單元144包括四個(gè)或更多個(gè)中斷調(diào)整計(jì)時(shí)器。隊(duì)列或其它中斷原因被分配給每個(gè)ITR,以共享相同的中斷調(diào)整計(jì)時(shí)器。例如,LAN隊(duì)列161與ITR140相關(guān)聯(lián),F(xiàn)CoE隊(duì)列162與ITR141相關(guān)聯(lián),并且iWARP隊(duì)列163與ITR142相關(guān)聯(lián)。在一個(gè)實(shí)施例中,映射寄存器164 f禹合以存儲(chǔ)關(guān)于所述關(guān)聯(lián)的信息。在一個(gè)實(shí)施例中,ITR能夠服務(wù)一個(gè)或多個(gè)隊(duì)列。在一個(gè)實(shí)施例中,如果系統(tǒng)決定不區(qū)分隊(duì)列,則LAN隊(duì)列161和FCoE隊(duì)列162共享一個(gè)ITR。
[0026]在一個(gè)實(shí)施例中,ITR (例如,ITR140、ITR141、以及ITR143)共享相同的中斷矢量(即,中斷消息)以減少總的中斷矢量。在一個(gè)實(shí)施例中,中斷矢量的數(shù)量(例如,在一個(gè)例子中為2)小于與不同中斷率相關(guān)聯(lián)的調(diào)整計(jì)時(shí)器的總數(shù)量(例如,在一個(gè)例子中為7)。
[0027]圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的利用調(diào)整計(jì)時(shí)器進(jìn)行中斷處理的圖。該圖示出了結(jié)合控制中斷矢量的中斷信號邏輯(例如,中斷矢量邏輯單元143)進(jìn)行中斷處理的例子。在一個(gè)實(shí)施例中,中斷矢量邏輯單元控制何時(shí)發(fā)送中斷矢量(例如,中斷251-255)。中斷矢量邏輯單元包括三個(gè)調(diào)整計(jì)時(shí)器(ITR),例如,ITR221、ITR222以及ITR223。每個(gè)調(diào)整計(jì)時(shí)器(ITR)與一個(gè)或多個(gè)業(yè)務(wù)隊(duì)列相關(guān)聯(lián)。每個(gè)ITR設(shè)置有計(jì)時(shí)器值。例如,ITR223設(shè)置設(shè)置有比ITR221的中斷率(計(jì)時(shí)器值230,即5)更高的中斷率(計(jì)時(shí)器值232,即3)。
[0028]在一個(gè)實(shí)施例中,為了達(dá)到用于高優(yōu)先級業(yè)務(wù)類別(例如,與iWARPITR223相關(guān)聯(lián)的iWARP隊(duì)列)的更好的時(shí)延,分配較小(最小的)中斷率(例如,3個(gè)單位時(shí)間)。在一個(gè)實(shí)施例中,例如,iWARP隊(duì)列與ITR223相關(guān)聯(lián),這是因?yàn)镮TR223的中斷率被設(shè)置為3 (在ITR中是最小的)。
[0029]在一個(gè)實(shí)施例中,如果存在中斷事件并且相關(guān)聯(lián)的ITR到期,則觸發(fā)中斷矢量。中斷矢量邏輯單元將所有的ITR的值重新設(shè)置為O。在一個(gè)實(shí)施例中,執(zhí)行重新設(shè)置計(jì)時(shí)器,從而中斷時(shí)間并不累積。具有最高率的活動(dòng)事件將確定用于給定中斷矢量的總的中斷率。
[0030]在一個(gè)實(shí)施例中,例如,當(dāng)iWARP ITR223到期,并且在與ITR223相關(guān)聯(lián)的iWARP隊(duì)列中存在事件(見事件262)時(shí)觸發(fā)中斷252。在一個(gè)實(shí)施例中,事件263使得在ITR221到期時(shí)(ITR221設(shè)置為5,見計(jì)時(shí)器值230)觸發(fā)中斷矢量254。
[0031]在一個(gè)實(shí)施例中,中斷矢量邏輯單元基于三個(gè)ITR控制每個(gè)中斷矢量的調(diào)整。具有相同業(yè)務(wù)屬性的多個(gè)隊(duì)列鏈接成列表,然后被分配給共享相同中斷矢量的三個(gè)ITR中的一個(gè)。在一個(gè)實(shí)施例中,每個(gè)ITR設(shè)置在運(yùn)行過程中被軟件驅(qū)動(dòng)器進(jìn)一步調(diào)節(jié)。
[0032]在一個(gè)實(shí)施例中,僅當(dāng)存在掛起事件并且相關(guān)聯(lián)的ITR計(jì)時(shí)器到期時(shí),中斷矢量邏輯單元觸發(fā)中斷矢量(中斷消息)。當(dāng)中斷矢量被觸發(fā)時(shí),中斷矢量邏輯單元重新設(shè)置與相同中斷矢量相關(guān)聯(lián)的所有的三個(gè)ITR。在一個(gè)實(shí)施例中,通過在以太網(wǎng)控制器中提供這種機(jī)制,具有TCAIM的設(shè)備驅(qū)動(dòng)器在統(tǒng)一數(shù)據(jù)中心結(jié)構(gòu)中為每個(gè)業(yè)務(wù)類別提供定制的自適應(yīng)中斷調(diào)整(AM)算法。TCAM能應(yīng)用到單個(gè)隊(duì)列或具有相同屬性的一組隊(duì)列。TCA頂支持每個(gè)業(yè)務(wù)類別以達(dá)到更好的性能(或最優(yōu)性能),并且同時(shí)減少總的中斷以改善總體系統(tǒng)性倉泛。
[0033]在一個(gè)實(shí)施例中,TCA頂支持各種自適應(yīng)中斷調(diào)整算法,甚至是非DCB模式的,例如,UDP傳送通常在金融服務(wù)工業(yè)中使用的定向應(yīng)用程序。在這種環(huán)境中,定制化驅(qū)動(dòng)器能夠處理在發(fā)送新的UDP分組的上下文中傳送完成先前UDP分組。在一個(gè)實(shí)施例中,這種方案將中斷矢量減少到幾乎為O (非常低)。使用中斷來解決在長時(shí)間窗口中不再有分組要發(fā)送的極端情況(corner case)。在一個(gè)實(shí)施例中,通過TCAIM,用于UDP傳送的隊(duì)列被鏈接作為列表并分配給具有非常低中斷率的ITR。用于UDP接收的隊(duì)列被鏈接作為列表并分配給具有高中斷率的ITR。在一個(gè)實(shí)施例中,TCP隊(duì)列分配有不同的ITR設(shè)置,即使它們與UDP隊(duì)列共享相同的中斷矢量。
[0034]昂貴的中斷成本和大量中斷是多核或眾核系統(tǒng)中用于高速網(wǎng)絡(luò)設(shè)備的定標(biāo)瓶頸。在一個(gè)實(shí)施例中,ITR共享中斷矢量以減少總的系統(tǒng)中斷。在一個(gè)實(shí)施例中,兩個(gè)或更多個(gè)ITR (共享相同中斷矢量)設(shè)置有不同的計(jì)時(shí)器值或中斷率。這使得系統(tǒng)支持每業(yè)務(wù)類別不同的AIM算法,以提供統(tǒng)一數(shù)據(jù)中心網(wǎng)絡(luò)環(huán)境下用于每個(gè)類別的好的性能。
[0035]圖3是利用調(diào)整計(jì)時(shí)器進(jìn)行中斷處理的過程的一個(gè)實(shí)施例的流程圖。通過處理邏輯執(zhí)行所述過程,該處理邏輯可包括硬件(電路、專用邏輯等)、軟件(如在通用計(jì)算機(jī)系統(tǒng)或?qū)S脵C(jī)器上運(yùn)行的軟件)、或者兩者的結(jié)合。在一個(gè)實(shí)施例中,結(jié)合裝置(例如,以太網(wǎng)控制器、網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)器、或者參考圖1的兩者)執(zhí)行所述過程。在一個(gè)實(shí)施例中,通過關(guān)于圖4的計(jì)算機(jī)系統(tǒng)執(zhí)行所述過程。
[0036]參考圖3,在一個(gè)實(shí)施例中,處理邏輯開始于確定隊(duì)列的數(shù)量、業(yè)務(wù)類別的數(shù)量、以及中斷矢量的數(shù)量(過程框400)。在一個(gè)實(shí)施例中,處理邏輯取決于DCB結(jié)構(gòu)配置決定待支持的業(yè)務(wù)類別的數(shù)量。處理邏輯至少取決于帶寬設(shè)置和系統(tǒng)信息(例如核心的數(shù)量)決定用于每個(gè)業(yè)務(wù)類別的待支持隊(duì)列的數(shù)量。在一個(gè)實(shí)施例中,處理邏輯基于業(yè)務(wù)類別的數(shù)量和來自每個(gè)業(yè)務(wù)類別的隊(duì)列的數(shù)量決定待支持的中斷矢量的總數(shù)量。
[0037]在一個(gè)實(shí)施例中,對于來自每個(gè)業(yè)務(wù)類別的每個(gè)隊(duì)列,處理邏輯選擇具有適當(dāng)CPU親和力的中斷矢量。處理邏輯配置并分配隊(duì)列到共享中斷矢量的ITR之一。在一個(gè)實(shí)施例中,例如,將高優(yōu)先級或時(shí)延敏感業(yè)務(wù)類別隊(duì)列分配給具有高中斷率的ITR。將大批吞吐量業(yè)務(wù)類別隊(duì)列分配給具有低中斷率的ITR。
[0038]在一個(gè)實(shí)施例中,處理邏輯將調(diào)整計(jì)時(shí)器設(shè)置為不同的值(過程框401)。例如,處理邏輯基于每個(gè)隊(duì)列的業(yè)務(wù)類別屬性配置每個(gè)ITR上的初始中斷調(diào)整率。
[0039]在一個(gè)實(shí)施例中,如果存在來自與調(diào)整計(jì)時(shí)器相關(guān)聯(lián)的隊(duì)列的中斷事件并且調(diào)整計(jì)時(shí)器已經(jīng)到期,則處理邏輯觸發(fā)中斷矢量(過程框402)。在一個(gè)實(shí)施例中,觸發(fā)中斷矢量,并將中斷消息經(jīng)由PCIe總線發(fā)送給CPU。
[0040]在一個(gè)實(shí)施例中,在中斷矢量被觸發(fā)之后,處理邏輯重新設(shè)置與同一中斷矢量相關(guān)聯(lián)的所有調(diào)整計(jì)時(shí)器(過程框403)。在一個(gè)實(shí)施例中,將調(diào)整計(jì)時(shí)器重新設(shè)置為O。在一個(gè)實(shí)施例中,處理邏輯調(diào)用中斷處理程序。處理邏輯處理共享同一中斷矢量的隊(duì)列。對于共享同一 ITR的隊(duì)列,處理邏輯執(zhí)行另一級別的細(xì)粒度自適應(yīng)中斷調(diào)整控制。
[0041]在一個(gè)實(shí)施例中,基于業(yè)務(wù)分組的數(shù)量和在每次中斷處理中接收或傳送的類型的數(shù)量,處理邏輯動(dòng)態(tài)地計(jì)算和更新相關(guān)聯(lián)的具有新的設(shè)置的ITR。
[0042]在一個(gè)實(shí)施例中,業(yè)務(wù)類別與定制化AM算法相關(guān)聯(lián)。例如,iWARP隊(duì)列時(shí)延的低時(shí)延要求在AM算法中被優(yōu)先化。例如,在一個(gè)實(shí)施例中,LAN和FCoE隊(duì)列使用吞吐量優(yōu)先AIM算法以最小CPU利用率達(dá)到更高(最高)的吞吐量。
[0043]本發(fā)明的實(shí)施例可以以多種電子設(shè)備和邏輯電路實(shí)現(xiàn)。此外,包括本發(fā)明實(shí)施例的設(shè)備或電路可以包含于多種計(jì)算機(jī)系統(tǒng)中。本發(fā)明的實(shí)施例還可以包含于其它計(jì)算機(jī)系統(tǒng)拓?fù)浜腕w系結(jié)構(gòu)中。
[0044]圖4示出了結(jié)合本發(fā)明的一個(gè)實(shí)施例的計(jì)算機(jī)系統(tǒng)的例子。處理器705從級別I(LI)高速緩沖存儲(chǔ)器706、級別2 (L2)高速緩沖存儲(chǔ)器710、以及主存儲(chǔ)器715訪問數(shù)據(jù)。在本發(fā)明的其它實(shí)施例中,高速緩沖存儲(chǔ)器706可以是多級別高速緩沖存儲(chǔ)器,其包括計(jì)算機(jī)系統(tǒng)存儲(chǔ)器層級中的LI高速緩存以及例如L2高速緩存的其它存儲(chǔ)器,并且高速緩沖存儲(chǔ)器710是后續(xù)較低級別高速緩沖存儲(chǔ)器,例如L3高速緩存或者更多多級別高速緩存。此外,在其它實(shí)施例中,計(jì)算機(jī)系統(tǒng)可以使高速緩沖存儲(chǔ)器710作為用于多于一個(gè)處理器核心的共享高速緩存。
[0045]在一個(gè)實(shí)施例中,存儲(chǔ)器/圖形控制器716、IO控制器717、或者其組合集成到處理器705中。在一個(gè)實(shí)施例中,存儲(chǔ)器/圖形控制器716、IO控制器717的一部分、或者其組合集成到處理器705中。[0046]處理器705可以具有任意數(shù)量的處理核心。然而,本發(fā)明的其它實(shí)施例可以實(shí)施于系統(tǒng)中的其它設(shè)備中或者以硬件、軟件或其一些組合遍布系統(tǒng)而分布。
[0047]主存儲(chǔ)器715可以以各種存儲(chǔ)器資源實(shí)現(xiàn),例如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、硬盤驅(qū)動(dòng)(HDD)720、基于NVRAM技術(shù)的固態(tài)磁盤725、或者經(jīng)由網(wǎng)絡(luò)接口 730或經(jīng)由無線接口740的位于遠(yuǎn)離計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器資源(包含各種存儲(chǔ)設(shè)備和技術(shù))。高速緩沖存儲(chǔ)器可以位于處理器內(nèi)或者在處理器的近鄰附近,例如在處理器的局部總線707上。此外,高速緩沖存儲(chǔ)器可以包含相對較快的存儲(chǔ)器單元,例如六晶體管(6T)單元,或者基本等于或快于訪問速度的其它存儲(chǔ)器單元。
[0048]然而,本發(fā)明的其它實(shí)施例可以存在于其它電路、邏輯單元、或圖4的系統(tǒng)中的設(shè)備中。此外,本發(fā)明的其它實(shí)施例可以分布遍布若干電路、邏輯單元、或圖4所示的設(shè)備。
[0049]圖5示出了用于與本發(fā)明的一個(gè)實(shí)施例一起使用的點(diǎn)對點(diǎn)計(jì)算機(jī)系統(tǒng)。
[0050]圖5例如示出了布置為點(diǎn)對點(diǎn)(PtP)配置的計(jì)算機(jī)系統(tǒng)。特別地,圖5示出了處理器、存儲(chǔ)器、以及輸入/輸出設(shè)備通過多個(gè)點(diǎn)對點(diǎn)接口互連的系統(tǒng)。
[0051]圖5的系統(tǒng)還可以包括若干處理器,其中為了清晰僅示出兩個(gè)處理器870、880。處理器870、880中的每一個(gè)可包括本地存儲(chǔ)器控制器中心(MCH) 811、821,來與存儲(chǔ)器850、851連接。處理器870、880可以經(jīng)由點(diǎn)對點(diǎn)(PtP)接口 853利用PtP接口電路812、822交換數(shù)據(jù)。處理器870、880中的每一個(gè)可以經(jīng)由個(gè)體PtP接口 830、831利用點(diǎn)對點(diǎn)接口電路813、823、860、861與芯片組890交換數(shù)據(jù)。芯片組890還可以經(jīng)由高性能圖形接口 862與高性能圖形電路852交換數(shù)據(jù)。本發(fā)明的實(shí)施例可以耦合到計(jì)算機(jī)總線(834或835),或在芯片組890內(nèi),或者耦合到數(shù)據(jù)存儲(chǔ)裝置875,或耦合到圖5的存儲(chǔ)器850。
[0052]然而,本發(fā)明的其它實(shí)施例可以存在于其它電路、邏輯單元、或圖5的系統(tǒng)內(nèi)的設(shè)備中。此外,在本發(fā)明的其它實(shí)施例中,可以分布遍布若干電路、邏輯單元、或圖5所示的設(shè)備。
[0053]本發(fā)明并不局限于所描述的實(shí)施例,而是可以以隨附權(quán)利要求的精神和范圍內(nèi)的變型和替換進(jìn)行實(shí)踐。例如,應(yīng)該理解的是,本發(fā)明適用于與各種類型的半導(dǎo)體集成電路(IC)芯片一起使用。這些IC芯片的例子包括但不限于處理器、控制器、芯片組部件、可編程邏輯陣列(PLA)、存儲(chǔ)器芯片、網(wǎng)絡(luò)芯片等。此外,可以理解的是,已經(jīng)給出了示例性尺寸/模型/值/范圍,但是本發(fā)明的實(shí)施例并不局限于此。由于制造技術(shù)(例如,光刻法)隨著時(shí)間日益成熟,期望的是能夠制造較小尺寸的設(shè)備。
[0054]雖然本發(fā)明的實(shí)施例的替換和變型無疑對本領(lǐng)域的技術(shù)人員閱讀前述描述后變得顯而易見,但是應(yīng)該理解的是,通過例證所示出和描述的任意具體實(shí)施例并不意圖被認(rèn)為是限制性的。因此,對各個(gè)實(shí)施例的細(xì)節(jié)的引用并不意圖限制權(quán)利要求的范圍,所述權(quán)利要求本身僅引用被認(rèn)為是對本發(fā)明必要的那些特征。
【權(quán)利要求】
1.一種方法,包括: 為與第一中斷矢量相關(guān)聯(lián)的第一多個(gè)調(diào)整計(jì)時(shí)器設(shè)置計(jì)時(shí)器值,其中每個(gè)調(diào)整計(jì)時(shí)器能夠服務(wù)一個(gè)或多個(gè)隊(duì)列; 如果存在來自與第一調(diào)整計(jì)時(shí)器相關(guān)聯(lián)的第一隊(duì)列的中斷事件并且所述第一調(diào)整計(jì)時(shí)器到期,則觸發(fā)所述第一中斷矢量,其中所述第一多個(gè)調(diào)整計(jì)時(shí)器包括所述第一調(diào)整計(jì)時(shí)器和第二調(diào)整計(jì)時(shí)器;以及 響應(yīng)于所述第一中斷矢量的觸發(fā),重新設(shè)置所述第一多個(gè)調(diào)整計(jì)時(shí)器。
2.如權(quán)利要求1所述的方法,其中,所述第一多個(gè)調(diào)整計(jì)時(shí)器共享相同的第一中斷矢量,但是每個(gè)調(diào)整計(jì)時(shí)器設(shè)置有不同的中斷率。
3.如權(quán)利要求1所述的方法,其中,所述第一多個(gè)調(diào)整計(jì)時(shí)器是網(wǎng)絡(luò)接口控制器的一部分,所述網(wǎng)絡(luò)接口控制器能夠響應(yīng)于所述第一中斷矢量的觸發(fā)而經(jīng)由輸入/輸出接口發(fā)送所述第一中斷矢量。
4.如權(quán)利要求1所述的方法,還包括:為與第二中斷矢量相關(guān)聯(lián)的第二多個(gè)調(diào)整計(jì)時(shí)器設(shè)置第二組計(jì)時(shí)器值,其中中斷矢量的數(shù)量小于與不同中斷率相關(guān)聯(lián)的調(diào)整計(jì)時(shí)器的總數(shù)量。
5.如權(quán)利要求1所述的方法,其中,如果所述第一隊(duì)列是時(shí)延敏感隊(duì)列,則所述第一隊(duì)列與具有高于所述第二調(diào)整計(jì)時(shí)器的中斷率的第一中斷率的所述第一調(diào)整計(jì)時(shí)器相關(guān)聯(lián)。
6.如權(quán)利要求1所述的方法,還包括: 基于預(yù)先確定的值設(shè)置用于所述第一調(diào)整計(jì)時(shí)器的第一計(jì)時(shí)器值;以及 至少基于與所述第一調(diào)整計(jì)時(shí)器相關(guān)聯(lián)的所述一個(gè)或多個(gè)隊(duì)列的數(shù)據(jù)業(yè)務(wù),動(dòng)態(tài)更新所述第一計(jì)時(shí)器值。
7.如權(quán)利要求6所述的方法,其中,所述數(shù)據(jù)業(yè)務(wù)包括:結(jié)合與所述第一調(diào)整計(jì)時(shí)器相關(guān)聯(lián)的所述一個(gè)或多個(gè)隊(duì)列接收或傳送的分組的數(shù)量和字節(jié)數(shù)量。
8.如權(quán)利要求1所述的方法,還包括:使得一組中斷矢量包括所述第一中斷矢量,其中中斷矢量的數(shù)量至少基于業(yè)務(wù)隊(duì)列的數(shù)量。
9.如權(quán)利要求1所述的方法,還包括:確定將被允許的多個(gè)業(yè)務(wù)類別,包括包含所述一個(gè)或多個(gè)隊(duì)列的第一業(yè)務(wù)類別。
10.如權(quán)利要求1所述的方法,還包括:至少基于帶寬設(shè)置和核心數(shù)量,確定在業(yè)務(wù)類別中的隊(duì)列的數(shù)量。
11.一種裝置,包括: 與第一中斷矢量相關(guān)聯(lián)的第一多個(gè)調(diào)整計(jì)時(shí)器,其中所述第一多個(gè)調(diào)整計(jì)時(shí)器包括第一調(diào)整計(jì)時(shí)器和第二調(diào)整計(jì)時(shí)器,其中每個(gè)調(diào)整計(jì)時(shí)器能夠服務(wù)一個(gè)或多個(gè)隊(duì)列;以及 第一中斷矢量邏輯單元,如果存在來自與所述第一調(diào)整計(jì)時(shí)器相關(guān)聯(lián)的第一隊(duì)列的中斷事件并且所述第一調(diào)整計(jì)時(shí)器到期,則所述第一中斷矢量邏輯單元發(fā)送第一中斷矢量。
12.如權(quán)利要求11所述的裝置,其中,所述第一中斷矢量邏輯單元能夠在所述第一中斷矢量的觸發(fā)之后重新設(shè)置所述第一多個(gè)調(diào)整計(jì)時(shí)器。
13.如權(quán)利要求11所述的裝置,其中,所述第一多個(gè)調(diào)整計(jì)時(shí)器和所述第一中斷矢量邏輯單元是網(wǎng)絡(luò)接口控制器的一部分。
14.如權(quán)利要求11所述的裝置,還包括映射寄存器,用于至少存儲(chǔ)在所述第一隊(duì)列和所述第一調(diào)整計(jì)時(shí)器之間的關(guān)聯(lián)信息。
15.如權(quán)利要求11所述的裝置,還包括與第二中斷矢量相關(guān)聯(lián)的第二多個(gè)調(diào)整計(jì)時(shí)器,其中所述第一多個(gè)調(diào)整計(jì)時(shí)器和所述第二多個(gè)調(diào)整計(jì)時(shí)器被設(shè)置為不同的中斷率。
16.如權(quán)利要求11所述的裝置,其中,如果所述第一調(diào)整計(jì)時(shí)器用于服務(wù)更時(shí)延敏感的所述第一隊(duì)列,則所述第一調(diào)整計(jì)時(shí)器的第一中斷率高于所述第二調(diào)整計(jì)時(shí)器的第二中斷率。
17.如權(quán)利要求11所述的裝置,其中,所述第一中斷矢量邏輯單元能夠操作以設(shè)置用于所述第一調(diào)整計(jì)時(shí)器的第一計(jì)時(shí)器值,以及至少基于與所述第一調(diào)整計(jì)時(shí)器相關(guān)聯(lián)的數(shù)據(jù)業(yè)務(wù)調(diào)節(jié)所述第一計(jì)時(shí)器值。
18.—種包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的制品,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上包括數(shù)據(jù)存儲(chǔ)指令,當(dāng)由機(jī)器存取時(shí),所述指令使得所述機(jī)器執(zhí)行包括以下步驟的方法: 為與第一中斷矢量相關(guān)聯(lián)的第一多個(gè)調(diào)整計(jì)時(shí)器設(shè)置計(jì)時(shí)器值,其中每個(gè)調(diào)整計(jì)時(shí)器能夠服務(wù)一個(gè)或多個(gè)隊(duì)列; 如果存在來自與第一調(diào)整計(jì)時(shí)器相關(guān)聯(lián)的第一隊(duì)列的中斷事件并且所述第一調(diào)整計(jì)時(shí)器到期,則觸發(fā)所述第一中斷矢量,其中所述第一多個(gè)調(diào)整計(jì)時(shí)器包括所述第一調(diào)整計(jì)時(shí)器和第二調(diào)整計(jì)時(shí)器;以及 響應(yīng)于所述第一中斷矢量的觸發(fā),重新設(shè)置所述第一多個(gè)調(diào)整計(jì)時(shí)器。
19.如權(quán)利要求18所述的制品,其中,所述第一多個(gè)調(diào)整計(jì)時(shí)器共享相同的第一中斷矢量,但是每個(gè)調(diào)整計(jì)時(shí)器設(shè)置有不同的中斷率。
20.如權(quán)利要求18所述的制品`,其中,所述方法還包括:為與第二中斷矢量相關(guān)聯(lián)的第二多個(gè)調(diào)整計(jì)時(shí)器設(shè)置第二組計(jì)時(shí)器值,其中中斷矢量的數(shù)量小于與不同中斷率相關(guān)聯(lián)的調(diào)整計(jì)時(shí)器的總數(shù)量。
【文檔編號】G06F13/14GK103460199SQ201280016923
【公開日】2013年12月18日 申請日期:2012年2月8日 優(yōu)先權(quán)日:2011年3月31日
【發(fā)明者】李亞東, L·科尼特 申請人:英特爾公司