TWI569202B - 用於基於網路負載來調整處理器電力使用之設備及方法 - Google Patents
用於基於網路負載來調整處理器電力使用之設備及方法 Download PDFInfo
- Publication number
- TWI569202B TWI569202B TW105105143A TW105105143A TWI569202B TW I569202 B TWI569202 B TW I569202B TW 105105143 A TW105105143 A TW 105105143A TW 105105143 A TW105105143 A TW 105105143A TW I569202 B TWI569202 B TW I569202B
- Authority
- TW
- Taiwan
- Prior art keywords
- queue
- state
- active
- packet
- queues
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3209—Monitoring remote activity, e.g. over telephone lines or network connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Power Sources (AREA)
Description
實施例係關於一系統之電力管理,並且尤其是關於一多核心處理器之電力管理。
半導體處理和邏輯設計之進展已允許可以呈現在積體電路裝置上之邏輯數量的增加。因而,電腦系統組配已經從一系統中之單個或多數個積體電路逐步進化至在分別的積體電路上之多數個硬體線程、多數個核心、多數個裝置、及/或完全的系統。此外,隨著積體電路之密度增加,用於計算系統(自嵌入式系統至伺服器)之電力需求也逐步增強。更進一步地,軟體無效率,以及其之硬體的需求,也致使計算裝置能量消耗之增加。實際上,一些研究表明計算裝置消耗一國家(例如,美國)之整個電力供應相當大的比例。因而,極需要與積體電路相關聯的能源效益和節省。由於伺服器、桌上型電腦、筆記型電腦、超級電子書(UltrabooksTM)、平板電腦、行動電話、處理器、嵌入式系統、等等,甚至成為更普遍(自一般的電腦、汽車、以及電
視中之內含物至生物工程學),使得這些需求將增加。
依據本發明之一實施例,係特地提出一種系統,其包含:一處理器,其包含複數個核心和複數個佇列,其中各佇列包括儲存位置以儲存要藉由該等核心之至少一者被處理的封包,各佇列具有活動和不活動之一者的一對應狀態,各活動佇列被致能以儲存一進入的封包,且各不活動佇列是失能於該進入的封包之儲存,並且其中各佇列具有包含該佇列之被佔據儲存位置的計數之一對應的佇列深度;以及封包分配邏輯,其基於包含該等活動佇列之該等佇列深度總和之一總佇列深度來判定是否將該等複數個佇列之一第一佇列的狀態自一第一狀態改變至一第二狀態。
100‧‧‧設備
110‧‧‧處理器
1121-112N‧‧‧核心
1141-114N‧‧‧佇列
116‧‧‧互連邏輯
118‧‧‧快取記憶體
120‧‧‧電力管理單元
130‧‧‧網路資訊卡(NIC)
132‧‧‧封包分配邏輯
140‧‧‧網路輸入
C1-CN‧‧‧睡眠狀態
P1-PN‧‧‧低電力/性能狀態
200‧‧‧系統
210‧‧‧處理器
2121-212N‧‧‧核心
2141-114N‧‧‧佇列
216‧‧‧互連邏輯
218‧‧‧快取
220‧‧‧電力管理單元
222‧‧‧封包分配邏輯
230‧‧‧網路資訊卡(NIC)
240‧‧‧網路輸入
300‧‧‧系統
310‧‧‧處理器
312i-312N‧‧‧核心
3141-314N‧‧‧佇列
3161-316N‧‧‧佇列位置
3181-318N‧‧‧佇列位置
3201-320N‧‧‧佇列位置
3221-322N‧‧‧佇列位置
3241-324N‧‧‧佇列位置
3261-326N‧‧‧佇列位置
3281-328N‧‧‧佇列位置
3301-330N‧‧‧佇列位置
330‧‧‧電力管理單元(PMU)
342‧‧‧被佔據區域
344‧‧‧未被佔據區域
350‧‧‧被佔據區域
360‧‧‧封包分配邏輯
370‧‧‧網路介面卡(NIC)
380‧‧‧網路輸入
400‧‧‧系統
410‧‧‧處理器
412i-412N‧‧‧核心
420‧‧‧封包分配邏輯
422-426、432-438‧‧‧佇列束
430‧‧‧電力管理單元
460‧‧‧網路介面卡
470‧‧‧封包分配邏輯
480‧‧‧網路輸入
500‧‧‧封包處理方法
502-512‧‧‧封包處理步驟
600‧‧‧監控方法
602-614‧‧‧監控步驟
700‧‧‧系統
702‧‧‧多領域處理器
704‧‧‧網路介面卡
706‧‧‧封包分配邏輯
7080-708n‧‧‧佇列
710‧‧‧核心領域
7100-710n‧‧‧核心
720‧‧‧圖形領域
730‧‧‧互連
7400-740n‧‧‧最後位準快取
750‧‧‧系統代理領域
752‧‧‧顯示控制器
755‧‧‧電力控制單元PCU
770‧‧‧集成記憶體控制器
7800-780n‧‧‧介面
800‧‧‧系統
802‧‧‧晶片上系統
804‧‧‧網路介面卡
806‧‧‧封包分配邏輯
810‧‧‧核心領域
8120-8123‧‧‧核心
8140-8143‧‧‧佇列
815‧‧‧快取記憶體
820‧‧‧核心領域
8220-8223‧‧‧核心
8240-8243‧‧‧佇列
825‧‧‧快取記憶體
830‧‧‧圖形領域
840‧‧‧緊密互連
850‧‧‧記憶體控制器
圖1是依據本發明一實施例之一系統方塊圖。
圖2是依據本發明另一實施例之一系統方塊圖。
圖3是依據本發明一實施例之一系統方塊圖。
圖4是依據本發明一實施例之一方法的流程圖。
圖5是依據本發明另一實施例之一方法的流程圖。
圖6是依據本發明另一實施例之一方法的流程圖。
圖7是依據本發明另一實施例之一系統的方塊圖。
圖8是依據本發明另一實施例之一系統的方塊圖。
為了節省包括一多核心處理器、一些多核心處理器之一系統中的電力,允許一個或多個核心以低電力狀態被安置(例如,減低時脈頻率、減低操作電壓、或許多睡眠狀態之一者,於其中一核心之一些或所有的核心電路被關閉)。例如,為了在低活動週期的期間節省能量,依據一先進組配和電力介面(ACPI)標準,例如,公佈於2014年4月之Rev.5.1,一核心可以被置於一睡眠狀態中(例如,狀態C1至CN之一者),其是比當該核心是在一作用狀態(C0)時消耗較少的電力。可替換地,一個或多個核心可以依據該先進組配和電力介面(ACPI)標準(例如,公佈於2014年4月之Rev.5.1)而被安置於一低電力性能狀態,例如,狀態P1至PN之一者,於其中當比較於作用狀態(P0)中之一核心的時脈頻率及/或操作電壓時,一時脈頻率及/或操作電壓可以被減低。
一電腦系統可以耦合至一網路,該電腦系統可以自該網路接收資料封包。該電腦系統可以包括用以處理經由該網路所接收之進入的資料封包之一多核心處理器。
進入的資料封包隨機分配至處理器核心以被處理,可能導致該處理器中之電力使用無效率。在實施例中,一機構可以被採用以掌控所接收的網路流量,例如,自該
網路接收之資料封包(同時於此處也稱為封包),將於作用核心中被處理並且允許不作用(例如,停用)核心維持不作用,例如,一睡眠狀態中或一減低電力狀態中。當達到一負載臨界值時,該機構可以喚醒一睡眠核心。基於負載情況,該核心可以自一高電力狀態轉變至低電力狀態,或自一低電力狀態轉變至一高電力狀態。一電力節省目標可以是使得最大數目之核心保持於睡眠狀態中,同時該處理器之該等作用核心處理所接收的網路流量,其目標可以經由此處所呈現之實施例被實現。
在實施例中,一網路介面卡(NIC)和該處理器可一起工作以藉由最小化被採用以處理經由該NIC自該網路所接收的封包之一作用核心計數而達成電力節省。該NIC可以停用(或啟動)一個或多個佇列緩衝器(同時於此處也稱為“佇列”),各佇列對應於封包是將被傳送至的一核心。饋送封包至作用核心的一活動佇列之計數的最小化可以允許一最大數目的核心將被置於(或保持於)一低電力狀態中,例如,在一睡眠狀態或一減低電力/性能狀態中,例如,在自其之標準時脈頻率被減低的一時脈頻率,或在一減低電壓中操作。
在實施例中,基於負載情況,一核心可以自一高電力使用狀態轉變至與一對應佇列之停用相關聯的一低電力使用狀態,或自低電力使用狀態轉變至與該對應佇列之啟動相關聯的一高電力使用狀態。
在一實施例中,一機構可以合併所接收流量處理
於較少所有可用的核心。例如,對於具有三個核心的一處理器,其之各核心是以10%的容量操作,一工作負載可以被重新分配至以30%容量執行的一核心。其餘的二核心可以是置於一電力節省狀態(例如,C(1)-C(N),等等)中,當另外的接收流量保證另外的處理電力時,一個或兩個核心可以自該電力節省狀態中重新被啟動。該機構可以藉由NIC提供使活動佇列計數最小化之一佇列排程功能而被實行。
如一範例,該機構可以依據虛擬碼被實行,如下所示(在此處佇列深度(i)是在一第i個佇列內之儲存位置的佔據量之一量測,其中各儲存位置可以儲存一封包):如果佇列深度(i)之和>一第一臨界值(例如,75%深度),則自一不活動佇列池啟動一個或多個佇列
否則,如果佇列深度和<第二臨界值(例如,25%深度),則停用一個或多個佇列(並且不傳送另外之進入封包至要停用的佇列)
否則繼續
在實施例中,用於C狀態或P狀態之一可組配動作可以作為自NIC至一核心的一中斷而被實行。當一佇列臨界值(例如,上述虛擬碼中之第一臨界值)超出且一對應的佇列被啟動時,該核心可以藉由該NIC被喚醒。
在實施例中,一種“單擊”中斷可以利用一主機被規劃。該“單擊”中斷可以藉由NIC被觸發,以喚醒將藉由一將啟動之佇列來饋送封包而在一睡眠模式之一核心。
於其他實施例中,於處理器上執行之軟體可以檢
測已被儲存於一新近啟動的佇列中之一封包的存在,並且可以致使對應的核心將自一睡眠狀態或低電力/性能狀態重新被啟動,以便處理儲存的封包。
在實施例中,一個或多個核心可以完全地作用模式而操作,例如,在高時脈頻率及完全操作電壓,而當操作時其他核心則可以保持在一低頻率及/或減低的電壓。在實施例中,流量可以被引導至以高時脈頻率(及完全操作電壓)操作的一個或多個核心,而在一低電力狀態之其他核心則可以是閑置的。於一些實施例中,臨界值可以是動態的,例如,作為其他參數之一函數而判定,例如,佇列深度之一變化率,例如,佇列深度和(在此處是總佇列深度)隨著時間推移的一變化率。一作用核心計數之減少可以導致電力節省。
圖1是依據本發明一實施例之一設備方塊圖。設備100包括一處理器110和耦合於該處理器110的一網路資訊卡(NIC)130。該處理器110包括核心1121-112N、佇列1141-114N、互連邏輯116、快取記憶體118、電力管理單元120,並且可以包括其他構件。該NIC 130包括封包分配邏輯132。
當操作時,NIC 130可以自NIC 130所耦合的一網路(未展示於圖形中)接收網路輸入140,例如,進入的資料封包。該封包分配邏輯132可以基於各佇列之佔據量而判定是否自佇列114增加(或減少)活動佇列之計數,例如,將藉由對應的核心被處理之封包所佔據的佇列部份。該封包分
配邏輯132可以判定哪個佇列是將接收該等進入的封包之各者,並且該NIC 130可以掌控至一對應的目的地佇列114i之各個進入的封包。
對於各接收之進入的封包,對應之目的地佇列114i可以基於各活動佇列之佇列深度(例如,佔據量)被判定。例如,該NIC 130可以掌控至具有該等活動佇列之一最低的佇列深度(例如,最少的佔據量)之一對應的佇列的各個封包。
在一實施例中,封包分配邏輯132可以判定所有活動佇列之一總佇列深度是否超出一第一臨界值(例如,一總佔據量超出該第一臨界值),並且該封包分配邏輯132可以選擇將被啟動之一不活動佇列,以便處置進入的流量(例如,進入的封包)。一特定的佇列之啟動可以是伴隨著對應的核心之啟動,例如,自一較低的電力狀態(例如,一睡眠狀態,例如,睡眠狀態C1-CN、或一低電力/性能狀態之一者,例如,低電力/性能狀態P1-PN之一者)至一作用狀態。
當特定的佇列之啟動的同時,另外之進入的封包可以被置於該特定的佇列中,以在對應核心的啟動之後,將藉由該對應的核心被處理。於一實施例中,NIC 130分配所接收的封包且具有最低佔據量之活動佇列(例如,儲存最少的封包數目)是將接收下一個進入的封包。
封包分配邏輯132可以監視活動佇列之佔據量,並且如果所有的活動佇列之總佔據量(例如,總佇列深度)下降在一第二臨界值之下,該封包分配邏輯132可以停用一
選擇的活動佇列。在選擇佇列中的任何其餘封包被處理之後,對應的核心可以被安置於一低電力狀態中,例如,C1-CN或P1-PN。
因此,封包分配邏輯132可以監視佇列114之各者以判定其是否為高佔據量(高總佇列深度)或一低佔據量(低總佇列深度)。如果一總佔據量是低的,該封包分配邏輯132可以停用一個或多個佇列114,並且在停用佇列中的任何其餘封包被處理之後,對應的核心可以被安置於一較低的電力狀態中。可替換地,於處理器110中執行之軟體可以響應於檢測對應的佇列是否為空置,而致使對應的核心將被安置於一較低的電力狀態中。
在一實施例中,PMU 120可以監視各核心112i之活動位準並且可以檢測對應至停用佇列之一特定核心是否為閑置,其可以表明至該PMU 120以斷電該特定核心。已停用之任何佇列可以繼續饋送封包至其之對應核心,直至該停用佇列是空著的為止。當停用佇列是空著的時,該對應的核心可以被安置於一低電力消耗狀態中,例如,睡眠狀態C1-CN或減低的電力狀態P1-PN之一者。沒有另外的封包將被分配至一停用的佇列。使一核心成為一低電力消耗狀態或減低的電力消耗狀態之安置可以降低處理器110全部的能量消耗。
圖2是依據本發明另一實施例之一系統方塊圖。系統200包括一處理器210和耦合於該處理器210之一網路資訊卡(NIC)230。該處理器210包括核心2121-212N、佇列
2141-214N、互連邏輯216、快取記憶體218、電力管理單元220、封包分配邏輯222,並且可以包括其他構件。
當操作時,NIC 230可以自NIC 230所耦合的一網路(未展示於圖形中)接收網路輸入240,例如,進入的資料封包。該NIC 230可以傳輸該等進入的資料封包至封包分配邏輯222。該封包分配邏輯222可以判定哪個佇列是將接收該等進入的封包之各者,並且可以引導各進入的封包至一對應的目的地佇列214i。
對於各接收之進入的封包,對應的目的地佇列可以基於各活動佇列之佇列深度被判定。例如,封包分配邏輯222可以引導各個封包至具有該等活動佇列之一最小的佇列深度之佇列。
基於各佇列之佇列深度的總和,封包分配邏輯222可以判定佇列214i之何者是將啟動或停用。在一實施例中,封包分配邏輯可以判定所有活動佇列的一可用的總容量是否超出一第一臨界值並且可以選擇一特定的佇列以啟動而增加活動佇列之計數。改變特定佇列至一活動狀態,可以是伴隨著自一較低的電力狀態,例如,C1-CN、或P1-PN之一對應的核心之啟動。在一實施例中,封包分配邏輯222可以觸發一“單擊”中斷以喚醒對應的核心。可替換地,執行於處理器中之軟體可以基於儲存在對應的佇列中之一封包以判定而供電給該核心。可替換地,PMU 220可以監視各核心之活動位準並且可以響應於藉由PMU 220對於增加流量至一特定核心之檢測而改變對應的核心之操作參數
(例如,操作電壓和時脈頻率)。
當網路輸入240持續(例如,封包自網路被接收)時,封包分配邏輯222將所接收的封包分配至活動佇列。在一實施例中,具有最小的佇列深度之活動佇列是將接收一進入的封包。
封包分配邏輯222可以判定活動佇列之總佇列深度是否較小於一第二(例如,低)臨界值。該封包分配邏輯222可以判定該等活動佇列之一者要被停用。選擇用於停用之特定佇列並不自該封包分配邏輯222接收另外之進入的封包。相反地,儲存於特定的佇列中之封包是將藉由對應的核心被處理,並且當該特定的佇列是空置時,對應的核心可以被置於一較低的電力狀態,例如,C1-CN或P1-PN。沒有另外的封包將被供應至一不活動佇列。安置一核心成為一低電力消耗狀態或減低的電力消耗狀態,可以導致降低處理器210的全部能量消耗。不活動佇列和對應的核心可以在一未來的時間響應於所增加的網路流量而重新啟動。
圖3是依據本發明另一實施例之一系統方塊圖。系統300包括處理器310和網路介面卡(NIC)370。
當操作時,NIC 370是經由一網路輸入380用以自一網路接收封包。封包分配邏輯360(例如,硬體、韌體、軟體、或其組合)是對於經由網路輸入380所接收的各個封包,判定將暫時地儲存封包的一佇列314i(例如,3141-314N之一者),直至一對應的核心312i備妥以接收且處理該封包為止。在圖3之實施例中,各佇列314i對應至一單一核心312i。
於其他實施例中,複數個佇列可以饋送至一單一核心,或一單一佇列可以饋送至複數個核心。
封包分配邏輯360可以監視各佇列3141-314N之佔據量。亦即,如於圖3之展示,佇列3141包括一被佔據區域342,其包括位置3161、3181、3201、3221、3241、以及3261。該等位置3161-3261之各者儲存已自NIC 370接收的一封包。該佇列3141包括一未被佔據區域344,其包括空置的位置3281和3301。同樣地,佇列3142包括一被佔據區域346,其包括位置3162、3182、3202、以及3222。位置3162、3182、3202、以及3222之各者儲存已自NIC 370接收之一封包。佇列3142包括一未被佔據區域344,其包括空置的位置3242、3262、3282、以及3302。佇列3143包括被佔據區域350(例如,佔據位置3163、3183)和未被佔據區域352(例如,3203-3303)。佇列314N包括被佔據區域354(例如,被佔據位置316N)和未被佔據區域352(例如,318N-330N)。
封包分配邏輯360可以判定一總佇列深度(例如,總佔據量)例如,在活動佇列內之所有被佔據的儲存位置之一計數,例如,在342、346、350、…354內之所有位置的計數。該封包分配邏輯360可以進行總佇列深度與一第一臨界值(例如,一高臨界值)之一比較。如果總佇列深度是大於第一臨界值,該封包分配邏輯360可以判定自一不活動狀態啟動一另外的佇列,以便對於進入的封包增加儲存可利用性。該封包分配邏輯360可以指定作為活動之另外的佇列,例如,可用以接收進入的封包。
另外的佇列可以饋送至自一低電力狀態被喚醒(或提昇活動位準)之一另外的核心(未展示於圖形中)。因此,當另外的執行容量被保證時,一所選擇之不活動佇列可以被啟動以接收進入的封包,並且在一睡眠狀態或低電力狀態之對應的不活動核心可以完全地啟動或提昇至一較高的活動位準。在一實施例中,對應的核心312i可以是經由來自封包分配邏輯360之一單擊中斷訊息被喚醒。在另一實施例中,執行於處理器中之軟體可以監視一個或多個記憶體位置,例如,其是在自其之不活動狀態被啟動之佇列內,並且當一封包抵達啟動佇列中時,該軟體可以致使對應的核心成為啟動,以便處理已抵達啟動佇列中之封包。
封包分配邏輯360可以進行總佇列深度與一第二臨界值(例如,一低臨界值)之一比較。如果總佇列深度是較小於第二臨界值,則封包分配邏輯360可以判定以停用在一活動狀態的一所選擇之佇列,例如,佇列3143。當佇列3143藉由封包分配邏輯360而停用時,沒有另外之進入的封包將儲存於佇列3143中。儲存於佇列3143中(例如,在位置3163和3183中)之封包將利用核心3123被處理,並且當佇列3143是空置時,核心3123可以,例如,藉由一電力管理單元(PMU)330,而被置於一睡眠狀態(或一低電力狀態)中。於一些實施例中,PMU 330可嚴密地監視對應的核心之一活動位準,並且在儲存於特定核心中之封包已被處理且該核心成為閑置之後,該PMU 330可以將該核心置於一睡眠狀態(例如,C1-CN)或成為一減低電力/性能狀態(例如,P1-PN)。
活動佇列數目之減少可以致使作用核心數目之減少,其可以減低處理器310的全部能量消耗。
圖4是依據本發明另一實施例之一系統方塊圖。系統400包括一處理器410和耦合於該處理器之一網路介面卡(NIC)460,並且可以包括其他構件,例如,動態隨機存取記憶體、等等(未展示於圖形中)。該處理器410包括複數個核心4121-412N、封包分配邏輯420(例如硬體、韌體、軟體、或其之組合)、一電力管理單元(PMU)430、包括佇列束422、424、426、432、434、436及438之複數個佇列,並且可以包括其他構件(未展示於圖形中),例如,快取記憶體、互連邏輯、等等。NIC 480包括封包分配邏輯470(例如,硬體、韌體、軟體、或其之組合)。
當操作時,NIC 460可以經由一網路輸入480自一網路而接收封包。封包分配邏輯470,對於經由網路輸入480所接收的各個封包,判定在一佇列束(例如,一個或多個佇列之一集合)內之一特定的佇列將暫時地儲存該封包,直至一對應的核心412i(核心4121-412N之第i個核心)備妥以接收和處理該封包為止。在圖4之實施例中,佇列束432是將封包饋送進入核心4121中,佇列束434和436是將封包饋送進入核心4122中,並且佇列束438是將封包饋送進入核心412N-1和412N中。於其他實施例中,各佇列束可以將封包饋送進入一個或多個核心中。
封包分配邏輯470可以監視佇列束432、434、436、438之各者關於可用的儲存容量。該封包分配邏輯470可以
判定一總佇列深度(例如,在432、434、436、…438內之所有被佔據位置的計數)。該封包分配邏輯470可以進行總佇列深度與一第一臨界值(例如,高臨界值)的一比較。如果總佇列深度是大於第一臨界值,該封包分配邏輯470可以判定自一不活動狀態以啟動一另外的佇列束,以便增加對於進入的封包之儲存可利用性。在該核心是自一低電力狀態被喚醒之後,另外的啟動佇列束可以饋送至一另外的核心(未展示於圖形中)。
封包分配邏輯470可以指明另外的佇列束為活動,例如,可用以接收進入的封包。在一實施例中,封包分配邏輯470可以傳送一“喚醒訊息”至另外的核心。在另一實施例中,執行於處理器410上之軟體可以檢測一進入的封包是否已被傳送至啟動佇列束並且可以喚醒一對應核心(412i之一者)以處理將藉由該啟動佇列束被分配之進入的封包。
因此,當另外的執行容量受保證時,一另外的佇列束可以被啟動以接收進入的封包,並且一睡眠狀態(或低電力狀態)中的一個(或多於一個)對應核心,可以自其之低電力狀態被啟動或提昇至一較高的活動位準以自另外的啟動佇列束接收封包。
封包分配邏輯470可以進行總佇列深度與一第二臨界值(例如,一低臨界點)之一比較。如果總佇列深度是較小於第二臨界點,則封包分配邏輯470可以判定以停用在一活動狀態中的一所選擇佇列束,例如,佇列束432。當佇列束432是藉由封包分配邏輯470而停用時,沒有另外之進入
的封包將被儲存於佇列束432中。儲存於佇列束432中之封包將藉由核心4121被處理,並且當佇列束432是空置時,核心4121可以(例如,藉由PMU 430)被置於一睡眠狀態(或一低電力狀態)。因此,活動佇列數目之減少可以致能作用核心數目之減少,其可以減低處理器410之全部能量消耗。
PMU 430可以監視各核心之一活動位準,並且如果一特定佇列束是停用,在儲存於一對應核心中的封包已被處理之後且對應核心成為閑置時,藉由操作電壓之減少、時脈頻率之減少、或其之組合,該PMU 430可以將對應的核心置於睡眠狀態(例如,C1-CN)或成為一低電力狀態(例如,P1-PN)。可替換地,執行於處理器410上之軟體可以監視在一佇列內之位置的佔據量,並且當佇列深度降至一特定位準之下時,該軟體可以指引該對應的核心成為不活動,例如,一睡眠狀態(例如,C1-CN)或一低電力狀態(例如,P1-PN)。
在處理器410內之封包分配邏輯420可以將封包自一第一核心重新分配至一第二核心,例如,以便使活動佇列之計數和作用核心之計數最小化,其可以導致一電力節省。例如,在所選擇的封包藉由核心4121和4122的處理之前,封包分配邏輯420可以經由佇列422和424接受所選擇的封包(例如,將被處理和暫時地儲存於佇列束432和434中之封包),並且可以重新分配將藉由核心412N處理之所選擇的封包至佇列426(注意,佇列422、424、426之組配,僅是作為例示並且其他組配是可被考慮的)。封包之重新分配可以
藉由移除在佇列束432和434中等待處理之任何其餘封包而允許佇列束432和434之停用以及對應核心4121和4122的停用或電力減少。
圖5是依據本發明一實施例之一方法流程圖。方法500開始在方塊502,其中一封包在介面於一處理器(例如,一多核心處理器)之一網路介面卡(NIC)自一網路被接收。繼續至判定菱形塊504,如果一佇列深度總和超出臨界值1(例如,一高臨界值),則前進至方塊506,於其中封包分配邏輯(其可以是位於NIC中或處理器中)可以添加一佇列至一活動佇列池中(啟動該佇列)。一對應核心可以被啟動以處理藉由該啟動佇列所接收之封包。移動至判定菱形塊508,如果佇列深度總和是較少於臨界值2(例如,低臨界值),則移動至方塊512,封包分配邏輯是停用一佇列,例如,從活動佇列池移除一所選擇之佇列。一對應核心可以被停用。前進至方塊512,接收的封包可以被引導至從該等活動佇列之中所選擇的一佇列。在一實施例中,被選擇以儲存接收的封包之佇列是最低密集的活動佇列。
方法返回至方塊502並且一隨後的封包是將藉由NIC被接收。
圖6是依據本發明另一實施例之一方法。方法600是一監控方法,其藉由一多核心處理器之一電力管理單元(PMU),監控該多核心處理器之各佇列,例如,以藉由封包分配邏輯而判定處理器的哪些佇列已經停用,該封包分配邏輯可以安置在介面於處理器的一網路介面卡(NIC)中
(或可以安置在該處理器中),並且將其之對應佇列是停用且是空著的各核心加以斷電(或以一減低電力位準操作)。
佇列可以藉由一指數i=1、N被標記。各佇列i是用以儲存和饋送封包至一對應核心,以供藉由對應的核心之執行。
在方塊602,指數i被設定為等於零(0)。繼續至方塊604,該指數i被增量一(1)。前進至判定菱形塊606,如果指數i是大於N,其中N是處理器中之佇列總數目,則該方法返回至方塊602,並且再次開始各佇列之考慮。如果i是較小於N,則前進至判定菱形塊608,如果第i個佇列是活動的,則返回至方塊604,該指數i被增量,例如,一連續地下一個佇列被考慮。如果,在判定菱形塊608,第i個佇列是不活動的(例如,停用),則前進至判定菱形塊610,如果在第i個佇列(不活動)中有等待將被處理之封包,則繼續至方塊614,處理器之一電力管理單元允許第i個核心保持通電以處理第i個佇列中之封包。返回至判定菱形塊610,當儲存於第i個佇列中的所有封包已經被處理(例如,第i個佇列是空著)時,前進至方塊612,PMU將第i個核心置於一低電力或睡眠狀態。
因此,PMU可以藉由封包分配邏輯(例如,安置於NIC中或處理器中)而檢測由於對應佇列的停用已終止之一核心的一活動位準,並且該PMU可以在儲存於對應的停用佇列中的封包已經被處理之後,將該核心置於一低電力狀態(例如,一減低電力/性能狀態或一睡眠狀態)。
接著參看至圖7,所展示的是依據本發明另一實施例之一系統700的方塊圖,該系統700包括一多領域處理器702以及一網路介面卡704。如於圖7實施例之展示,處理器702包括多數個領域。明確地說,一核心領域710可包括複數個核心7100-710n,並且各核心可以經由一對應的佇列7080-708n被分配封包。該處理器702也包括可包括一個或多個圖形引擎之一圖形領域720,並且一系統代理領域750可以進一步地呈現。於一些實施例中,系統代理領域750可以在無關核心領域之一獨立頻率執行並且可以在所有時間保持供電以處置電力控制事件和電力管理,以至於領域710和720可以受控制以動態地進入和退出高電力和低電力狀態。領域710和720之各者可以在不同的電壓及/或電力操作。注意到,雖然僅展示三個領域,應了解,本發明範疇是不受這方面之限定,並且另外的領域可以呈現於其他實施例中。例如,多數個核心領域可以呈現各包括至少一核心。
通常,除了各種執行單元和另外的處理元件之外,各核心710可以進一步地包括低位準快取。接著,各種核心可以彼此耦合並且耦合至由一最後位準快取(LLC)7400-740n之複數個單元所形成的一共用快取記憶體。在各種實施例中,LLC 740可以在該等核心和圖形引擎、以及各種媒體處理電路之中被共用。如所見地,因此一環型互連730耦合該等核心在一起,並且提供在該等核心、圖形領域720以及系統代理電路750之間的互連。在一實施例中,互連730可以是核心領域之部份。但是於其他實施例中,該
環型互連可以是其之自有領域。
如進一步所見地,系統代理領域750可以包括顯示控制器752,其可以提供控制和一介面至一相關聯的顯示器。如進一步所見地,依據此處所述之實施例,系統代理領域750可以包括一電力控制單元755以判定操作各核心的一對應電力位準。
依據本發明實施例,處理器702耦合至包括封包分配邏輯706之網路介面卡704,該封包分配邏輯706可以判定佇列7080-708n之何者是將接收自一網路接收之一進入的封包,並且可以判定是否增加或減少活動佇列之計數。例如,封包分配邏輯706可以基於一總佇列深度與一第一(例如,高)臨界值之一比較或與一第二(例如,低)臨界值之比較,而判定以啟動一先前不活動的佇列,或停用一目前活動的佇列。依據本發明實施例,如果一特定佇列是停用,則PCU 755可以在特定佇列中的其餘封包已經被處理之後,藉由將對應的核心置於一低電力狀態(例如,一睡眠狀態或一低電力/性能狀態)而減低對應的核心所消耗之電力。
如進一步於圖7中所見地,處理器700可以進一步地包括一集成記憶體控制器(IMC)770,其可以提供一介面至一系統記憶體,例如,一動態隨機存取記憶體(DRAM)。多數個介面7800-780n可以呈現以致能在處理器和其他電路之間的互連。例如,在一實施例中,至少一直接媒體介面(DMI)之介面可以被提供以及一個或多個PCIeTM介面。更進一步地,為了提供在其他代理(例如,另外的處理器或其他
電路)之間的通訊,一個或多個QPI介面也可以被提供。雖然在圖7實施例中以這高位準展示,應了解,本發明範疇是不受這方面之限定。
參看接著至圖8,其展示的是一系統800之方塊圖,該系統800包括耦合於一網路介面卡(NIC)804的一晶片系統(SoC)802之一表示。在展示之實施例中,SoC 800可以是一多核心SoC,該多核心SoC被組配以最佳化地併入一智慧型手機或其他低電力裝置(例如,一平板電腦或其他輕便型計算裝置)中,以供用於低電力操作。如一範例,SoC 800可以使用非對稱的或不同型式的核心被實行,例如,較高電力及/或低電力核心之組合,例如,失序核心和依序核心。在不同實施例中,這些核心可以是基於一英特爾結構(Intel® ArchitectureTM)核心設計或一ARM結構設計。更於其他實施例中,英特爾和ARM核心之一混合可以被實行於一給予的SoC中。
如於圖8中所見,SoC 800包括具有複數個第一核心8120-8123(其各是將經由一對應佇列8140-8143而接收封包)的一第一核心領域810。在一範例中,核心8120-8123可以是低電力核心,例如,依序核心。在一實施例中,該等第一核心8120-8123可以被實行作為ARM Cortex A53核心。接著,這些8120-8123耦合至核心領域810之一快取記憶體815。此外,SoC 802包括一第二核心領域820。在圖8之例示中,第二核心領域820具有複數個第二核心8220-8223,其各是用以經由一對應的佇列8240-8243而接收封包。在一範
例中,這些核心8220-8223可以是比第一核心812消耗較高電力之核心。在一實施例中,第二核心8220-8223可以是失序核心,其可以被實行作為ARM Cortex A57核心。接著,這些核心8220-8223耦合至核心領域820之一快取記憶體825。應注意,雖然圖8中展示之範例在各領域中包括有4個核心,應了解,於其他範例中,更多或更少之核心可以呈現於一所給予的領域中。
佇列8140-8143和8240-8243之各者可以耦合至NIC 804,其包括封包分配邏輯806,其可以判定佇列8140-8143和8240-8243何者是將接收自一網路所接收之一進入的封包。封包分配邏輯806也可以依據本發明實施例而判定是否增加或減少活動佇列之計數。例如,該封包分配邏輯806可以基於一總佇列深度與一第一(例如,高)臨界值之一比較或與一第二(例如,低)臨界值之比較,而判定啟動一不活動佇列,或停用一目前活動之佇列。如果一特定佇列是將不被啟動,則對應核心所消耗的電力可以被減低,例如,該核心可以,例如,藉由SoC 802之一電力管理單元(未展示於圖形中)而被置於一睡眠狀態或成為一減低電力/性能狀態。
進一步地參考至圖8,一圖形領域830也被提供,其可以包括一個或多個圖形處理單元(GPU),該GPU被組配以獨立地執行圖形工作負載,例如,藉由核心領域810和820之一個或多個核心所提供者。如一範例,除了提供圖形和顯示呈現操作之外,GPU領域830也可以被使用以提供用於
多種屏幕尺寸之顯示支援。
如所見地,各種領域耦合至一同調互連840,其在一實施例中可以是一快取同調互連組構,其接著耦合至一集成記憶體控制器850。於一些範例中,同調互連840可以包括一被共用快取記憶體,例如,一L3快取。在一實施例中,記憶體控制器850可以是一直接記憶體控制器以提供與一晶片外記憶體通訊之多數個通道,例如,一DRAM之多數個通道(為使於圖8中之例示容易起見,未展示於圖形中)。
在不同的範例中,核心領域數目可以變化。例如,對於適用於併入一移動式計算裝置之一低電力SoC,例如,展示於圖8中之一限定數目的核心領域,可以被呈現。更進一步地,於此等低電力SoC中,包括較高電力核心的核心領域820可以具有較少數目之此等核心。例如,於一實行例中,兩個核心822可以被提供以致能減低的電力消耗位準之操作。此外,不同的核心領域也可以耦合至一中斷控制器以致能在該等不同的領域之間的工作負載動態交換。
更於其他實施例中,一較大數目之核心領域,以及另外的選項之IP邏輯可以呈現,於其中一SoC可以被調整至較高的性能(及電力)位準以供併入其他計算裝置,例如,桌上型電腦、伺服器、高性能計算系統、基地台等等。如一此種範例,各具有所給予的數目之失序核心的4個核心領域可以被提供。再進一步地,除了選項GPU支援(其如可以採用一GPGPU形式之一範例)之外,提供用於特定功能的最
佳化硬體支援(例如網路服務、網路處理、切換或其它者)之一個或多個加速裝置也可以被提供。此外,一輸入/輸出介面可以呈現以耦合此等加速裝置至晶片外構件。
另外的實施例將在下面被說明。
在一第一實施例中,一系統包括一處理器處理器,其包含複數個核心和複數個佇列,其中各佇列包括儲存位置以儲存要藉由該等核心之至少一者被處理的封包,各佇列具有活動和不活動之一者的一對應狀態,各活動佇列被致能以儲存一進入的封包,且各不活動佇列是失能於儲存該進入的封包,並且其中各佇列具有包含該佇列之被佔據儲存位置的一計數之一對應的佇列深度。該系統也包括封包分配邏輯,其基於包含該等活動佇列之該等佇列深度總和之一總佇列深度來判定是否將該等複數個佇列之一第一佇列的狀態自一第一狀態改變至一第二狀態。
一第2實施例包括第1實施例之元件,其中當該總佇列深度超出一第一臨界值時,該封包分配邏輯是用以將該第一佇列的狀態自不活動之第一狀態改變至活動之第二狀態。
一第3實施例包括第2實施例之元件,其中在該第一佇列的狀態已被改變至活動狀態之後,該封包分配邏輯要引導該進入的封包被儲存於該第一佇列中。
一第4實施例包括第2實施例之元件,其中該處理器進一步地包括一電力管理單元(PMU),並且其中響應於該第一佇列之啟動,該PMU要將一對應的核心自一減低電
力狀態改變成為比該減低電力狀態消耗更多電力的一活動電力狀態。
一第5實施例包括第1實施例之元件,其中當該總佇列深度是較小於一第二臨界值時,該封包分配邏輯要將一第二佇列的狀態自活動之第一狀態改變至不活動之第二狀態。
一第6實施例包括第5實施例之元件,其中該第二佇列之佇列深度是該等活動佇列之佇列深度之最小者。
一第7實施例包括第5實施例之元件,其中該處理器進一步地包含一電力管理單元(PMU),並且響應於該第二佇列之停用,該PMU要將一對應的核心之一核心狀態自一活動狀態改變至一減低電力狀態。
一第8實施例包括第5實施例之元件,其中該封包分配邏輯響應於該第二佇列之停用,致使該對應的核心自一活動狀態改變至一減低電力狀態。
一第9實施例包括實施例1至8之任一實施例的元件,其中該封包分配邏輯要引導一進入的封包被儲存於其對應狀態是活動狀態之一第三佇列中,其中該第三佇列之佇列深度是該等活動佇列的佇列深度之最小者。
一第10實施例包括實施例1至8之任一實施例的元件,進一步地包含耦合至該處理器且包括該封包分配邏輯的一網路介面卡(NIC),其中該NIC要自一網路接收進入的封包且該封包分配邏輯要對於各進入的封包選擇一對應的活動佇列以儲存該進入的封包。
一第11實施例包括至少一機器可讀取儲存媒體,其包括指令,當該等指令被執行時而致能一系統用以:判定包含複數個核心和複數個佇列之一處理器之活動佇列的一總佇列深度,其中各核心具有至少一對應的佇列以儲存要藉由該核心被處理的封包,其中各佇列具有活動和不活動之一者的一對應狀態,其中各活動佇列被致能以接收和儲存自耦合於該處理器的一網路介面卡(NIC)所接收之一進入的封包並且各不活動佇列是失能於該進入的封包之接收和儲存,各活動佇列具有包含在該佇列中被佔據位置的一計數之一相關聯佇列深度,並且其中該總佇列深度包括該等活動佇列之該等佇列深度的總和;以及至少基於該總佇列深度,判定是否改變該等複數個佇列之一第一佇列的狀態。
一第12實施例包括第11實施例之元件,並且進一步地包括指令以響應於超出一第一臨界值之該總佇列深度而將該第一佇列的狀態自不活動改變至活動。
一第13實施例包括第12實施例之元件,並且進一步地包括指令以在該第一佇列的狀態已被改變至活動狀態之後引導該進入的封包至該第一佇列以供儲存。
一第14實施例包括第12實施例之元件,其進一步地包括指令以響應於該第一佇列之啟動而將一對應的核心自一低電力狀態安置成為比該低電力狀態要消耗更多電力的一活動電力狀態。
一第15實施例包括實施例11至14之任一實施例
的元件,並且進一步地包括指令以響應於該總佇列深度是較小於一第二臨界值而將該第一佇列的狀態自活動改變至不活動。
一第16實施例包括第15實施例之元件,其中該第二臨界值要基於該總佇列深度隨時間的變化率而被判定。
一第17實施例包括第15實施例之元件,並且進一步地包括指令以響應於該第一佇列之停用,而致使一對應的核心自一活動電力狀態改變至比該活動電力狀態消耗較少電力之一減低電力狀態。
一第18實施例是一種方法,該方法包括:對於複數個活動佇列之各者,判定包含一處理器之被佔據儲存位置的計數之一對應的佇列深度,該處理器包括複數個核心和複數個佇列,其中各佇列是與該等核心之至少一者相關聯並且各佇列具有活動和不活動之一者的一對應狀態,其中各活動佇列被致能以儲存自耦合於該處理器的一網路介面卡(NIC)所接收之一進入的封包,各不活動佇列是失能於該進入的封包之接收和儲存,並且各核心將處理自該等活動佇列之至少一者所接收的一或多個封包。該方法也包括基於該對應的佇列深度而將該進入的封包自該NIC引導至被選擇自該等活動佇列之一第一活動佇列。
一第19實施例包括第18實施例之元件,並且進一步地包括響應於該對應的佇列深度是該等活動佇列之各自佇列深度的一最小者而將該進入的封包引導至該第一活動佇列。
一第20實施例包括第18實施例之元件,並且進一步地包括至少基於一總佇列深度而判定是否改變該等複數個佇列的一第二佇列之對應狀態,其中該總佇列深度包含該等活動佇列之佇列深度總和。
一第21實施例包括第20實施例之元件,並且進一步地包括響應於超出一第一臨界值之該總佇列深度而將第二佇列的對應狀態自不活動改變至活動。
一第22實施例包括第21實施例之元件,並且進一步地包括在第二佇列的對應狀態已被被改變至活動之後引導該進入的封包至該第二佇列以供儲存。
一第23實施例包括第21實施例之元件,並且進一步地包括響應於第二佇列之啟動,導致一對應核心自一低電力狀態改變為將比低電力狀態消耗更多電力的一活動電力狀態。
一第24實施例包括第20實施例之元件,並且進一步地包括響應於較小於一第二臨界值之總佇列深度,將第二佇列之對應狀態自活動改變至不活動。
一第25實施例包括第24實施例之元件,其中該第二臨界值要基於該總佇列深度隨時間的變化率而被判定。
一第26實施例包括第24實施例之元件,並且進一步地包括響應於改變成不活動之第二佇列的對應狀態,而致使一對應的核心自一活動電力狀態改變至比該活動電力狀態消耗較少電力之一減低電力狀態。
一第27實施例是一種設備,其包括用以進行實施
例18-26之任一實施例的方法之構件。
一第28實施例是一種設備,其進行實施例18-26之任一實施例的方法。
一第29實施例是一種方法,該方法包括判定包含複數個核心和複數個佇列之一處理器之活動佇列的一總佇列深度,其中各核心具有至少一對應的佇列以儲存藉由該核心被處理的封包,其中該總佇列深度包含複數個佇列的所有活動佇列之被佔據位置的計數,其中該等活動佇列之各佇列具有包含活動佇列之被佔據位置的計數之一對應佇列深度,並且各佇列具有活動和不活動之一者的一對應狀態,其中各活動佇列自耦合至處理器之一網路介面卡(NIC)被致能以接收和儲存一進入的封包,並且各不活動佇列是失能於進入的封包之接收和儲存。該方法進一步地包括,至少基於總佇列深度,而判定是否改變複數個佇列之一第一佇列的對應狀態。
一第30實施例包括第29實施例之元件,並且進一步地包括響應於較大於一第一臨界值之總佇列深度而將第一佇列的對應狀態自不活動改變至活動。
一第31實施例包括第29實施例之元件,並且進一步地包括響應於較小於一第二臨界值之總佇列深度而將第一佇列的對應狀態自活動改變成不活動。
一第32實施例包括第31實施例之元件,並且進一步地包括響應於改變成不活動之第一佇列的對應狀態,導致一對應核心自一活動電力狀態改變至比活動電力狀態消
耗較少電力之一減低電力狀態。
實施例係可以使用於許多不同型式的系統中。例如,在一實施例中,一通訊裝置可以被配置以進行此處所述之各種方法和技術。當然,本發明範疇是不受限定於一通訊裝置,並且替代地,其他實施例也可被引導至用以處理指令之其他型式的設備,或包括指令之一個或多個機器可讀取媒體,當響應於該等指令於一計算裝置上被執行時,致使該裝置實行此處所述之一個或多個方法和技術。
實施例可以以程式碼來實行並且該程式碼可以儲存在具有指令儲存於其上的一非暫態儲存媒體上,該程式碼可以被使用以規劃一系統而進行該等指令。實施例也可以資料來實行並且該資料可以儲存在一非暫態儲存媒體上,其中如果至少一機器使用該資料時,致使該至少一機器製造至少一積體電路以進行一個或多個操作。該儲存媒體可以包括,但是不受限定於任何類型的碟片,如包括軟式磁碟片、光碟、固態驅動器(SSD)、小型碟片唯讀記憶體(CD-ROM)、可重寫小型碟片(CD-RW)、以及磁式光碟片、半導體裝置,例如,唯讀記憶體(ROM)、隨機存取記憶體(RAM),例如,動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)、可消除可規劃唯讀記憶體(EPROM)、快閃記憶體、電氣可消除可規劃唯讀記憶體(EEPROM)、磁卡或光學卡、或適用於儲存電子指令之任何其他型式的媒體。
雖然本發明已以有限數目的實施例被說明,那些
熟習本技術者應明白,本發明可以從該處而有許多的修改和變化。本發明是意欲所附加之申請專利範圍涵蓋落在本發明真正精神和範疇之內的所有此等修改和變化。
100‧‧‧設備
110‧‧‧處理器
1121-112N‧‧‧核心
1141-114N‧‧‧佇列
116‧‧‧互連邏輯
118‧‧‧快取記憶體
120‧‧‧電力管理單元
130‧‧‧網路資訊卡(NIC)
132‧‧‧封包分配邏輯
140‧‧‧網路輸入
Claims (20)
- 一種系統,其包含:一處理器,其包含複數個核心和複數個佇列,其中各佇列包括儲存位置以儲存要藉由該等核心之至少一者被處理的封包,各佇列具有活動和不活動之一者的一對應狀態,各活動佇列被致能以儲存一進入的封包,且各不活動佇列是失能於該進入的封包之儲存,並且其中各佇列具有包含該佇列之被佔據儲存位置的計數之一對應的佇列深度;以及封包分配邏輯,其基於包含該等活動佇列之該等佇列深度總和之一總佇列深度來判定是否將該等複數個佇列之一第一佇列的狀態自一第一狀態改變至一第二狀態。
- 如請求項1之系統,其中當該總佇列深度超出一第一臨界值時,該封包分配邏輯是用以將該第一佇列的狀態自不活動之第一狀態改變至活動之第二狀態。
- 如請求項2之系統,其中在該第一佇列的狀態已被改變至活動之後,該封包分配邏輯要引導該進入的封包被儲存於該第一佇列中。
- 如請求項2之系統,其中該處理器進一步包含一電力管理單元(PMU),並且其中響應於該第一佇列之啟動,該PMU要將一對應的核心自一減低電力狀態改變成為比該減低電力狀態消耗更多電力的一活動電力狀態。
- 如請求項1之系統,其中當該總佇列深度是較小於一第二臨界值時,該封包分配邏輯要將一第二佇列的狀態自活動之第一狀態改變至不活動之第二狀態。
- 如請求項5之系統,其中該第二佇列之佇列深度是該等活動佇列之佇列深度之最小者。
- 如請求項5之系統,其中該處理器進一步包含一電力管理單元(PMU),並且響應於該第二佇列之停用,該PMU要將一對應的核心之一核心狀態自一活動狀態改變至一減低電力狀態。
- 如請求項5之系統,其中該封包分配邏輯是用以響應於該第二佇列之停用,致使該對應的核心自一活動狀態改變至一減低電力狀態。
- 如請求項1之系統,其中該封包分配邏輯要引導一進入的封包被儲存於其對應狀態為活動之一第三佇列中,其中該第三佇列之佇列深度是該等活動佇列的佇列深度之最小者。
- 如請求項1之系統,進一步包含耦合至該處理器且包括該封包分配邏輯的一網路介面卡(NIC),其中該NIC要自一網路接收進入的封包且該封包分配邏輯要對於各進入的封包選擇一對應的活動佇列以儲存該進入的封包。
- 一種包括指令之至少一機器可讀取儲存媒體,當該等指令被執行時而致能一系統用以:判定包含複數個核心和複數個佇列之一處理器之 活動佇列的一總佇列深度,其中各核心具有至少一對應的佇列以儲存要藉由該核心被處理的封包,其中各佇列具有活動和不活動之一者的一對應狀態,其中各活動佇列被致能以接收和儲存自耦合於該處理器的一網路介面卡(NIC)所接收之一進入的封包且各不活動佇列是失能於該進入的封包之接收和儲存,各活動佇列具有包含在該佇列中被佔據位置的計數之一相關聯佇列深度,並且其中該總佇列深度包含該等活動佇列之佇列深度的總和;以及至少基於該總佇列深度,判定是否改變該等複數個佇列之一第一佇列的狀態。
- 如請求項11之至少一機器可讀取儲存媒體,進一步包括指令以響應於超出一第一臨界值之該總佇列深度而將該第一佇列的狀態自不活動改變至活動。
- 如請求項12之至少一機器可讀取儲存媒體,進一步包括指令以在該第一佇列的狀態已被改變至活動之後引導該進入的封包至該第一佇列以供儲存。
- 如請求項12之至少一機器可讀取儲存媒體,進一步包括指令以響應於該第一佇列之啟動而將一對應的核心自一低電力狀態安置成為比該低電力狀態要消耗更多電力的一活動電力狀態。
- 如請求項11之至少一機器可讀取儲存媒體,進一步包括指令以響應於該總佇列深度是較小於一第二臨界值而將該第一佇列的狀態自活動改變至不活動。
- 如請求項15之至少一機器可讀取儲存媒體,其中該第二臨界值要基於該總佇列深度隨時間之變化率而被判定。
- 如請求項15之至少一機器可讀取儲存媒體,進一步包括指令以響應於該第一佇列之停用,致使一對應的核心自一活動電力狀態改變至比該活動電力狀態消耗較少電力之一減低電力狀態。
- 一種方法,其包含:對於複數個活動佇列之各者,判定包含一處理器之被佔據儲存位置的計數之一對應的佇列深度,該處理器包括複數個核心和複數個佇列,其中各佇列是與該等核心之至少一者相關聯並且各佇列具有活動和不活動之一者的一對應狀態,其中各活動佇列被致能以儲存自耦合於該處理器的一網路介面卡(NIC)所接收之一進入的封包,各不活動佇列是失能於該進入的封包之接收和儲存,並且各核心要處理自該等活動佇列之至少一者所接收的一或多個封包;以及基於該對應的佇列深度而將該進入的封包自該NIC引導至被選擇自該等活動佇列之一第一活動佇列。
- 如請求項18之方法,進一步包含響應於該對應的佇列深度是該等活動佇列之各自佇列深度的一最小者而將該進入的封包引導至該第一活動佇列。
- 如請求項18之方法,進一步包含至少基於一總佇列深度而判定是否改變該等複數個佇列的一第二佇列之對應 狀態,其中該總佇列深度包含該等活動佇列之佇列深度總和。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/688,019 US20160306416A1 (en) | 2015-04-16 | 2015-04-16 | Apparatus and Method for Adjusting Processor Power Usage Based On Network Load |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201638769A TW201638769A (zh) | 2016-11-01 |
TWI569202B true TWI569202B (zh) | 2017-02-01 |
Family
ID=57126030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105105143A TWI569202B (zh) | 2015-04-16 | 2016-02-22 | 用於基於網路負載來調整處理器電力使用之設備及方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20160306416A1 (zh) |
EP (1) | EP3283959A4 (zh) |
JP (1) | JP6818687B2 (zh) |
CN (1) | CN107430425B (zh) |
TW (1) | TWI569202B (zh) |
WO (1) | WO2016167915A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017151209A1 (en) * | 2016-03-04 | 2017-09-08 | Google Inc. | Resource allocation for computer processing |
US11054884B2 (en) * | 2016-12-12 | 2021-07-06 | Intel Corporation | Using network interface controller (NIC) queue depth for power state management |
US10564702B2 (en) * | 2017-06-28 | 2020-02-18 | Dell Products L.P. | Method to optimize core count for concurrent single and multi-thread application performance |
US11256321B2 (en) | 2017-06-29 | 2022-02-22 | The Board Of Trustees Of The University Of Illinois | Network-driven, packet context-aware power management for client-server architecture |
US10474211B2 (en) * | 2017-07-28 | 2019-11-12 | Advanced Micro Devices, Inc. | Method for dynamic arbitration of real-time streams in the multi-client systems |
KR102604290B1 (ko) * | 2018-07-13 | 2023-11-20 | 삼성전자주식회사 | 전자 장치의 데이터 패킷 처리 장치 및 방법 |
CN109005129B (zh) * | 2018-08-29 | 2022-03-18 | 北京百瑞互联技术有限公司 | 一种基于蓝牙mesh网络的数据传输方法及装置 |
US11431565B2 (en) * | 2018-10-15 | 2022-08-30 | Intel Corporation | Dynamic traffic-aware interface queue switching among processor cores |
US11227358B2 (en) | 2019-03-15 | 2022-01-18 | Intel Corporation | Systems and methods for exploiting queues and transitional storage for improved low-latency high-bandwidth on-die data retrieval |
US11314315B2 (en) | 2020-01-17 | 2022-04-26 | Samsung Electronics Co., Ltd. | Performance control of a device with a power metering unit (PMU) |
US11876885B2 (en) * | 2020-07-02 | 2024-01-16 | Mellanox Technologies, Ltd. | Clock queue with arming and/or self-arming features |
US20230400981A1 (en) * | 2022-06-09 | 2023-12-14 | Samsung Electronics Co., Ltd. | System and method for managing queues in systems with high parallelism |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6415388B1 (en) * | 1998-10-30 | 2002-07-02 | Intel Corporation | Method and apparatus for power throttling in a microprocessor using a closed loop feedback system |
US20060248325A1 (en) * | 2000-09-27 | 2006-11-02 | Fung Henry T | Apparatus and method for modular dynamically power managed power supply and cooling system for computer systems, server applications, and other electronic devices |
US20100216485A1 (en) * | 2009-02-24 | 2010-08-26 | Eden Rock Communications, Llc | Systems and methods for usage-based output power level adjustments for self-optimizing radio access nodes |
US8281159B1 (en) * | 2008-09-11 | 2012-10-02 | Symantec Corporation | Systems and methods for managing power usage based on power-management information from a power grid |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0713817B2 (ja) * | 1990-03-13 | 1995-02-15 | 工業技術院長 | 疎結合並列計算機における負荷の動的均等化方法 |
US7337334B2 (en) * | 2003-02-14 | 2008-02-26 | International Business Machines Corporation | Network processor power management |
JP2008129846A (ja) * | 2006-11-21 | 2008-06-05 | Nippon Telegr & Teleph Corp <Ntt> | データ処理装置、データ処理方法およびプログラム |
JP5091912B2 (ja) * | 2009-05-21 | 2012-12-05 | 株式会社東芝 | マルチコアプロセッサシステム |
US8639862B2 (en) * | 2009-07-21 | 2014-01-28 | Applied Micro Circuits Corporation | System-on-chip queue status power management |
US9563250B2 (en) * | 2009-12-16 | 2017-02-07 | Qualcomm Incorporated | System and method for controlling central processing unit power based on inferred workload parallelism |
US8464035B2 (en) * | 2009-12-18 | 2013-06-11 | Intel Corporation | Instruction for enabling a processor wait state |
JP5333482B2 (ja) * | 2011-03-01 | 2013-11-06 | 日本電気株式会社 | 消費電力制御装置、消費電力制御方法、及び消費電力制御プログラム |
US20130060555A1 (en) * | 2011-06-10 | 2013-03-07 | Qualcomm Incorporated | System and Apparatus Modeling Processor Workloads Using Virtual Pulse Chains |
US9448940B2 (en) * | 2011-10-28 | 2016-09-20 | The Regents Of The University Of California | Multiple core computer processor with globally-accessible local memories |
US9372524B2 (en) * | 2011-12-15 | 2016-06-21 | Intel Corporation | Dynamically modifying a power/performance tradeoff based on processor utilization |
US9569278B2 (en) * | 2011-12-22 | 2017-02-14 | Intel Corporation | Asymmetric performance multicore architecture with same instruction set architecture |
JP2013149221A (ja) * | 2012-01-23 | 2013-08-01 | Canon Inc | プロセッサの制御装置およびその方法 |
EP2812800A1 (en) * | 2012-02-09 | 2014-12-17 | Telefonaktiebolaget LM Ericsson (PUBL) | Distributed mechanism for minimizing resource consumption |
US20140258759A1 (en) * | 2013-03-06 | 2014-09-11 | Lsi Corporation | System and method for de-queuing an active queue |
US10146293B2 (en) * | 2014-09-22 | 2018-12-04 | Western Digital Technologies, Inc. | Performance-aware power capping control of data storage devices |
-
2015
- 2015-04-16 US US14/688,019 patent/US20160306416A1/en not_active Abandoned
-
2016
- 2016-02-22 TW TW105105143A patent/TWI569202B/zh active
- 2016-03-16 WO PCT/US2016/022572 patent/WO2016167915A1/en active Application Filing
- 2016-03-16 EP EP16780426.9A patent/EP3283959A4/en not_active Ceased
- 2016-03-16 CN CN201680016403.2A patent/CN107430425B/zh active Active
- 2016-03-16 JP JP2017544628A patent/JP6818687B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6415388B1 (en) * | 1998-10-30 | 2002-07-02 | Intel Corporation | Method and apparatus for power throttling in a microprocessor using a closed loop feedback system |
US20060248325A1 (en) * | 2000-09-27 | 2006-11-02 | Fung Henry T | Apparatus and method for modular dynamically power managed power supply and cooling system for computer systems, server applications, and other electronic devices |
US8281159B1 (en) * | 2008-09-11 | 2012-10-02 | Symantec Corporation | Systems and methods for managing power usage based on power-management information from a power grid |
US20100216485A1 (en) * | 2009-02-24 | 2010-08-26 | Eden Rock Communications, Llc | Systems and methods for usage-based output power level adjustments for self-optimizing radio access nodes |
Also Published As
Publication number | Publication date |
---|---|
JP2018512648A (ja) | 2018-05-17 |
TW201638769A (zh) | 2016-11-01 |
JP6818687B2 (ja) | 2021-01-20 |
US20160306416A1 (en) | 2016-10-20 |
EP3283959A1 (en) | 2018-02-21 |
CN107430425A (zh) | 2017-12-01 |
CN107430425B (zh) | 2022-09-23 |
WO2016167915A1 (en) | 2016-10-20 |
EP3283959A4 (en) | 2018-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI569202B (zh) | 用於基於網路負載來調整處理器電力使用之設備及方法 | |
US10664039B2 (en) | Power efficient processor architecture | |
CN105308571B (zh) | 基于活动处理器的动态电压和频率管理 | |
US9904346B2 (en) | Methods and apparatus to improve turbo performance for events handling | |
US8689017B2 (en) | Server power manager and method for dynamically managing server power consumption | |
US10255118B2 (en) | Processing system including a plurality of cores and method of operating the same | |
EP2430538B1 (en) | Allocating computing system power levels responsive to service level agreements | |
TWI489265B (zh) | 根據效率評等方案包含在處理器的多頻域間平衡電力的能量效率及節能方法,設備與系統 | |
US8810584B2 (en) | Smart power management in graphics processing unit (GPU) based cluster computing during predictably occurring idle time | |
CN112889038B (zh) | 用于分配缓存资源的方法和系统 | |
US10768684B2 (en) | Reducing power by vacating subsets of CPUs and memory | |
US8484418B2 (en) | Methods and apparatuses for idle-prioritized memory ranks | |
US8959371B2 (en) | Techniques for reducing processor power consumption through dynamic processor resource allocation | |
US9110716B2 (en) | Information handling system power management device and methods thereof | |
US20160170474A1 (en) | Power-saving control system, control device, control method, and control program for server equipped with non-volatile memory | |
CN107636636B (zh) | 调节处理器核操作 |