CN114116192A - 硬件指导核心暂停 - Google Patents
硬件指导核心暂停 Download PDFInfo
- Publication number
- CN114116192A CN114116192A CN202110824472.9A CN202110824472A CN114116192A CN 114116192 A CN114116192 A CN 114116192A CN 202110824472 A CN202110824472 A CN 202110824472A CN 114116192 A CN114116192 A CN 114116192A
- Authority
- CN
- China
- Prior art keywords
- processing units
- class
- performance
- runtime
- efficiency
- 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.)
- Pending
Links
- 239000000725 suspension Substances 0.000 title claims abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 233
- 238000000034 method Methods 0.000 claims abstract description 56
- 239000000758 substrate Substances 0.000 claims description 21
- 230000004044 response Effects 0.000 claims description 11
- 239000004065 semiconductor Substances 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000003068 static effect Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- JBRZTFJDHDCESZ-UHFFFAOYSA-N AsGa Chemical compound [As]#[Ga] JBRZTFJDHDCESZ-UHFFFAOYSA-N 0.000 description 1
- 229910001218 Gallium arsenide Inorganic materials 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000000206 photolithography Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 229910052594 sapphire Inorganic materials 0.000 description 1
- 239000010980 sapphire Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3428—Benchmarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4405—Initialisation of multiprocessor systems
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/503—Resource availability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Power Sources (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及硬件指导核心暂停。系统、装置和方法可提供基于系统级线程特性来自动确定多个异构处理单元的运行时性能的技术,其中运行时性能是按照性能类别来确定的。该技术还可自动确定异构处理单元的运行时能量效率,其中运行时能量效率是按照效率类别来确定的。在一个示例中,技术基于运行时性能和运行时能量效率来选择性地解除暂停异构处理单元中的一个或多个。
Description
技术领域
实施例概括而言涉及计算体系结构。更具体而言,实施例涉及基于处理单元的性能和能量效率能力以及运行时(runtime)系统特性进行的硬件指导核心暂停(hardwaredirected core parking)。
背景技术
计算系统中的核心暂停通常涉及决定多核心体系结构中的哪些处理器核心(例如,处理单元)要解除暂停(unpark)(例如,激活)以及哪些处理器核心要暂停(park)(例如,停用)的过程。当前的核心暂停解决方案可基于利用率或并发性来决定核心计数和哪些核心要暂停/解除暂停,其方法是假设所有的处理单元都是同构的或者能量效率是静态的。然而,这种假设在混合平台(例如,包含异构处理单元)中可能是不准确的。因此,可能会经历次优的性能和/或效率。
发明内容
本申请的一个方面提供了一种计算系统,包括:多个异构处理单元;以及与至少一个处理单元耦合的存储器,其中所述存储器包括一组指令,所述指令当被所述至少一个处理单元执行时,使得所述至少一个处理单元:基于系统级线程特性来确定所述多个异构处理单元的运行时性能,其中所述运行时性能是按照性能类别来确定的,基于所述系统级线程特性来确定所述多个异构处理单元的运行时能量效率,其中所述运行时能量效率是按照效率类别来确定的,以及基于所述运行时性能和所述运行时能量效率来选择性地解除暂停所述多个异构处理单元中的一个或多个。
附图说明
通过阅读以下说明书和所附权利要求并且通过参考以下附图,实施例的各种优点将对本领域技术人员变得清楚,附图中:
图1A是根据一实施例的处理器利用率的示例的图线;
图1B是根据一实施例的调度表的示例的图示;
图1C是传统暂停状态和根据一实施例的暂停状态的示例的比较图线;
图2是根据一实施例的对性能和效率增强的计算系统进行操作的方法的示例的流程图;
图3是根据一实施例的基于运行时性能和运行时能量效率来选择性地解除暂停多个异构处理单元的方法的示例的流程图;
图4是根据一实施例的选择性地解除暂停某个类别内的处理单元的方法的示例的流程图;
图5是根据一实施例的维护硬件引导调度数据结构的方法的示例的流程图;
图6是根据一实施例的硬件引导调度数据结构的示例的图示;
图7是根据一实施例的对性能和能量增强的计算系统进行操作的更详细方法的示例的流程图;
图8是根据一实施例的性能和效率增强的计算系统的示例的框图;并且
图9是根据一实施例的半导体装置的示例的图示。
具体实施方式
现在转到图1A,示出了处理器利用率图表10,其中处理器利用率相对较高(例如,在较长的时间段中为100%)。线程并发性(例如,并行处理需求)也可能相对较高。在包含一个或多个被“暂停”(例如,被停用)的核心(例如,处理单元、逻辑处理器)的多核心体系结构中,高处理器利用率可能触发一个或多个核心被“解除暂停”(例如,被激活)。在一个示例中,一个或多个性能良好(例如,高性能)的核心的解除暂停对于应对图示的高处理器利用率状况/状态而言可以是特别有利的。
继续参考图1A和图1B,调度表12表明,一组处理单元(处理器编号0-3,例如,诸如INTEL ATOM处理单元之类的类型A处理单元)可被分类在调度类别“1”中,而另一处理单元(处理器编号4,例如,诸如INTEL CORE处理单元之类的类型B处理单元)可被分类在调度类别“0”中。
继续参考图1A-1C,传统的暂停状态图线14表明,由于高利用率和并发性,处理器编号4(例如,类型B处理单元)被解除暂停。然而,其他系统级的线程特性(例如功率和/或热约束)可能导致类型B处理单元的性能低于类型A处理单元(例如,处理器编号0-3)。在这种情况下,增强的暂停状态图线16可表明,类型B处理单元在高利用率和并发性状况期间被放置和/或维持在暂停状态中。正如将更详细论述的那样,通过考虑到运行时线程特性以及各种处理单元的动态效率和性能,实施例能够识别出哪些核心要解除暂停以获得更好的效率和/或更好的性能。
图2示出了对性能和效率增强的计算系统进行操作的方法20。方法20可作为存储在诸如随机访问存储器(random access memory,RAM)、只读存储器(read only memory,ROM)、可编程ROM(programmable ROM,PROM)、固件、闪存等等之类的机器或计算机可读存储介质中的逻辑指令集合而被实现在一个或多个模块中,可被实现在诸如可编程逻辑阵列(programmable logic array,PLA)、现场可编程门阵列(field programmable gatearray,FPGA)、复杂可编程逻辑器件(complex programmable logic device,CPLD)之类的可配置逻辑中,可利用诸如专用集成电路(application specific integrated circuit,ASIC)、互补金属氧化物半导体(complementary metal oxide semiconductor,CMOS)或晶体管-晶体管逻辑(transistor-transistor logic,TTL)技术之类的电路技术被实现在固定功能硬件逻辑中,或者这些的任何组合。
例如,可以以一种或多种编程语言的任何组合来编写用于执行方法20中所示的操作的计算机程序代码,所述编程语言包括面向对象的编程语言,比如JAVA、SMALLTALK、C++之类的,还包括传统的过程式编程语言,比如“C”编程语言或类似的编程语言。此外,逻辑指令可包括汇编指令、指令集体系结构(instruction set architecture,ISA)指令、机器指令、机器相关指令、微代码、状态设置数据、用于集成电路的配置数据、对电子电路和/或硬件原生的其他结构组件(例如,主机处理器、中央处理单元/CPU、微控制器等等)进行个性化的状态信息。
图示的处理块22提供了基于系统级线程特性来确定多个异构处理单元的运行时性能,其中运行时性能是按照性能类别来确定的。例如,异构处理单元可被实时分组到性能类别(例如,性能类别0、性能类别1,等等)中。此外,每个性能类别的运行时性能可基于系统级线程特性(例如,功率约束、热约束、服务质量/QoS、利用率、并发性、阈值、共享队列状态、管芯(die)位置,等等)来被确定,这些特性可从硬件(例如,经由pcode从硬件计数器)和/或软件获得。
块24基于系统级线程特性来确定多个异构处理单元的运行时能量效率,其中运行时能量效率是按照效率类别来确定的。例如,异构处理单元也可被实时分组到效率类别(例如,效率类别0、效率类别1,等等)中。此外,每个效率类别的运行时能量效率可基于系统级线程特性(例如,功率约束、热约束、QoS、利用率、并发性、阈值、共享队列状态,等等)来被确定,这些特性可从硬件(例如,经由pcode从硬件计数器)和/或软件获得。
块26可基于运行时性能和运行时能量效率来选择性地解除暂停多个异构处理单元中的一个或多个。例如,块26可确定,由于系统级利用率状况,性能类别0中的三个处理单元和性能类别1中的一个处理单元将被解除暂停。在另一示例中,块26可确定,由于系统级功率约束,效率类别0中的两个处理单元和效率类别1中的两个处理单元将被解除暂停。从而,图示的方法20既不假定所有的处理单元是同构的,也不假定能量效率是静态的。因此,在混合平台(例如,包含异构处理单元)中,提高了准确性,这导致更优的性能和/或效率。
图4示出了选择性地解除暂停性能类别和效率类别中的处理单元的方法40。该方法40一般可并入到已经论述过的块32和/或36(图3)中。更具体而言,方法40可作为存储在诸如RAM、ROM、PROM、固件、闪存等等之类的机器或计算机可读存储介质中的逻辑指令集合而被实现在一个或多个模块中,可被实现在诸如PLA、FPGA、CPLD之类的可配置逻辑中,可利用诸如ASIC、CMOS或TTL技术之类的电路技术被实现在固定功能硬件逻辑中,或者这些的任何组合。
图示的块42提供了,基于一个或多个暂停提示来选择性地将第一性能类别中的处理单元的第一子集解除暂停。正如将更详细论述的那样,暂停提示不限于性能和能量效率能力,而是可包括基于被添加到硬件引导调度(hardware guided scheduling,HGS)的任何新能力的、系统范围的(system-wide)暂停提示。此外,暂停提示可通过如下操作来指示出对于解除暂停性能或能量效率次高的核心的偏好:增大后续处理单元之间的性能或能量效率差量。块44基于(一个或多个)暂停提示来将第一性能类别中的处理单元的第二子集维持在暂停状态中。在一实施例中,块46基于(一个或多个)暂停提示选择性地解除暂停第一效率类别中的处理单元的第一子集,其中块48基于(一个或多个)暂停提示将第一效率类别中的处理单元的第二子集维持在暂停状态中。图示的方法40通过使得某一类别中的处理单元能够被选择性地暂停,从而进一步增强了性能和效率。
现在转到图5和图6,示出了维护HGS数据结构52的方法50。在一个示例中,方法50是在已经论述过的方法20(图2)之前和/或与之同时进行的。方法50一般可至少部分地被实现在已经论述过的核心暂停逻辑54和/或pCode 56中。更具体而言,方法50可作为存储在诸如RAM、ROM、PROM、固件、闪存等等之类的机器或计算机可读存储介质中的逻辑指令集合被实现在一个或多个模块中,可被实现在诸如PLA、FPGA、CPLD之类的可配置逻辑中,可利用诸如ASIC、CMOS或TTL技术之类的电路技术被实现在固定功能硬件逻辑中,或者这些的任何组合。
图示的块58提供了,按照处理单元标识符(ID,例如CPUID)列举(enumerate)多个异构处理单元之中的多个类别。从而,块58可包括确定有多少性能类别和效率类别可用于第一处理单元,确定有多少性能类别和效率类别可用于第二处理单元,等等依此类推。对HGS数据结构52的体系结构的支持可经由特定于模型的寄存器(model specificregister,MSR)比特来被使能,例如,IA32_HW_FEEDBACK_CONFIG读/写包级范围(0x17D1)MSR比特2。在一实施例中,在设置MSR比特0之后,传统的HGS表被构建。此外,当MSR比特1被设置时,可构建HGS+扩展列。此外,当MSR比特2被设置时,可以更新系统范围的列以用于核心暂停辅助。在一个示例中,当准备就绪的IA32_PACKAGE_THERM_STATUS[26]比特被设置时,如果IA32_PACKAGE_THERM_INTERRUPT[25]比特被设置,则将生成中断。该中断可表明HGS数据结构52准备好被初始化。
在一实施例中,块60初始化HGS数据结构52以包括系统级类别列和多个类别列,其中该系统级类别列和该多个类别列中的每一个包括能量效率子列和性能子列。在一个示例中,块60经由CPUID发现支持,基于CPUID发现类别的数目,经由IA32_HW_FEEDBACK_CONFIG比特2使能支持,读取HGS反馈存储器暂停列(最右边的系统范围列)以计算性能和能量效率类别,以便在自动决定哪些核心要解除暂停时使用。
块62跟踪HGS数据结构52中的系统级线程特性。在一个示例中,块64提供了,响应于系统级特性中的一个或多个变化而更新HGS数据结构52。一旦得到通知,块64就可更新性能和能量效率类别,以便在自动决定哪些核心要解除暂停时使用。
图7示出了对性能和效率增强的计算系统进行操作的更详细方法70。方法70可作为存储在诸如RAM、ROM、PROM、固件、闪存等等之类的机器或计算机可读存储介质中的逻辑指令集合被实现在一个或多个模块中,可被实现在诸如PLA、FPGA、CPLD之类的可配置逻辑中,可利用诸如ASIC、CMOS或TTL技术之类的电路技术被实现在固定功能硬件逻辑中,或者这些的任何组合。
图示的块72基于诸如QoS、利用率、并发性、阈值、共享队列状态(例如,就绪队列)等等之类的需求来选择性能或能量列。块74针对所选择的性能或能量效率列识别核心计数。在一实施例中,块76遍历所选择的列,以识别哪一类别的处理单元要解除暂停。在一个示例中,如果在一类别内有多个处理单元,则块78分别利用关于该类别内的能量效率和性能的提示。
更新
返回到图6,暂停类别可由pCode 56基于诸如硬件计数器、系统约束等等之类的硬件启发来计算。更具体而言,pCode 56可基于系统范围的动态特性,在以下场景中提供硬件(HW)引导的暂停列更新。
初始暂停列可指示出,基于系统约束针对性能和能量效率能力要解除暂停的处理单元的偏好。在一实施例中,基于工作负载特性和系统在处理单元的性能/效率方面的运行情况,响应于该偏好的变化而更新列。假设性能较差或效率较低的处理单元被核心暂停逻辑54暂停,则还可以基于在工作负载被转移到其他可用的处理单元的情况下相对的性能/能量效率会是多少来更新这些列。
下面是各种用例,在这些用例中,基于系统范围的工作负载特性以及在当前工作被转移到未使用的处理单元的情况下处理单元的性能能量效率会是多少,来更新效率和性能能力。
利用率<阈值,=>Perf[类型B]>Perf[类型A],并且Eff[类型B]>Eff[类型A]:
用例#1–低利用率运行更高缩放的线程;以及
用例#2–频率高于交叉(cross-over)。
利用率>阈值,=>Perf[类型A]>Perf[类型B],并且Eff[类型A]>Eff[类型B]:
用例#3–持续的工作负载;以及
用例#4–较低的TDP(热设计功率)。
低QoS利用率,Perf[类型B]>Perf[类型A],并且Eff[类型B]>Eff[类型A]:
用例#5–低QoS运行更高缩放的线程。
提示
如前所述,提示并不限于性能和能量效率能力。例如,提示可包括基于被添加到HGS的任何新能力的、系统范围的暂停提示。关于相对的暂停能力,暂停提示也可通过增大后续处理单元(例如,逻辑处理器/LP)之间的性能或能量效率差量来指示出对于解除暂停性能或能量效率次高的核心的偏好。
例如:
LP0–被解除暂停
LP1–被暂停
LP2–被暂停
LP3–被暂停
如果接下来解除暂停LP2/LP3与LP1相比,能量效率惩罚是两倍那么多,那么上述情况可经由相对能量效率能力差异来被表明。
下面的示例表示当LP0被解除暂停并且其余的LP被暂停时反映这种差异的能量效率能力的示例。另外,如果一旦LP2被解除暂停则解除暂停LP3的能量效率惩罚可忽略不计,那么如果LP2被解除暂停,则能量效率能力可以被如下更新以反映该情况:
LP0=100
LP1=150
LP2=250
LP3=250
图8示出了计算系统80,该计算系统80一般可以是电子设备/系统的一部分,具有计算功能(例如,个人数字助理/PDA、笔记本计算机、平板计算机、可转换平板设备、服务器)、通信功能(例如,智能电话)、成像功能(例如,相机、摄像机)、媒体播放功能(例如,智能电视/TV)、可穿戴功能(例如,手表、眼镜、头饰、鞋类、珠宝)、车辆功能(例如,汽车、卡车、摩托车)、无人机功能、机器人功能(例如,自主机器人)、物联网(Internet of Things,IoT)功能,等等,或者这些的任何组合。在图示的示例中,系统80包括多个异构处理单元82(82a-82d,例如,包括主机处理器、图形处理器,等等),它们(例如,经由存储器控制器,未示出)耦合到系统存储器84(例如,双列直插式存储器模块/DIMM)。
图示的系统80还包括输入输出(IO)模块86,它与异构处理单元82集成到混合片上系统(SoC)83中。在一实施例中,IO模块86与显示器88(例如,触摸屏、液晶显示器/LCD、发光二极管/LED显示器)、网络控制器90(例如,有线和/或无线)以及大容量存储装置92(例如,硬盘驱动器/HDD、光盘、固态驱动器/SSD、闪存)进行通信。系统存储器84和/或大容量存储装置92包括一组可执行程序指令94,这些指令当被至少一个处理单元(例如,多个异构处理单元82之一,功率和/或性能控制器(未示出,例如在SoC 83上或在单独的芯片上)等等)执行时,使得计算系统80和/或该至少一个处理单元执行已经论述过的方法20(图2)、方法30(图3)、方法40(图4)、方法50(图5)和/或方法70(图7)的一个或多个方面。
从而,指令94的执行可使得计算系统80和/或至少一个处理单元基于系统级线程特性来确定异构处理单元82的运行时性能,其中运行时性能是按照性能类别来确定的。在一实施例中,指令94的执行还使得计算系统80和/或至少一个处理单元确定异构处理单元82的运行时能量效率,其中运行时能量效率是按照效率类别来确定的。在一个示例中,指令94的执行还使得计算系统80和/或至少一个处理单元基于运行时性能和运行时能量效率来选择性地解除暂停异构处理单元82中的一个或多个。
因此,计算系统80的性能和效率至少在计算系统80既不假定所有处理单元都是同构的,也不假定能量效率是静态的这一方面得到增强。相应地,暂停准确性得到了提高,这导致了更优的性能和/或效率。
图9示出了半导体封装装置100。图示的装置100包括一个或多个衬底102(例如,硅、蓝宝石、砷化镓)和耦合到(一个或多个)衬底102的逻辑104(例如,晶体管阵列和其他集成电路/IC组件)。逻辑104可至少部分被实现在可配置逻辑或固定功能硬件逻辑中。此外,逻辑104一般可实现已经论述过的方法20(图2)、方法30(图3)、方法40(图4)、方法50(图5)和/或方法70(图7)的一个或多个方面。从而,逻辑104可基于系统级线程特性来自动确定多个异构处理单元的运行时性能,其中运行时性能是按照性能类别来确定的。在一实施例中,逻辑104还自动确定异构处理单元的运行时能量效率,其中运行时能量效率是按照效率类别来确定的。在一个示例中,逻辑104基于运行时性能和运行时能量效率来选择性地解除暂停异构处理单元中的一个或多个。
从而,装置100的性能和效率至少在逻辑104既不假定所有处理单元都是同构的,也不假定能量效率是静态的这一方面得到增强。相应地,暂停准确性得到了提高,这导致了更优的性能和/或效率。
在一个示例中,逻辑104包括被定位(例如,嵌入)在(一个或多个)衬底102内的晶体管沟道区域。从而,逻辑104和(一个或多个)衬底102之间的界面可以不是突变结。逻辑104也可被认为包括外延层,该外延层是在(一个或多个)衬底102的初始晶片上生长的。
附加注释和示例:
示例1包括一种性能和效率增强的计算系统,包括:多个异构处理单元,以及与至少一个处理单元耦合的存储器,其中所述存储器包括一组指令,所述指令当被所述至少一个处理单元执行时,使得所述至少一个处理单元:基于系统级线程特性确定所述多个异构处理单元的运行时性能,其中所述运行时性能是按照性能类别来确定的,基于所述系统级线程特性确定所述多个异构处理单元的运行时能量效率,其中所述运行时能量效率是按照效率类别来确定的,并且基于所述运行时性能和所述运行时能量效率来选择性地解除暂停所述多个异构处理单元中的一个或多个。
示例2包括如示例1所述的计算系统,其中,为了选择性地解除暂停所述多个异构处理单元中的一个或多个,所述指令当被执行时使得所述至少一个处理单元:选择性地解除暂停第一性能类别中的一个或多个处理单元,将第二性能类别中的一个或多个处理单元维持在暂停状态中,其中与所述第一性能类别相关联的第一运行时性能不同于与所述第二性能类别相关联的第二运行时性能,选择性地解除暂停第一效率类别中的一个或多个处理单元,并且将第二效率类别中的一个或多个处理单元维持在所述暂停状态中,其中与所述第一效率类别相关联的第一运行时能量效率不同于与所述第二效率类别相关联的第二运行时能量效率。
示例3包括如示例2所述的计算系统,其中,为了选择性地解除暂停第一类别中的一个或多个处理单元,所述指令当被执行时使得所述至少一个处理单元:基于一个或多个暂停提示来选择性地解除暂停所述第一性能类别中的处理单元的第一子集,基于所述一个或多个暂停提示来将所述第一性能类别中的处理单元的第二子集维持在所述暂停状态中,基于所述一个或多个暂停提示来选择性地解除暂停所述第一效率类别中的处理单元的第一子集,并且基于所述一个或多个暂停提示来将所述第一效率类别中的处理单元的第二子集维持在所述暂停状态中。
示例4包括如示例1所述的计算系统,其中所述指令当被执行时还使得所述至少一个处理单元:跟踪硬件引导调度(HGS)数据结构中的所述系统级线程特性,并且响应于所述系统级线程特性中的一个或多个变化而更新所述HGS数据结构。
示例5包括如示例4所述的计算系统,其中所述指令当被执行时还使得所述至少一个处理单元初始化所述HGS数据结构以包括系统级类别列和多个类别列,其中所述系统级类别列和所述多个类别列中的每一者包括能量效率子列和性能子列。
示例6包括如示例1至5中的任一项所述的计算系统,其中所述指令当被执行时还使得所述至少一个处理单元:按照处理单元标识符列举所述多个异构处理单元之中的多个类别。
示例7包括一种半导体装置,其包括一个或多个衬底,以及与所述一个或多个衬底耦合的逻辑,其中所述逻辑至少部分被实现在可配置逻辑或者固定功能硬件逻辑中的一个或多个中,与所述一个或多个衬底耦合的所述逻辑用于:基于系统级线程特性确定多个异构处理单元的运行时性能,其中所述运行时性能是按照性能类别来确定的,基于所述系统级线程特性确定所述多个异构处理单元的运行时能量效率,其中所述运行时能量效率是按照效率类别来确定的,并且基于所述运行时性能和所述运行时能量效率来选择性地解除暂停所述多个异构处理单元中的一个或多个。
示例8包括如示例7所述的装置,其中,为了选择性地解除暂停所述多个异构处理单元中的一个或多个,与所述一个或多个衬底耦合的所述逻辑用于:选择性地解除暂停第一性能类别中的一个或多个处理单元,将第二性能类别中的一个或多个处理单元维持在暂停状态中,其中与所述第一性能类别相关联的第一运行时性能不同于与所述第二性能类别相关联的第二运行时性能,选择性地解除暂停第一效率类别中的一个或多个处理单元,并且将第二效率类别中的一个或多个处理单元维持在所述暂停状态中,其中与所述第一效率类别相关联的第一运行时能量效率不同于与所述第二效率类别相关联的第二运行时能量效率。
示例9包括如示例8所述的装置,其中,为了选择性地解除暂停第一类别中的一个或多个处理单元,与所述一个或多个衬底耦合的所述逻辑用于:基于一个或多个暂停提示来选择性地解除暂停所述第一性能类别中的处理单元的第一子集,基于所述一个或多个暂停提示来将所述第一性能类别中的处理单元的第二子集维持在所述暂停状态中,基于所述一个或多个暂停提示来选择性地解除暂停所述第一效率类别中的处理单元的第一子集,并且基于所述一个或多个暂停提示来将所述第一效率类别中的处理单元的第二子集维持在所述暂停状态中。
示例10包括如示例7所述的装置,其中与所述一个或多个衬底耦合的所述逻辑用于:跟踪硬件引导调度(HGS)数据结构中的所述系统级线程特性,并且响应于所述系统级线程特性中的一个或多个变化而更新所述HGS数据结构。
示例11包括如示例10所述的装置,其中与所述一个或多个衬底耦合的所述逻辑用于初始化所述HGS数据结构以包括系统级类别列和多个类别列,其中所述系统级类别列和所述多个类别列中的每一者包括能量效率子列和性能子列。
示例12包括如示例7至11中的任一项所述的装置,其中与所述一个或多个衬底耦合的所述逻辑用于按照处理单元标识符列举所述多个异构处理单元之中的多个类别。
示例13包括至少一种计算机可读存储介质,其包括一组指令,所述指令当被计算系统执行时,使得所述计算系统:基于系统级线程特性确定多个异构处理单元的运行时性能,其中所述运行时性能是按照性能类别来确定的,基于所述系统级线程特性确定所述多个异构处理单元的运行时能量效率,其中所述运行时能量效率是按照效率类别来确定的,并且基于所述运行时性能和所述运行时能量效率来选择性地解除暂停所述多个异构处理单元中的一个或多个。
示例14包括如示例13所述的至少一种计算机可读存储介质,其中为了选择性地解除暂停所述多个异构处理单元中的一个或多个,所述指令当被执行时使得所述计算系统:选择性地解除暂停第一性能类别中的一个或多个处理单元,将第二性能类别中的一个或多个处理单元维持在暂停状态中,其中与所述第一性能类别相关联的第一运行时性能不同于与所述第二性能类别相关联的第二运行时性能,选择性地解除暂停第一效率类别中的一个或多个处理单元,并且将第二效率类别中的一个或多个处理单元维持在所述暂停状态中,其中与所述第一效率类别相关联的第一运行时能量效率不同于与所述第二效率类别相关联的第二运行时能量效率。
示例15包括如示例14所述的至少一种计算机可读存储介质,其中为了选择性地解除暂停第一类别中的一个或多个处理单元,所述指令当被执行时使得所述计算系统:基于一个或多个暂停提示来选择性地解除暂停所述第一性能类别中的处理单元的第一子集,基于所述一个或多个暂停提示来将所述第一性能类别中的处理单元的第二子集维持在所述暂停状态中,基于所述一个或多个暂停提示来选择性地解除暂停所述第一效率类别中的处理单元的第一子集,并且基于所述一个或多个暂停提示来将所述第一效率类别中的处理单元的第二子集维持在所述暂停状态中。
示例16包括如示例13所述的至少一种计算机可读存储介质,其中所述指令当被执行时还使得所述计算系统:跟踪硬件引导调度(HGS)数据结构中的所述系统级线程特性,并且响应于所述系统级线程特性中的一个或多个变化而更新所述HGS数据结构。
示例17包括如示例16所述的至少一种计算机可读存储介质,其中所述指令当被执行时还使得所述计算系统初始化所述HGS数据结构以包括系统级类别列和多个类别列,其中所述系统级类别列和所述多个类别列中的每一者包括能量效率子列和性能子列。
示例18包括如示例13至17中的任一项所述的至少一种计算机可读存储介质,其中所述指令当被执行时还使得所述计算系统:按照处理单元标识符列举所述多个异构处理单元之中的多个类别。
示例19包括一种对性能和效率增强的计算系统进行操作的方法,该方法包括:基于系统级线程特性确定多个异构处理单元的运行时性能,其中所述运行时性能是按照性能类别来确定的,基于所述系统级线程特性确定所述多个异构处理单元的运行时能量效率,其中所述运行时能量效率是按照效率类别来确定的,并且基于所述运行时性能和所述运行时能量效率来选择性地解除暂停所述多个异构处理单元中的一个或多个。
示例20包括如示例19所述的方法,其中选择性地解除暂停所述多个异构处理单元中的一个或多个包括:选择性地解除暂停第一性能类别中的一个或多个处理单元,将第二性能类别中的一个或多个处理单元维持在暂停状态中,其中与所述第一性能类别相关联的第一运行时性能不同于与所述第二性能类别相关联的第二运行时性能,选择性地解除暂停第一效率类别中的一个或多个处理单元,并且将第二效率类别中的一个或多个处理单元维持在所述暂停状态中,其中与所述第一效率类别相关联的第一运行时能量效率不同于与所述第二效率类别相关联的第二运行时能量效率。
示例21包括如示例20所述的方法,其中选择性地解除暂停第一类别中的一个或多个处理单元包括:基于一个或多个暂停提示来选择性地解除暂停所述第一性能类别中的处理单元的第一子集,基于所述一个或多个暂停提示来将所述第一性能类别中的处理单元的第二子集维持在所述暂停状态中,基于所述一个或多个暂停提示来选择性地解除暂停所述第一效率类别中的处理单元的第一子集,并且基于所述一个或多个暂停提示来将所述第一效率类别中的处理单元的第二子集维持在所述暂停状态中。
示例22包括如示例19所述的方法,还包括跟踪硬件引导调度(HGS)数据结构中的所述系统级线程特性,并且响应于所述系统级线程特性中的一个或多个变化而更新所述HGS数据结构。
示例23包括如示例22所述的方法,还包括初始化所述HGS数据结构以包括系统级类别列和多个类别列,其中所述系统级类别列和所述多个类别列中的每一者包括能量效率子列和性能子列。
示例24包括如示例19至23中的任一项所述的方法,还包括:按照处理单元标识符列举所述多个异构处理单元之中的多个类别。
示例25包括用于执行如示例19至24中的任一项所述的方法的装置。
从而,基于交叉频率(例如,在不同的处理单元间性能或效率变化的频率),一些处理单元可以比其他处理单元更有效率。本文描述的核心暂停技术可利用这种动态的系统范围效率,在基于效率进行暂停/解除暂停时实现最优的高效核心。例如,当核心的操作频率高于交叉阈值时,一个核心可以比混合平台中的另一个核心更有效率。
基于线程特性,在一种类型的处理单元(例如,类型B)上相对于另一类型的处理单元(例如,类型A)而言更高缩放的线程在类型B处理单元上相对于在类型A处理单元上可以更有效率。本文描述的技术利用了线程构成的系统范围视图来引导暂停逻辑,以识别出哪些处理单元将比其他处理单元更有效率。
该技术还可利用其他运行时特性,例如各种处理单元在管芯上的布置。更具体而言,该技术使用硬件已知的相对性能和能量效率差异来影响暂停或解除暂停额外处理单元的速度。这种方案可基于处理单元的位置(例如,相对于彼此或其他资源,例如缓存、存储器、管芯、模块、表面贴装技术/SMT兄弟姐妹(sibling),等等)、指令集体系结构(ISA)差异、管芯内变化、热响应,等等。
类似地,对于性能要求,基于交叉/线程特性等等,系统范围视图可以有助于识别出哪些处理单元比其他单元更有性能。基于并发性,系统范围视图还检测处理单元的组合,以引导暂停逻辑识别出哪些处理单元将更有性能以及哪些处理单元将更有效率。
实施例适用于与所有类型的半导体集成电路(“IC”)芯片一起使用。这些IC芯片的示例包括但不限于处理器、控制器、芯片组组件、可编程逻辑阵列(programmable logicarray,PLA)、存储器芯片、网络芯片、片上系统(systems on chip,SoC)、SSD/NAND控制器ASIC,等等。此外,在一些附图中,用线条来表示信号导线。某些可以是不同的,以指示更多的构成信号路径,可以具有数字标注,以指示构成信号路径的数目,和/或可以在一端或多端具有箭头,以指示主要信息流方向。然而,这不应当以限制方式来解释。而是,这种添加的细节可联系一个或多个示范性实施例被使用以促进对电路的更容易理解。任何表示的信号线,无论是否具有附加信息,都可实际上包括一个或多个信号,这一个或多个信号可在多个方向上行进并且可利用任何适当类型的信号方案来被实现,例如利用差分对实现的数字或模拟线路、光纤线路和/或单端线路。
可能给出了示例大小/型号/值/范围,不过实施例不限于此。随着制造技术(例如,光刻术)随着时间流逝而成熟,预期能够制造具有更小大小的器件。此外,为了图示和论述的简单并且为了不模糊实施例的某些方面,在附图内可能示出或不示出到IC芯片和其他组件的公知电源/接地连接。另外,可能以框图形式示出布置以避免模糊实施例,并且同时也考虑到了如下事实:关于这种框图布置的实现方式的具体细节是高度取决于在其内实现实施例的计算系统的,即,这种具体细节应当完全在本领域技术人员的视野内。在阐述具体细节(例如,电路)以便描述示例实施例的情况下,本领域技术人员应当清楚,没有这些具体细节或者利用这些具体细节的变体,也可实现实施例。从而说明书应当被认为是说明性的,而不是限制性的。
术语“耦合”在本文中可用于指所涉组件之间的任何类型的关系(直接的或间接的),并且可应用到电的、机械的、液体的、光的、电磁的、机电的或者其他连接。此外,除非另外指出,否则术语“第一”、“第二”等等在本文中可只用于促进论述,而不带有特定的时间或先后意义。
就在本申请中和权利要求中使用的而言,由术语“…中的一个或多个”联接的项目的列表可意指列出的术语的任何组合。例如,短语“A、B或C中的一个或多个”可意指A;B;C;A和B;A和C;B和C;或者A、B和C。
本领域技术人员从前述描述将会明白,实施例的宽广技术可按各种形式被实现。因此,虽然已联系其特定示例描述了实施例,但实施例的真实范围不应当限于此,因为本领域技术人员在研习了附图、说明书和所附权利要求后将清楚其他修改。
Claims (25)
1.一种计算系统,包括:
多个异构处理单元;以及
与至少一个处理单元耦合的存储器,其中所述存储器包括一组指令,所述指令当被所述至少一个处理单元执行时,使得所述至少一个处理单元:
基于系统级线程特性来确定所述多个异构处理单元的运行时性能,其中所述运行时性能是按照性能类别来确定的,
基于所述系统级线程特性来确定所述多个异构处理单元的运行时能量效率,其中所述运行时能量效率是按照效率类别来确定的,以及
基于所述运行时性能和所述运行时能量效率来选择性地解除暂停所述多个异构处理单元中的一个或多个。
2.如权利要求1所述的计算系统,其中,为了选择性地解除暂停所述多个异构处理单元中的一个或多个,所述指令当被执行时使得所述至少一个处理单元:
选择性地解除暂停第一性能类别中的一个或多个处理单元,
将第二性能类别中的一个或多个处理单元维持在暂停状态中,其中与所述第一性能类别相关联的第一运行时性能不同于与所述第二性能类别相关联的第二运行时性能,
选择性地解除暂停第一效率类别中的一个或多个处理单元,以及
将第二效率类别中的一个或多个处理单元维持在所述暂停状态中,其中与所述第一效率类别相关联的第一运行时能量效率不同于与所述第二效率类别相关联的第二运行时能量效率。
3.如权利要求2所述的计算系统,其中,为了选择性地解除暂停第一类别中的一个或多个处理单元,所述指令当被执行时使得所述至少一个处理单元:
基于一个或多个暂停提示来选择性地解除暂停所述第一性能类别中的第一处理单元子集,
基于所述一个或多个暂停提示来将所述第一性能类别中的第二处理单元子集维持在所述暂停状态中,
基于所述一个或多个暂停提示来选择性地解除暂停所述第一效率类别中的第一处理单元子集,以及
基于所述一个或多个暂停提示来将所述第一效率类别中的第二处理单元子集维持在所述暂停状态中。
4.如权利要求1所述的计算系统,其中,所述指令当被执行时还使得所述至少一个处理单元:
跟踪硬件引导调度(HGS)数据结构中的所述系统级线程特性,以及
响应于所述系统级线程特性中的一个或多个变化而更新所述HGS数据结构。
5.如权利要求4所述的计算系统,其中,所述指令当被执行时还使得所述至少一个处理单元初始化所述HGS数据结构以包括系统级类别列和多个类别列,其中所述系统级类别列和所述多个类别列中的每一者包括能量效率子列和性能子列。
6.如权利要求1-5中的任一项所述的计算系统,其中,所述指令当被执行时还使得所述至少一个处理单元:按照处理单元标识符列举所述多个异构处理单元之中的多个类别。
7.一种半导体装置,包括:
一个或多个衬底;以及
与所述一个或多个衬底耦合的逻辑,其中所述逻辑至少部分被实现在可配置逻辑或者固定功能硬件逻辑中的一个或多个中,与所述一个或多个衬底耦合的所述逻辑用于:
基于系统级线程特性来确定多个异构处理单元的运行时性能,其中所述运行时性能是按照性能类别来确定的;
基于所述系统级线程特性来确定所述多个异构处理单元的运行时能量效率,其中所述运行时能量效率是按照效率类别来确定的;以及
基于所述运行时性能和所述运行时能量效率来选择性地解除暂停所述多个异构处理单元中的一个或多个。
8.如权利要求7所述的装置,其中,为了选择性地解除暂停所述多个异构处理单元中的一个或多个,与所述一个或多个衬底耦合的所述逻辑用于:
选择性地解除暂停第一性能类别中的一个或多个处理单元;
将第二性能类别中的一个或多个处理单元维持在暂停状态中,其中与所述第一性能类别相关联的第一运行时性能不同于与所述第二性能类别相关联的第二运行时性能;
选择性地解除暂停第一效率类别中的一个或多个处理单元;以及
将第二效率类别中的一个或多个处理单元维持在所述暂停状态中,其中与所述第一效率类别相关联的第一运行时能量效率不同于与所述第二效率类别相关联的第二运行时能量效率。
9.如权利要求8所述的装置,其中,为了选择性地解除暂停第一类别中的一个或多个处理单元,与所述一个或多个衬底耦合的所述逻辑用于:
基于一个或多个暂停提示来选择性地解除暂停所述第一性能类别中的第一处理单元子集;
基于所述一个或多个暂停提示来将所述第一性能类别中的第二处理单元子集维持在所述暂停状态中;
基于所述一个或多个暂停提示来选择性地解除暂停所述第一效率类别中的第一处理单元子集;以及
基于所述一个或多个暂停提示来将所述第一效率类别中的第二处理单元子集维持在所述暂停状态中。
10.如权利要求7所述的装置,其中,与所述一个或多个衬底耦合的所述逻辑用于:
跟踪硬件引导调度(HGS)数据结构中的所述系统级线程特性;以及
响应于所述系统级线程特性中的一个或多个变化而更新所述HGS数据结构。
11.如权利要求10所述的装置,其中,与所述一个或多个衬底耦合的所述逻辑用于初始化所述HGS数据结构以包括系统级类别列和多个类别列,其中所述系统级类别列和所述多个类别列中的每一者包括能量效率子列和性能子列。
12.如权利要求7-11中的任一项所述的装置,其中,与所述一个或多个衬底耦合的所述逻辑用于:按照处理单元标识符列举所述多个异构处理单元之中的多个类别。
13.一种核心暂停设备,包括:
用于基于系统级线程特性来确定多个异构处理单元的运行时性能的装置,其中所述运行时性能是按照性能类别来确定的;
用于基于所述系统级线程特性来确定所述多个异构处理单元的运行时能量效率的装置,其中所述运行时能量效率是按照效率类别来确定的;以及
用于基于所述运行时性能和所述运行时能量效率来选择性地解除暂停所述多个异构处理单元中的一个或多个的装置。
14.如权利要求13所述的设备,其中,用于选择性地解除暂停所述多个异构处理单元中的一个或多个的装置包括:
用于选择性地解除暂停第一性能类别中的一个或多个处理单元的装置;
用于将第二性能类别中的一个或多个处理单元维持在暂停状态中的装置,其中与所述第一性能类别相关联的第一运行时性能不同于与所述第二性能类别相关联的第二运行时性能;
用于选择性地解除暂停第一效率类别中的一个或多个处理单元的装置;以及
用于将第二效率类别中的一个或多个处理单元维持在所述暂停状态中的装置,其中与所述第一效率类别相关联的第一运行时能量效率不同于与所述第二效率类别相关联的第二运行时能量效率。
15.如权利要求14所述的设备,其中,用于选择性地解除暂停第一类别中的一个或多个处理单元的装置包括:
用于基于一个或多个暂停提示来选择性地解除暂停所述第一性能类别中的第一处理单元子集的装置;
用于基于所述一个或多个暂停提示来将所述第一性能类别中的第二处理单元子集维持在所述暂停状态中的装置;
用于基于所述一个或多个暂停提示来选择性地解除暂停所述第一效率类别中的第一处理单元子集的装置;以及
用于基于所述一个或多个暂停提示来将所述第一效率类别中的第二处理单元子集维持在所述暂停状态中的装置。
16.如权利要求13所述的设备,还包括:
用于跟踪硬件引导调度(HGS)数据结构中的所述系统级线程特性的装置;以及
用于响应于所述系统级线程特性中的一个或多个变化而更新所述HGS数据结构的装置。
17.如权利要求16所述的设备,还包括用于初始化所述HGS数据结构以包括系统级类别列和多个类别列的装置,其中所述系统级类别列和所述多个类别列中的每一者包括能量效率子列和性能子列。
18.如权利要求13-17中的任一项所述的设备,还包括:用于按照处理单元标识符列举所述多个异构处理单元之中的多个类别的装置。
19.一种方法,包括:
基于系统级线程特性来确定多个异构处理单元的运行时性能,其中,所述运行时性能是按照性能类别来确定的;
基于所述系统级线程特性来确定所述多个异构处理单元的运行时能量效率,其中所述运行时能量效率是按照效率类别来确定的;以及
基于所述运行时性能和所述运行时能量效率来选择性地解除暂停所述多个异构处理单元中的一个或多个。
20.如权利要求19所述的方法,其中,选择性地解除暂停所述多个异构处理单元中的一个或多个包括:
选择性地解除暂停第一性能类别中的一个或多个处理单元;
将第二性能类别中的一个或多个处理单元维持在暂停状态中,其中与所述第一性能类别相关联的第一运行时性能不同于与所述第二性能类别相关联的第二运行时性能;
选择性地解除暂停第一效率类别中的一个或多个处理单元;以及
将第二效率类别中的一个或多个处理单元维持在所述暂停状态中,其中与所述第一效率类别相关联的第一运行时能量效率不同于与所述第二效率类别相关联的第二运行时能量效率。
21.如权利要求20所述的方法,其中,选择性地解除暂停第一类别中的一个或多个处理单元包括:
基于一个或多个暂停提示来选择性地解除暂停所述第一性能类别中的第一处理单元子集;
基于所述一个或多个暂停提示来将所述第一性能类别中的第二处理单元子集维持在所述暂停状态中;
基于所述一个或多个暂停提示来选择性地解除暂停所述第一效率类别中的第一处理单元子集;以及
基于所述一个或多个暂停提示来将所述第一效率类别中的第二处理单元子集维持在所述暂停状态中。
22.如权利要求19所述的方法,还包括:
跟踪硬件引导调度(HGS)数据结构中的所述系统级线程特性;以及
响应于所述系统级线程特性中的一个或多个变化,更新所述HGS数据结构。
23.如权利要求22所述的方法,还包括初始化所述HGS数据结构以包括系统级类别列和多个类别列,其中所述系统级类别列和所述多个类别列中的每一者包括能量效率子列和性能子列。
24.如权利要求19-23中的任一项所述的方法,还包括:按照处理单元标识符列举所述多个异构处理单元之中的多个类别。
25.至少一种计算机可读存储介质,包括一组指令,所述指令当被计算系统执行时,使得所述计算系统执行如权利要求19-23中的任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/008,720 | 2020-09-01 | ||
US17/008,720 US12008383B2 (en) | 2020-09-01 | 2020-09-01 | Hardware directed core parking based on performance and energy efficiency capabilities of processing units and runtime system characteristics |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114116192A true CN114116192A (zh) | 2022-03-01 |
Family
ID=80266921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110824472.9A Pending CN114116192A (zh) | 2020-09-01 | 2021-07-21 | 硬件指导核心暂停 |
Country Status (4)
Country | Link |
---|---|
US (1) | US12008383B2 (zh) |
CN (1) | CN114116192A (zh) |
DE (1) | DE102021121734A1 (zh) |
TW (1) | TW202221501A (zh) |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7389403B1 (en) * | 2005-08-10 | 2008-06-17 | Sun Microsystems, Inc. | Adaptive computing ensemble microprocessor architecture |
US9336057B2 (en) * | 2012-12-21 | 2016-05-10 | Microsoft Technology Licensing, Llc | Assigning jobs to heterogeneous processing modules |
US9910481B2 (en) | 2015-02-13 | 2018-03-06 | Intel Corporation | Performing power management in a multicore processor |
US9811389B2 (en) | 2015-09-23 | 2017-11-07 | Intel Corporation | Task assignment for processor cores based on a statistical power and frequency model |
US10037227B2 (en) | 2015-12-17 | 2018-07-31 | Intel Corporation | Systems, methods and devices for work placement on processor cores |
US10073718B2 (en) | 2016-01-15 | 2018-09-11 | Intel Corporation | Systems, methods and devices for determining work placement on processor cores |
US10324519B2 (en) | 2016-06-23 | 2019-06-18 | Intel Corporation | Controlling forced idle state operation in a processor |
US20180365022A1 (en) | 2017-06-16 | 2018-12-20 | Intel Corporation | Dynamic offlining and onlining of processor cores |
US10545793B2 (en) | 2017-09-29 | 2020-01-28 | Intel Corporation | Thread scheduling using processing engine information |
US10627885B2 (en) | 2018-01-09 | 2020-04-21 | Intel Corporation | Hybrid prioritized resource allocation in thermally- or power-constrained computing devices |
US10620969B2 (en) * | 2018-03-27 | 2020-04-14 | Intel Corporation | System, apparatus and method for providing hardware feedback information in a processor |
US20190041950A1 (en) | 2018-03-28 | 2019-02-07 | Intel Corporation | System, Apparatus And Method For Data Driven Low Power State Control Based On Performance Monitoring Information |
US11269396B2 (en) | 2018-09-28 | 2022-03-08 | Intel Corporation | Per-core operating voltage and/or operating frequency determination based on effective core utilization |
US11579944B2 (en) | 2018-11-14 | 2023-02-14 | Intel Corporation | System, apparatus and method for configurable control of asymmetric multi-threading (SMT) on a per core basis |
US20230205592A1 (en) * | 2021-12-23 | 2023-06-29 | Intel Corporation | Asymmetric tuning |
-
2020
- 2020-09-01 US US17/008,720 patent/US12008383B2/en active Active
-
2021
- 2021-07-12 TW TW110125548A patent/TW202221501A/zh unknown
- 2021-07-21 CN CN202110824472.9A patent/CN114116192A/zh active Pending
- 2021-08-23 DE DE102021121734.2A patent/DE102021121734A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102021121734A1 (de) | 2022-03-10 |
TW202221501A (zh) | 2022-06-01 |
US12008383B2 (en) | 2024-06-11 |
US20220066788A1 (en) | 2022-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7313381B2 (ja) | ハードウェアアクセラレーションのためのハードウェアリソースの埋込みスケジューリング | |
TWI493332B (zh) | 用於電力管理的方法與設備及其平台與電腦可讀取媒體 | |
US20200192832A1 (en) | Influencing processor governance based on serial bus converged io connection management | |
JP2021099782A (ja) | ファンクション・アズ・ア・サービスコンピューティングのための統一プログラミングモデル | |
EP3979072A1 (en) | Firmware boot task distribution to enable low latency boot performance | |
CN113254086A (zh) | Bios到操作系统的数据交换的部署 | |
WO2016209427A1 (en) | Adaptive hardware acceleration based on runtime power efficiency determinations | |
US11734067B2 (en) | Multi-core system and controlling operation of the same | |
CN117581206A (zh) | 基于软件线程的动态存储器带宽分配 | |
US10345884B2 (en) | Mechanism to provide workload and configuration-aware deterministic performance for microprocessors | |
US20210048863A1 (en) | System and Method for Controlling a Power-On Sequence and Power Throttling using Power Brake | |
US12001880B2 (en) | Multi-core system and method of controlling operation of the same | |
CN113010468A (zh) | 用于为异构系统划分计算机应用的自动学习技术 | |
CN114116192A (zh) | 硬件指导核心暂停 | |
US11455261B2 (en) | First boot with one memory channel | |
US20210365804A1 (en) | Dynamic ai model transfer reconfiguration to minimize performance, accuracy and latency disruptions | |
JP2021096829A (ja) | 分散環境における深層学習トレーニングの最適化のためのランタイムにおけるサービスクラス属性の初期化及び管理 | |
US20230176735A1 (en) | Accelerating system boot times via host-managed device memory | |
CN115004155A (zh) | 在运行时实现外部存储器训练 | |
CN114265685A (zh) | 用于高效平台资源管理的应用可协商资源调配技术 | |
US11989129B2 (en) | Multiple virtual NUMA domains within a single NUMA domain via operating system interface tables | |
KR102671425B1 (ko) | 프로세서 코어 상의 작업 배치를 결정하기 위한 시스템, 방법 및 디바이스 | |
US10915356B2 (en) | Technology to augment thread scheduling with temporal characteristics | |
US10761586B2 (en) | Computer performance and power consumption optimization | |
US20240111560A1 (en) | Workload linked performance scaling for servers |
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 |