CN107430425A - 用于基于网络负荷来调整处理器功率使用率的设备和方法 - Google Patents
用于基于网络负荷来调整处理器功率使用率的设备和方法 Download PDFInfo
- Publication number
- CN107430425A CN107430425A CN201680016403.2A CN201680016403A CN107430425A CN 107430425 A CN107430425 A CN 107430425A CN 201680016403 A CN201680016403 A CN 201680016403A CN 107430425 A CN107430425 A CN 107430425A
- Authority
- CN
- China
- Prior art keywords
- queue
- state
- activity
- core
- packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
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/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
- 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
- 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)
Abstract
在实施例中,一种系统包括处理器,所述处理器包括多个核和多个队列。每个队列包括用于存储待被所述核中的至少一个核处理的分组的存储位置。每个队列具有为活动和不活动之一的对应状态。每个活动队列被启用以存储传入分组,并且每个不活动队列被禁用存储所述传入分组。每个队列具有包括所述队列的所占用存储位置的计数的对应队列深度。所述系统还包括分组分配逻辑,所述分组分配逻辑用于基于包括所述活动队列的所述队列深度的总和的总队列深度来判定是否将所述多个队列中的第一队列的状态从第一状态改变为第二状态。描述并要求保护了其他实施例。
Description
技术领域
实施例涉及系统的功率管理,并且更具体地涉及多核处理器的功率管理。
背景技术
半导体加工和逻辑设计的发展允许增加集成电路装置上可能存在的逻辑量。因此,计算机系统配置已经从系统中的多个集成电路演变成单个集成电路上的多个硬件线程、多个核、多个装置和/或完整系统。另外,随着集成电路的密度的增加,计算系统(从嵌入式系统到服务器)的功率要求也有所增长。此外,软件低效率及其对硬件的要求也已经导致计算装置能耗的增加。事实上,一些研究表明,对于一个国家(如美利坚合众国)而言,计算装置消耗了整个功率供应的相当大的百分比。因此,迫切需要与集成电路相关联的能量效率和能量节省。随着服务器、台式计算机、笔记本计算机、UltrabooksTM、平板计算机、移动电话、处理器、嵌入式系统等变得更加普遍(从包括在典型的计算机、汽车和电视中到生物技术),这些需求将会增加。
附图说明
图1是根据本发明的实施例的系统的框图。
图2是根据本发明的另一实施例的系统的框图。
图3是根据本发明的实施例的系统的框图。
图4是根据本发明的实施例的方法的流程图。
图5是根据本发明的另一实施例的方法的流程图。
图6是根据本发明的另一实施例的方法的流程图。
图7是根据本发明的另一实施例的系统的框图。
图8是根据本发明的另一实施例的系统的框图。
具体实施方式
为了节省包括多核处理器的系统中的功率,一些多核处理器允许将一个或多个核置于低功率状态(例如,降低的时钟频率、降低的运行电压、或其中核的一些或所有核电路系统被关闭的若干种睡眠状态之一)。例如,为了在低活动周期期间节省能量,根据高级配置和功率接口(ACPI)标准(例如,发布于2014年4月的版本5.1),核可以被置于睡眠状态,例如,比核处于活动状态(C0)时消耗更少功率的状态C1至CN之一。可替代地,根据高级配置和功率接口(ACPI)标准(例如,发布于2014年4月的版本5.1),一个或多个核可以被置于低功率性能状态,例如状态P1到PN之一,其中与处于活动状态(P0)的核的时钟频率和/或运行电压相比,可以降低时钟频率和/或运行电压。
计算机系统可以被耦合到网络,所述计算机系统可以从所述网络接收数据分组。计算机系统可以包括用于处理通过所述网络接收到的传入数据分组的多核处理器。
将传入数据分组随机分配到处理器的核以进行处理可能导致处理器中的功率使用效率低下。在实施例中,可以采用一种机制来导引所接收到的网络流量,例如,从所述网络接收到的数据分组(本文也称为分组),以在活动核中进行处理,并且允许不活动(例如,去激活)的核保持不活动,例如处于睡眠状态或降低功率状态。当达到负荷阈值时,所述机制可以唤醒睡眠核。基于负荷状况,核可以从高功率状态转变到低功率状态,或从低功率状态转变到高功率状态。省电目标可以是使最大数量的核保持在睡眠状态,同时处理器的活动核对所接收到的网络流量进行处理,所述目标可以通过本文所呈现的实施例来实现。
在实施例中,网络接口卡(NIC)和处理器可以一起工作以通过将用于处理经由NIC从网络接收到的分组的活动核的计数最小化来实现功率节省。NIC可以使一个或多个队列缓冲器(本文也称为“队列”)去激活(或激活),每个队列对应于分组有待递送到的核。将分组馈送到活动核的活动队列的计数的最小化可以允许将最大数量的核置于(或保持在)低功率状态(例如睡眠状态)或降低功率/性能状态(例如,在从其正常时钟频率降低的时钟频率或降低电压下运行)。
在实施例中,基于负荷状况,核可以从高功率使用状态转变到与对应队列的去激活相关联的低功率使用状态,或者从低功率使用状态转变到与对应队列的激活相关联的高功率使用状态。
在实施例中,机制可以将所接收到的流量的处理合并为少于所有可用的核。例如,对于具有三个核的处理器,每个核都以10%的容量运行,可以将工作负荷重新分配到以30%容量运行的一个核。剩余的两个核可以被置于功率节省状态(例如,C(1)-C(N)等),当另外的所接收到的流量需要附加处理功率时,一个或两个核可以从所述功率节省状态重新激活。所述机制可以通过NIC提供使活动队列的计数最小化的队列调度功能来实现。
作为示例,所述机制可以根据如下伪代码来实现(这里队列深度(i)是第i个队列中存储位置的占用量的测量值,其中,每个存储位置都可以存储分组):
如果队列深度(i)的总和>第一个阈值(例如,75%深度),则从不活动队列池中激活一个或多个队列。
否则,如果队列深度的总和<第二阈值(例如,25%深度),则使一个或多个队列去激活(并且不将附加传入分组发送到所述待去激活的队列)
否则继续
在实施例中,用于C状态或P状态的可配置动作可以被实现为从NIC到核的中断。当超过队列阈值(例如,上述伪代码中的第一阈值)并且对应队列被激活时,核可以被NIC唤醒。
在实施例中,主机可以对“单触发(one shot)”中断进行编程。单触发中断可以由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可以基于每个队列的队列深度的总和来判定哪个队列214被激活或去激活。在实施例中,分组分配逻辑可以确定所有活动队列的总可用容量超过第一阈值,并且可以选择特定队列来激活以增大活动队列的计数。将特定队列改变为活动状态可以伴随着对应核从较低功率状态(例如,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可以将附加队列指定为活动的,例如可用于接收传入分组。
附加队列可以馈送待从低功率状态唤醒(或提高活动水平)的附加核(未示出)。因此,当需要附加执行能力时,可以激活所选不活动队列以接收传入分组,并且处于睡眠状态或低功率状态的对应不活动核可以被完全激活或提高到更高的活动水平。在一个实施例中,可以通过来自分组分配逻辑360的单触发中断消息来唤醒对应核312i。在另一实施例中,在处理器中运行的软件可以监测一个或多个存储器位置,例如在从其不活动状态激活的队列内,并且当分组到达经激活的队列时,软件可以使对应核变成激活,以便处理已到达激活队列中的分组。
分组分配逻辑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中的分组),并且可以将所选分组重新分配到队列426以由核412N处理。(注意,队列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的框图,所述系统包括多域处理器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被耦合到网络接口卡704,所述网络接口卡包括分组分配逻辑706,所述分组分配逻辑可以确定队列7080-708n中的哪一个用于接收从网络接收到的传入分组,并且可以来判定是增大还是减小活动队列的计数。例如,分组分配逻辑706可以确定激活先前不活动的队列,或者基于总队列深度与第一(例如,高)阈值的比较或与第二(例如,低)阈值的比较(例如,比较)来使当前活动的队列去激活。根据本发明的实施例,在特定队列中的剩余分组已被处理之后,如果特定队列被去激活,则PCU 755可以通过将对应核置于低功率状态(例如,休眠状态或低功率/性能状态)来降低对应核所消耗的功率。
如图7中进一步可见的,处理器700可进一步包括集成存储器控制器(IMC)770,所述集成存储器控制器可向系统存储器(诸如动态随机存取存储器(DRAM))提供接口。可以存在多个接口7800-780n以便使能处理器与其他电路之间的互连。例如,在一个实施例中,可以提供至少一个直接媒体接口(DMI)接口以及一个或多个PCIeTM接口。仍进一步地,为了提供其他代理(诸如附加处理器)或其他电路之间的通信,还可以提供一个或多个QPI接口。尽管在图7的实施例中以这种较高层次示出,但应理解,本发明的范围不限于这一方面。
现在参考图8,示出了系统800的框图,所述系统包括耦合到网络接口卡(NIC)804的代表性片上系统(SoC)802。在所示的实施例中,SoC 800可以是针对低功率操作配置的多核SoC,所述多核SoC被优化以并入智能电话或其他低功率装置(如平板计算机或其他便携式计算装置)。作为示例,可以使用不对称或不同类型的核(例如较高功率和/或低功率核的组合,例如无序核和有序核)来实现SoC 800。在不同的实施例中,这些核可以基于ArchitectureTM核设计或ARM架构设计。在另外其他实施例中,可以在给定的SoC中实现Intel和ARM核的混合。
如图8所示,SoC 800包括具有多个第一核8120-8123的第一核域810,每个第一核用于通过对应队列8140-8143接收分组。在示例中,核8120-8123可以是低功率核,例如有序核。在一个实施例中,第一核8120-8323可以被实现为ARM Cortex A53核。进而,这些核8120-8323耦合到核域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,所述NIC包括分组分配逻辑806,所述分组分配逻辑可以确定队列8140-8143和8240-8243中的哪一个用于接收从网络接收到的传入分组。根据本发明的实施例,分组分配逻辑806还可以判定是增大还是减小活动队列的计数。例如,分组分配逻辑806可以确定激活不活动队列,或者基于总队列深度与第一(例如,高)阈值的比较或与第二(例如,低)阈值的比较(例如,比较)来使当前活动的队列去激活。如果特定队列有待被去激活,则可以减少对应核消耗的功率,例如,可以通过例如SoC 802的功率管理单元将核置于睡眠状态或降低功率/性能状态(未示出)。
进一步参考图8,还提供了图形域830,所述图形域可以包括被配置为独立地执行例如由核域810和820中的一个或多个核提供的图形工作负荷的一个或多个图形处理单元(GPU)。作为示例,除了提供图形和显示渲染操作之外,GPU域830还可以用于为各种屏幕尺寸提供显示支持。
如所看到的,各个域耦合到一致互连840,在实施例中,所述一致互连可以是进而耦合到集成存储器控制器850的高速缓存一致互连结构。在一些示例中,一致互连840可以包括共享高速缓存存储器,例如L3高速缓存。在实施例中,存储器控制器850可以是直接存储器控制器,以提供与片外存储器通信的多个信道,诸如DRAM的多个通道(图8中为了便于说明而未示出)。
在不同的示例中,核域的数量可以变化。例如,对于适合并入到移动计算装置中的低功率SoC,可以存在如图8所示的有限数量的核域。此外,在这种低功率SoC中,包括较高功率核的核域820可以具有较少数目的这种核。例如,在一种实施方式中,可以提供两个核822以使得能够以降低的功率消耗水平进行操作。此外,不同的核域还可以耦合到中断控制器,以使能不同域之间的工作负荷的动态交换。
在另外的其他实施例中,可以存在更多数量的核域以及附加的可选IP逻辑,因为可以将SoC扩展到更高性能(和功率)水平,以便并入其他计算装置,如台式机、服务器、高性能计算系统、基站。作为一个这样的示例,可以提供每个具有给定数量的无序核的4个核域。此外,除了可选的GPU支持(作为示例其可以采用GPGPU的形式)之外,还可以提供一个或多个加速器,所述一个或多个加速器用于针对特定功能(例如网络服务、网络处理、交换等)提供优化的硬件支持。此外,可以存在输入/输出接口以将这种加速器耦合到片外部件。
下面描述了附加的实施例。
在第1实施例中,一种系统包括处理器,所述处理器包括多个核和多个队列,其中,每个队列包括用于存储待由所述核中的至少一个核处理的分组的存储位置,每个队列具有为活动和不活动之一的对应状态,每个活动队列被启用以存储传入分组,并且每个不活动队列被禁用存储所述传入分组,并且其中,每个队列具有包括所述队列的所占用存储位置的计数的对应队列深度。所述系统还包括分组分配逻辑,所述分组分配逻辑用于基于总队列深度来判定是否将所述多个队列中的第一队列的状态从第一状态改变为第二状态,所述总队列深度包括所述活动队列的所述队列深度的总和。
第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被耦合到所述处理器并且包括所述分组分配逻辑,其中所述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)等半导体器件、如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)等随机存取存储器(RAM);可擦可编程只读存储器(EPROM);闪存;电可擦可编程只读存储器(EEPROM);磁卡或光卡;或者适合于存储电子指令的任何其他类型的介质。
虽然已经关于有限数量的实施例描述了本发明,但本领域技术人员将理解来自它的多种变型和修改。旨在使得所附权利要求书覆盖如落在本发明的真实精神和范围内的所有这种修改和变体。
Claims (25)
1.一种系统,包括:
处理器,所述处理器包括多个核和多个队列,其中,每个队列包括用于存储待由所述核中的至少一个核处理的分组的存储位置,每个队列具有为活动和不活动之一的对应状态,每个活动队列被启用以存储传入分组,并且每个不活动队列被禁用存储所述传入分组,并且其中,每个队列具有包括所述队列的所占用存储位置的计数的对应队列深度;以及
分组分配逻辑,所述分组分配逻辑用于基于总队列深度来判定是否将所述多个队列中的第一队列的状态从第一状态改变为第二状态,所述总队列深度包括所述活动队列的所述队列深度的总和。
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被耦合到所述处理器并且包括所述分组分配逻辑,其中,所述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.如权利要求20所述的方法,进一步包括:响应于所述总队列深度小于第二阈值而将所述第二队列的对应状态从活动改变为不活动;以及使对应核从活动功率状态改变为比所述活动功率状态消耗更少功率的降低的功率状态。
24.如权利要求23所述的方法,其中,所述第二阈值将基于所述总队列深度随时间的变化速率而被确定。
25.一种设备,包括用于执行如权利要求18至24中任一项所述的方法的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/688,019 | 2015-04-16 | ||
US14/688,019 US20160306416A1 (en) | 2015-04-16 | 2015-04-16 | Apparatus and Method for Adjusting Processor Power Usage Based On Network Load |
PCT/US2016/022572 WO2016167915A1 (en) | 2015-04-16 | 2016-03-16 | Apparatus and method for adjusting processor power usage based on network load |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107430425A true CN107430425A (zh) | 2017-12-01 |
CN107430425B CN107430425B (zh) | 2022-09-23 |
Family
ID=57126030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680016403.2A Active CN107430425B (zh) | 2015-04-16 | 2016-03-16 | 用于基于网络负荷来调整处理器功率使用率的设备和方法 |
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) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109005129A (zh) * | 2018-08-29 | 2018-12-14 | 北京百瑞互联技术有限公司 | 一种基于蓝牙mesh网络的数据传输方法及装置 |
CN112352404A (zh) * | 2018-07-13 | 2021-02-09 | 三星电子株式会社 | 用于处理电子设备的数据分组的装置和方法 |
CN113965527A (zh) * | 2020-07-02 | 2022-01-21 | 迈络思科技有限公司 | 具有布防和/或自布防特征的时钟队列 |
Families Citing this family (9)
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 |
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) |
US20230400981A1 (en) * | 2022-06-09 | 2023-12-14 | Samsung Electronics Co., Ltd. | System and method for managing queues in systems with high parallelism |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040163000A1 (en) * | 2003-02-14 | 2004-08-19 | International Business Machines Corporation | Network processor power management |
US20110022871A1 (en) * | 2009-07-21 | 2011-01-27 | Bouvier Daniel L | System-On-Chip Queue Status Power Management |
CN102103484A (zh) * | 2009-12-18 | 2011-06-22 | 英特尔公司 | 用于启用处理器等待状态的指令 |
CN102656539A (zh) * | 2009-12-16 | 2012-09-05 | 高通股份有限公司 | 用于基于所推断的工作负载并行性控制中央处理单元功率的系统和方法 |
US20130060555A1 (en) * | 2011-06-10 | 2013-03-07 | Qualcomm Incorporated | System and Apparatus Modeling Processor Workloads Using Virtual Pulse Chains |
US20130191613A1 (en) * | 2012-01-23 | 2013-07-25 | Canon Kabushiki Kaisha | Processor control apparatus and method therefor |
CN103999016A (zh) * | 2011-12-15 | 2014-08-20 | 英特尔公司 | 基于处理器使用率动态地修正功率/性能权衡 |
CN104011704A (zh) * | 2011-12-22 | 2014-08-27 | 英特尔公司 | 具有相同的指令集架构(isa)的非对称性能多核架构 |
US20140258759A1 (en) * | 2013-03-06 | 2014-09-11 | Lsi Corporation | System and method for de-queuing an active queue |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0713817B2 (ja) * | 1990-03-13 | 1995-02-15 | 工業技術院長 | 疎結合並列計算機における負荷の動的均等化方法 |
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 |
US7032119B2 (en) * | 2000-09-27 | 2006-04-18 | Amphus, Inc. | Dynamic power and workload management for multi-server system |
JP2008129846A (ja) * | 2006-11-21 | 2008-06-05 | Nippon Telegr & Teleph Corp <Ntt> | データ処理装置、データ処理方法およびプログラム |
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 |
US8385967B2 (en) * | 2009-02-24 | 2013-02-26 | Eden Rock Communications, Llc | Systems and methods for usage-based output power level adjustments for self-optimizing radio access nodes |
JP5091912B2 (ja) * | 2009-05-21 | 2012-12-05 | 株式会社東芝 | マルチコアプロセッサシステム |
JP5333482B2 (ja) * | 2011-03-01 | 2013-11-06 | 日本電気株式会社 | 消費電力制御装置、消費電力制御方法、及び消費電力制御プログラム |
US9448940B2 (en) * | 2011-10-28 | 2016-09-20 | The Regents Of The University Of California | Multiple core computer processor with globally-accessible local memories |
EP2812800A1 (en) * | 2012-02-09 | 2014-12-17 | Telefonaktiebolaget LM Ericsson (PUBL) | Distributed mechanism for minimizing resource consumption |
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 (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040163000A1 (en) * | 2003-02-14 | 2004-08-19 | International Business Machines Corporation | Network processor power management |
US20110022871A1 (en) * | 2009-07-21 | 2011-01-27 | Bouvier Daniel L | System-On-Chip Queue Status Power Management |
CN102656539A (zh) * | 2009-12-16 | 2012-09-05 | 高通股份有限公司 | 用于基于所推断的工作负载并行性控制中央处理单元功率的系统和方法 |
CN102103484A (zh) * | 2009-12-18 | 2011-06-22 | 英特尔公司 | 用于启用处理器等待状态的指令 |
US20130060555A1 (en) * | 2011-06-10 | 2013-03-07 | Qualcomm Incorporated | System and Apparatus Modeling Processor Workloads Using Virtual Pulse Chains |
CN103999016A (zh) * | 2011-12-15 | 2014-08-20 | 英特尔公司 | 基于处理器使用率动态地修正功率/性能权衡 |
CN104011704A (zh) * | 2011-12-22 | 2014-08-27 | 英特尔公司 | 具有相同的指令集架构(isa)的非对称性能多核架构 |
US20130191613A1 (en) * | 2012-01-23 | 2013-07-25 | Canon Kabushiki Kaisha | Processor control apparatus and method therefor |
US20140258759A1 (en) * | 2013-03-06 | 2014-09-11 | Lsi Corporation | System and method for de-queuing an active queue |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112352404A (zh) * | 2018-07-13 | 2021-02-09 | 三星电子株式会社 | 用于处理电子设备的数据分组的装置和方法 |
CN112352404B (zh) * | 2018-07-13 | 2023-07-25 | 三星电子株式会社 | 用于处理电子设备的数据分组的装置和方法 |
CN109005129A (zh) * | 2018-08-29 | 2018-12-14 | 北京百瑞互联技术有限公司 | 一种基于蓝牙mesh网络的数据传输方法及装置 |
CN113965527A (zh) * | 2020-07-02 | 2022-01-21 | 迈络思科技有限公司 | 具有布防和/或自布防特征的时钟队列 |
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 |
CN107430425B (zh) | 2022-09-23 |
WO2016167915A1 (en) | 2016-10-20 |
EP3283959A4 (en) | 2018-12-19 |
TWI569202B (zh) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107430425A (zh) | 用于基于网络负荷来调整处理器功率使用率的设备和方法 | |
CN105960620B (zh) | 动态电压裕度恢复 | |
CN102087619B (zh) | 用于提高事件处理的涡轮加速性能的方法和装置 | |
CN102495756B (zh) | 操作系统在不同的中央处理器之间切换的方法及系统 | |
KR101744126B1 (ko) | 비대칭적 프로세서 코어 간의 협력적 실행을 위한 기법 | |
CN101048763B (zh) | 一种配置处理器的高速缓冲存储器的方法与处理器 | |
CN101334688B (zh) | 便于动态功率管理的核活动检测器的方法、系统和设备 | |
TWI537821B (zh) | 對每一核心提供電壓及頻率控制之技術 | |
CN106155265A (zh) | 有功率效率的处理器体系结构 | |
JP2013526739A (ja) | キャッシュ制御のための方法および装置 | |
CN102356385B (zh) | 存储器存取控制器、系统及用于最优化存储器存取时间的方法 | |
CN101320289A (zh) | 提高多内核处理器性能的方法、系统和装置 | |
CN101160562A (zh) | 用于异质多管线处理器中的功率减小的方法和设备 | |
CN104050137B (zh) | 一种异构操作系统中内核运行的方法及装置 | |
CN108920267A (zh) | 任务处理装置 | |
CN103218329A (zh) | 数字信号处理数据传输 | |
US20160154452A1 (en) | System and method for controlling the power mode of operation of a memory device | |
KR101826088B1 (ko) | 프로세서 코어들의 전력 모드들을 제어하기 위한 레이턴시-기반 전력 모드 유닛들, 및 관련 방법들 및 시스템들 | |
CN107003709A (zh) | 包括实现指令集架构不同部分的多个不同处理器内核的处理器 | |
CN105453066B (zh) | 处理器和存储器控制方法 | |
CN115373860B (zh) | Gpu任务的调度方法、装置、设备和存储介质 | |
US11399344B2 (en) | System and method for SoC idle power state control based on I/O operation characterization | |
CN110968180B (zh) | 一种通过减少数据传输实现gpu降耗的方法及系统 | |
CN106020424B (zh) | 有功率效率的处理器体系结构 | |
WO2024147979A1 (en) | Chiplet interconnect power state management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |