CN113366458A - 用于自适应互连路由的系统、装置和方法 - Google Patents
用于自适应互连路由的系统、装置和方法 Download PDFInfo
- Publication number
- CN113366458A CN113366458A CN202080011364.3A CN202080011364A CN113366458A CN 113366458 A CN113366458 A CN 113366458A CN 202080011364 A CN202080011364 A CN 202080011364A CN 113366458 A CN113366458 A CN 113366458A
- Authority
- CN
- China
- Prior art keywords
- interconnect
- grid
- signal
- processor
- coupled
- 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
- 238000000034 method Methods 0.000 title claims description 54
- 230000003044 adaptive effect Effects 0.000 title description 2
- 238000012545 processing Methods 0.000 claims abstract description 61
- 230000015654 memory Effects 0.000 claims description 64
- 238000004891 communication Methods 0.000 claims description 46
- 238000003860 storage Methods 0.000 claims description 22
- 230000008859 change Effects 0.000 claims description 21
- 230000004044 response Effects 0.000 claims description 9
- 230000003111 delayed effect Effects 0.000 claims description 3
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 37
- 238000007726 management method Methods 0.000 description 32
- 239000000872 buffer Substances 0.000 description 24
- 238000013461 design Methods 0.000 description 24
- 239000004744 fabric Substances 0.000 description 16
- 239000003795 chemical substances by application Substances 0.000 description 15
- 238000007667 floating Methods 0.000 description 12
- 230000001427 coherent effect Effects 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 9
- 230000007704 transition Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000001276 controlling effect Effects 0.000 description 6
- 229910003460 diamond Inorganic materials 0.000 description 5
- 239000010432 diamond Substances 0.000 description 5
- 230000007613 environmental effect Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000001105 regulatory effect Effects 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 230000014616 translation Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004134 energy conservation Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000002347 injection Methods 0.000 description 3
- 239000007924 injection Substances 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000007795 chemical reaction product Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000010348 incorporation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004873 anchoring Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 229910052754 neon Inorganic materials 0.000 description 1
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
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/3215—Monitoring of peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/126—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
-
- 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
-
- 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/325—Power saving in peripheral device
- G06F1/3253—Power saving in bus
-
- 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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7817—Specially adapted for signal processing, e.g. Harvard architectures
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30079—Pipeline control instructions, e.g. multicycle NOP
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Power Sources (AREA)
- Multi Processors (AREA)
- Microcomputers (AREA)
Abstract
在一个实施例中,一种装置包括用于耦合多个处理电路的互连。该互连可包括被耦合在第一处理电路和第二处理电路之间的管道级电路。该管道级电路可包括:管道级组件,具有用于经由互连来接收信号的第一输入端和用于输出信号的第一输出端;以及选择电路,具有用于从管道级组件的第一输出端接收信号的第一输入端和经由旁路路径来接收信号的第二输入端,其中,选择电路可被动态地控制以输出从管道级组件的第一输出端接收到的信号或经由旁路路径接收到的信号。描述并要求保护其他实施例。
Description
技术领域
实施例涉及对互连的动态控制。
背景技术
现代处理器通常由核心和附加的处理电路系统形成。各种互连结构用于耦合核心和其他电路系统。处理电路系统的面积增长在互连结构内,跨其整个操作电压范围产生了频率挑战。在互连通信路径和互连逻辑之间的操作特性(例如,频率/电压(F/V)曲线中所标识的电压和频率)之间存在越来越大的差距。互连通信路径的F/V曲线可能会限制操作电压,从而迫使整个互连以非最佳功率分布操作,其中这种差距在较高电压下会增加。由于互连通信路径可能是整个互连的一个小组件,因此让它定义互连的功率分布不是最佳的。在功率受限的环境中使用当前技术,在人为的高电压下操作互连会导致性能损失。
附图说明
图1是根据本发明的实施例的系统的一部分的框图。
图2是根据本发明的实施例的处理器的框图。
图3是根据本发明的另一实施例的多域处理器的框图。
图4是包括多个核心的处理器的实施例。
图5是根据本发明的一个实施例的处理器核心的微体系结构的框图。
图6是根据另一实施例的处理器核心的微体系结构的框图。
图7是根据又一实施例的处理器核心的微体系结构的框图。
图8是根据另外一个实施例的处理器核心的微体系结构的框图。
图9是根据本发明的另一实施例的处理器的框图。
图10是根据本发明的实施例的代表性SoC的框图。
图11是根据本发明的实施例的另一示例SoC的框图。
图12是可与实施例一起使用的示例系统的框图。
图13是可与实施例一起使用的另一示例系统的框图。
图14是代表性计算机系统的框图。
图15是根据本发明的实施例的系统的框图。
图16是图示出根据实施例的IP核心开发系统的框图,该IP核心开发系统被用于制造集成电路以执行操作。
图17是根据本发明的实施例的可控管道级(pipe stage)电路的框图。
图18是图示出根据实施例的对互连上的周期延时进行的动态控制的框图。
图19A-图19B是根据本发明的实施例的方法的流程图。
图20是根据本发明的另一实施例的方法的流程图。
图21是针对处理器的互连电路系统的频率-电压曲线的图解说明。
具体实施方式
在各种实施例中,互连结构包括用于在互连上动态配置可控延时的电路系统。更具体地,在实施例中,一个或多个管道级可以被动态地添加到互连的通信路径中或从互连的通信路径中去除。这种对互连结构的动态更新可以发生在性能状态改变过程的情境中。即使电压和/或频率没有改变,也可以在这种情境中动态地更新管道级操作。虽然本文的实施例是在网格互连(mesh interconnect)的情境中描述的,但是应理解这些技术适用于其他互连结构。
在一实施例中,对于高频非网格延时敏感的工作负载,这样的管道级被添加,并且在低频下它们可以在功率管理(power management,PM)控制下被动态地去除。以此方式,实施例使得互连通信路径的性能状态能够跟踪互连的逻辑的性能状态。也就是说,实施例使得互连F/V曲线能够跟踪针对网格挡块(mesh stop)和相关逻辑的可伸缩一致架构(SCF)IPF/V曲线,而不会增加面积和功率要求。对于实施例,与SCF IP F/V曲线相比,网格F/V曲线被优化为不是限制器。对于架构上的延时关键跳跃,可以例如在F/V曲线上的预定点处插入额外的管道级。
在一实施例中,网格架构是水平和垂直环形架构的组合。通过这种布置,可以灵活地在任何给定电压下停留在网格架构或IP F/V曲线上,这继而使得能够在以下项之间进行动态选择:以较高功率进行的低延时架构操作,或功率节省(处于较高延时架构操作)。此外,可以基于工作负载需求在较低电压下增加网格带宽。可以通过在相同电压下使能更高频率的操作来实现功率节省。通过在较低电压下在网格上使能较高带宽,诸如机器学习工作负载之类的某些工作负载的效率会提高,其中网格带宽和功率两者都很重要。
虽然参考在诸如计算平台或处理器之类的特定集成电路中的节能和能效描述了以下实施例,但是其他实施例也适用于其他类型的集成电路和逻辑设备。本文描述的实施例的类似技术和教导可以应用于其他类型的电路或半导体器件,这些电路或半导体器件也可以受益于更好的能效和节能。例如,公开的实施例不限于任何特定类型的计算机系统。也就是说,公开的实施例可以用于许多不同的系统类型,包括服务器计算机(例如,塔式服务器、机架式服务器、刀片式服务器、微服务器等等)、通信系统、存储系统、任何配置的台式计算机、膝上型计算机、笔记本电脑、以及平板计算机(包括2:1平板计算机、平板手机等等),并且公开的实施例也可用于其他设备,例如手持设备、片上系统(SoC)和嵌入式应用。手持设备的一些示例包括诸如智能电话之类的蜂窝电话、互联网协议设备、数字相机、个人数字助理(personal digital assistant,PDA)和手持PC。嵌入式应用通常可包括微控制器、数字信号处理器(digital signal processor,DSP)、网络计算机(NetPC)、机顶盒、网络集线器、广域网(wide area network,WAN)交换机、可穿戴设备、或者能够执行下面教导的功能和操作的任何其他系统。另外,实施例可被实现在具有标准语音功能的移动终端中(例如,移动电话、智能电话和平板手机)和/或被实现在没有标准无线语音功能通信能力的非移动终端中(例如,许多可穿戴设备、平板设备、笔记本电脑、台式电脑、微服务器、服务器等等)。此外,本文描述的装置、方法和系统不限于物理计算设备,并且也可以涉及用于节能和能效的软件优化。如将在以下描述中变得显而易见的那样,本文中描述的方法、装置和系统的实施例(无论是关于硬件、固件、软件还是它们的组合)对于“绿色技术”的未来(例如,对于涵盖美国经济大部分的产品中的节电和能效)而言是至关重要的。
现在参考图1,示出了根据本发明的实施例的系统的一部分的框图。如图1所示,系统100可包括各种组件,其中包括处理器110,该处理器110如图所示是多核心处理器。处理器110可经由外部电压调节器160耦合到供电电源150,该外部电压调节器160可执行第一电压转换以向处理器110提供初级调节电压。
可以看出,处理器110可以是包括多个核心120a-120n的单管芯处理器。此外,每个核心可与集成电压调节器(integrated voltage regulator,IVR)125a-125n相关联,这些集成电压调节器接收初级调节电压并且生成要被提供给与该IVR相关联的处理器的一个或多个代理的操作电压。因此,可提供IVR实现方式来允许对电压进行细粒度控制并从而允许对每个个体核心的功率和性能进行细粒度控制。这样,每个核心可在独立的电压和频率下操作,这使能了很大的灵活性并且提供了充分的机会来平衡功率消耗与性能。在一些实施例中,使用多个IVR使得能够将组件分组到分开的功率平面中,使得功率被IVR调节并且只供应给群组中的那些组件。在功率管理期间,一个IVR的给定功率平面在处理器被置于某低功率状态时可被掉电或断电,而另一IVR的另一功率平面保持活跃或者被完全供电。
仍参考图1,在处理器内可存在额外的组件,包括输入/输出接口132、另一接口134、以及集成存储器控制器136。可以看出,这些组件中的每一者可由另一集成电压调节器125x来供电。在一个实施例中,接口132可针对快速路径互连(Quick PathInterconnect,QPI)互连使能操作,该互连提供包括多个层的缓存一致性协议中的点到点(point-to-point,PtP)链路,所述多个层包括物理层、链路层和协议层。进而,接口134可经由快速外围组件互连(Peripheral Component Interconnect Express,PCIeTM)协议来通信。
还示出了功率控制单元(power control unit,PCU)138,该PCU 138可包括硬件、软件和/或固件来执行关于处理器110的功率管理操作。可以看出,PCU 138经由数字接口向外部电压调节器160提供控制信息,以使得电压调节器生成适当的经调节电压。PCU 138还经由另一数字接口向IVR 125提供控制信息以控制生成的操作电压(或者使得相应的IVR在低功率模式中被禁用)。在各种实施例中,PCU 138可包括多种功率管理逻辑单元来执行基于硬件的功率管理。这种功率管理可以是完全受处理器控制的(例如,由各种处理器硬件控制,并且可由工作负载和/或功率约束、热约束或其他处理器约束所触发),和/或功率管理可响应于外部源(例如,平台或管理功率管理源或系统软件)而被执行。
此外,虽然图1示出了PCU 138是单独的处理引擎(其可以被实现为微控制器)的实现方式,但要理解在一些情况下,除了专用功率控制器之外或作为专用功率控制器的替代,每个核心可以包括功率控制代理或与功率控制代理相关联以更自主地独立控制功率消耗。在一些情况下,可以提供分层功率管理体系结构,其中PCU 138与和每个核心120相关联的相应功率管理代理通信。被包括在PCU 138中的一个功率管理逻辑单元可以是互连更新控制电路,用于动态地控制诸如架构之类的互连结构的路由,以至少部分地基于操作电压来动态地控制延时,如本文所述。
虽然为了图示的容易而没有示出,但要理解在处理器110内可存在额外的组件,例如额外的控制电路系统,以及诸如内部存储器之类的其他组件,例如缓存存储器层次体系的一个或多个级别,等等。此外,虽然在图1的实现方式中是用集成电压调节器示出的,但实施例不限于此。
注意,本文描述的功率管理技术可独立于基于操作系统(operating system,OS)的功率管理(OSPM)机制并且与其互补。根据一个示例OSPM技术,处理器可按各种性能状态或水平——所谓的P状态——操作,即从P0至PN。一般而言,P1性能状态可对应于OS可请求的最高保证性能状态。除了这个P1状态以外,OS还可请求更高的性能状态,即P0状态。这个P0状态因而可以是机会模式、或极速(turbo)模式状态,在这些模式状态中,当功率和/或热预算可用时,处理器硬件可将处理器或者其至少一些部分配置为按高于保证频率的频率进行操作。在许多实现方式中,处理器可包括高于P1保证最大频率的、超出到特定处理器最大峰值频率的多个所谓的分段频率(bin frequency),这些分段频率在制造期间被烧熔或以其他方式写入到处理器中。此外,根据一个OSPM机制,处理器可按各种功率状态或水平操作。关于功率状态,OSPM机制可指定不同的功率消耗状态,一般称为C状态,C0、C1至Cn状态。当核心活跃时,该核心按C0状态运行,并且当核心空闲时,其可被置于核心低功率状态中,也被称为核心非零C状态(例如,C1-C6状态),其中每个C状态处于更低的功率消耗水平(使得C6是比C1更深的低功率状态,等等依此类推)。
要理解,许多不同类型的功率管理技术在不同的实施例中可被单独或者组合使用。作为代表性示例,功率控制器可控制处理器按某种形式的动态电压频率缩放(dynamicvoltage frequency scaling,DVFS)来被功率管理,在该动态电压频率缩放中,一个或多个核心或其他处理器逻辑的操作电压和/或操作频率可被动态地控制以在某些情形中降低功率消耗。在一示例中,DVFS可利用可从加州圣克拉拉的英特尔公司获得的增强型英特尔SpeedStepTM技术来被执行,来以最低的功率消耗水平提供最优的性能。在另一示例中,DVFS可利用英特尔TurboBoostTM技术来被执行,以使得一个或多个核心或其他计算引擎能够基于状况(例如,工作负载和可用性)来以高于保证操作频率的频率进行操作。
实施例可被实现在针对各种市场的处理器中,包括服务器处理器、桌面处理器、移动处理器等等。现在参考图2,示出了根据本发明的实施例的处理器的框图。如图2中所示,处理器200可以是包括多个核心210a-210n的多核处理器。在一个实施例中,每个这种核心可以是独立的功率域的并且可被配置为基于工作负载而进入和退出活跃状态和/或最大性能状态。各种核心可经由互连215耦合到包括各种组件的系统代理220。可以看出,系统代理220可包括共享缓存230,该共享缓存230可以是最后一级缓存。此外,系统代理可包括集成存储器控制器240来例如经由存储器总线与系统存储器(图2中未示出)通信。系统代理220还包括各种接口250和功率控制单元255,功率控制单元255可包括逻辑来执行本文描述的功率管理技术。在所示的实施例中,功率控制单元255包括互连更新控制电路258,该互连更新控制电路258可以例如通过动态地插入或去除管道级来动态地控制诸如架构之类的互连上的延时,如本文所述。
此外,通过接口250a-250n,可进行到各种芯片外组件的连接,例如外围设备、大容量存储装置等等。虽然在图2的实施例中是利用这个特定实现方式示出的,但本发明的范围在这个方面不受限制。
现在参考图3,示出了根据本发明的另一实施例的多域处理器的框图。如图3的实施例中所示,处理器300包括多个域。具体而言,核心域310可包括多个核心3100-310n,图形域320可包括一个或多个图形引擎,并且系统代理域350可进一步存在。在一些实施例中,系统代理域350可按独立于核心域的频率执行并且可在所有时间保持通电以应对功率控制事件和功率管理,使得域310和320可被控制来动态地进入和退出高功率和低功率状态。域310和320中的每一者可按不同的电压和/或功率操作。注意,虽然只示出了三个域,但要理解本发明的范围在这个方面不受限制,并且在其他实施例中可存在额外的域。例如,多个核心域可存在,每个核心域包括至少一个核心。
一般而言,每个核心310除了各种执行单元和额外的处理元件以外还可包括低级别缓存。进而,各种核心可耦合到彼此并且耦合到由最后一级缓存(last level cache,LLC)3400-340n的多个单元形成的共享缓存存储器。在各种实施例中,LLC 340可被共享于核心和图形引擎,以及各种媒体处理电路系统之间。可以看出,环状互连330从而将核心耦合在一起,并且在核心、图形域320和系统代理电路系统350之间提供互连。在一个实施例中,互连330可以是核心域的一部分。然而,在其他实施例中,环状互连可以是其自己的域的。
还可以看出,系统代理域350可包括显示控制器352,该显示控制器352可提供对关联的显示器的控制和到关联的显示器的接口。还可以看出,系统代理域350可包括功率控制单元355,该功率控制单元355可包括逻辑来执行本文描述的功率管理技术。在所示的实施例中,功率控制单元355包括互连更新控制电路359,该互连更新控制电路359可以例如通过施加或去除管道级来动态地控制对通过互连的通信进行的路由,如本文所述。
从图3中还可看出,处理器300还可包括集成存储器控制器(integrated memorycontroller,IMC)370,该IMC 370可提供到诸如动态随机存取存储器(dynamic randomaccess memory,DRAM)之类的系统存储器的接口。多个接口3800-380n可存在来使能处理器和其他电路系统之间的互连。例如,在一个实施例中,可提供至少一个直接媒体接口(direct media interface,DMI)接口,以及一个或多个PCIeTM接口。此外,为了提供诸如额外的处理器或其他电路系统之类的其他代理之间的通信,也可提供一个或多个QPI接口。虽然在图3的实施例中是在这个高级别示出的,但要理解本发明的范围在这个方面不受限制。
参考图4,图示了包括多个核心的处理器的实施例。处理器400包括任何处理器或处理设备,例如微处理器、嵌入式处理器、数字信号处理器(digital signal processor,DSP)、网络处理器、手持处理器、应用处理器、协处理器、片上系统(system on a chip,SoC)、或者用于执行代码的其他设备。处理器400在一个实施例中包括至少两个核心——核心401和402,它们可包括非对称核心或对称核心(图示的实施例)。然而,处理器400可包括可以是对称或非对称的任何数目的处理元件。
在一个实施例中,处理元件指的是用于支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核心、和/或能够为处理器保持状态(例如执行状态或体系结构状态)的任何其他元件。换言之,处理元件在一个实施例中指的是能够独立地与诸如软件线程、操作系统、应用或其他代码之类的代码相关联的任何硬件。物理处理器通常指的是可能包括任何数目的其他处理元件(例如核心或硬件线程)的集成电路。
核心经常指能够维持独立体系结构状态的、位于集成电路上的逻辑,其中每个被独立维持的体系结构状态与至少一些专用执行资源相关联。与核心形成对比,硬件线程通常指能够维持独立体系结构状态的、位于集成电路上的任何逻辑,其中被独立维持的体系结构状态共享对执行资源的访问。可以看出,当某些资源被共享并且其他资源被专用于体系结构状态时,硬件线程和核心的命名法之间的界线会重叠。然而经常,核心和硬件线程被操作系统看作单独的逻辑处理器,其中操作系统能够单独调度每个逻辑处理器上的操作。
如图4中所示,物理处理器400包括两个核心,即核心401和402。这里,核心401和402被认为是对称核心,即具有相同的配置、功能单元和/或逻辑的核心。在另一实施例中,核心401包括无序处理器核心,而核心402包括有序处理器核心。然而,核心401和402可以是单独从任何类型的核心中选择的,例如,原生核心、受软件管理的核心、被适配为执行原生指令集体系结构(instruction set architecture,ISA)的核心、被适配为执行经转化的ISA的核心、共同设计的核心,或者其他已知的核心。此外,核心401和402可以在多线程支持方面被相同或不同地配置。也就是说,根据本文的实施例,可以使能核心401、402中的一个、两个或者都不使能以用于MT支持。
再进一步讨论,下文更详细描述在核心401中图示的功能单元,因为核心402中的单元以类似的方式操作。如图所描绘的,核心401包括两个硬件线程401a和401b,也可以称为硬件线程槽401a和401b。因此,软件实体(例如操作系统)在一个实施例中可能将处理器400视为四个分开的处理器,即,能够同时执行四个软件线程的四个逻辑处理器或处理元件。如上文提到的,第一线程与体系结构状态寄存器401a相关联,第二线程与体系结构状态寄存器401b相关联,第三线程可与体系结构状态寄存器402a相关联,并且第四线程可与体系结构状态寄存器402b相关联。这里,体系结构状态寄存器(401a、401b、402a和402b)中的每一个可被称为处理元件、线程槽或者线程单元,如上所述。如图所示,体系结构状态寄存器401a被复制在体系结构状态寄存器401b中,因此能够为逻辑处理器401a和逻辑处理器401b存储个体的体系结构状态/上下文。在核心401中,也可针对线程401a和401b复制其他更小的资源,例如分配器和重命名器块430中的指令指针和重命名逻辑。通过分区可共享一些资源,例如重排序/引退单元435中的重排序缓冲器、I-TLB 420、加载/存储缓冲器、以及队列。其他资源(例如,通用内部寄存器、(一个或多个)页表基址寄存器、低级别数据缓存和数据TLB 415、(一个或多个)执行单元440、以及无序单元435的一些部分)可能被完全共享。
处理器400经常包括其他资源,这些资源可被完全共享、通过分区被共享、或者被处理元件专用或者专用于处理元件。在图4中,图示了具有处理器的说明性逻辑单元/资源的纯示范性处理器的实施例。注意,处理器可包括或者省略这些功能单元中的任一者,以及包括没有描绘的任何其他已知的功能单元、逻辑或者固件。如图所示,核心401包括简化的代表性无序(out-of-order,OOO)处理器核心。但在不同的实施例中可利用有序处理器。OOO核心包括用于预测要被执行/采用的分支的分支目标缓冲器420、以及用于存储指令的地址转换条目的指令转换缓冲器(I-TLB)420。
核心401还包括耦合到取得单元420的解码模块425以对取得的元素解码。取得逻辑在一个实施例中包括分别与线程槽401a、401b相关联的个体定序器。通常核心401与第一ISA相关联,该第一ISA定义/指定在处理器400上可执行的指令。经常,作为第一ISA的一部分的机器代码指令包括指令的一部分(称为操作码),该部分引用/指定要执行的指令或操作。解码逻辑425包括这样的电路系统:该电路系统从这些指令的操作码识别这些指令并且在管线中传递经解码的指令来按第一ISA所定义的那样进行处理。例如,解码器425在一个实施例中包括被设计或适配为识别诸如事务性指令之类的特定指令的逻辑。作为解码器425进行的识别的结果,体系结构或核心401采取特定的预定义动作来执行与适当的指令相关联的任务。注意以下这点是重要的:本文描述的任何任务、块、操作和方法可响应于单个或多个指令而被执行;这些指令中的一些可以是新的或者旧的指令。
在一个示例中,分配器和重命名器块430包括分配器来预留资源,例如预留寄存器文件来存储指令处理结果。然而,线程401a和401b可能能够进行无序执行,其中分配器和重命名器块430也预留其他资源,例如预留重排序缓冲器来跟踪指令结果。单元430还可包括寄存器重命名器,以将程序/指令引用寄存器重命名到在处理器400内部的其他寄存器。重排序/引退单元435包括组件(例如,上文提及的重排序缓冲器、加载缓冲器和存储缓冲器),来支持对被无序执行的指令进行的无序执行和之后的有序引退。
(一个或多个)调度器和执行单元块440在一个实施例中包括调度器单元来调度执行单元上的指令/操作。例如,在执行单元的端口上调度浮点指令,其中该执行单元具有可用的浮点执行单元。也包括与执行单元相关联的寄存器文件来存储信息指令处理结果。示范性执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元、和其他已知的执行单元。
较低级别数据缓存和数据转化缓冲器(D-TLB)450耦合到(一个或多个)执行单元440。数据缓存还用于存储最近使用/操作的元素(例如数据操作对象),这些元素可能被保持在存储器一致性状态中。D-TLB用于存储最近的虚拟/线性到物理地址转化。作为具体示例,处理器可包括页表结构来将物理存储器分解成多个虚拟页。
这里,核心401和402共享对更高级别或更远缓存410的访问,该缓存用于缓存最近取得的元素。注意,更高级别或者更远指的是缓存级别增大或者变得更远离(一个或多个)执行单元。在一个实施例中,更高级别缓存410是最后一级数据缓存——处理器400上的存储器层次体系中的最后缓存——例如第二或第三级别数据缓存。然而,更高级别缓存410不限于此,因为其可与指令缓存相关联或者包括指令缓存。取而代之,踪迹缓存(一种类型的指令缓存)可被耦合在解码器425之后来存储最近解码的踪迹。
在描绘的配置中,处理器400还包括总线接口模块405和功率控制器460,其可根据本发明的实施例来执行功率管理。在此场景中,总线接口405用于与在处理器400外部的设备(例如,系统存储器和其他组件)通信。
存储器控制器470可与诸如一个或许多存储器之类的其他设备相接口。在一示例中,总线接口405包括环状互连,该环状互连具有用于与存储器相接口的存储器控制器和用于与图形处理器相接口的图形控制器。在SoC环境中,甚至更多的设备(例如,网络接口、协处理器、存储器、图形处理器、和任何其他已知的计算机设备/接口)可被集成在单个管芯或集成电路上,以提供具有高功能和低功率消耗的小外形参数。
现在参考图5,示出了根据本发明的一个实施例的处理器核心的微体系结构的框图。如图5中所示,处理器核心500可以是多阶段管线式无序处理器。核心500可基于接收到的操作电压来按各种电压操作,其中接收到的操作电压可以是从集成电压调节器或者外部电压调节器接收的。
从图5中可见,核心500包括前端单元510,前端单元510可用于取得要执行的指令并且使它们为以后用在处理器管线中做好准备。例如,前端单元510可包括取得单元501、指令缓存503、和指令解码器505。在一些实现方式中,前端单元510还可包括踪迹缓存,连同微代码存储以及微操作存储。取得单元501可取得宏指令(例如从存储器或指令缓存503取得)并且将它们馈送到指令解码器505来将其解码成基元(即,供处理器执行的微操作)。
耦合在前端单元510和执行单元520之间的是无序(OOO)引擎515,该OOO引擎515可用于接收微指令并且使它们为执行做好准备。更具体而言,OOO引擎515可包括各种缓冲器,用于重排序微指令流并且分配执行所需要的各种资源,并且用于提供逻辑寄存器到(诸如寄存器文件530和扩展寄存器文件535之类的)各种寄存器文件内的存储位置上的重命名。寄存器文件530可包括用于整数操作和浮点操作的分开的寄存器文件。扩展寄存器文件535可针对向量尺寸的单元提供存储,例如,每个寄存器256或512比特。为了配置、控制和额外的操作,一组特定于机器的寄存器(machine specific register,MSR)538也可存在并且是核心500内(以及核心外部)的各种逻辑可访问的。注意,为了支持多线程,可以提供各种寄存器文件内的多组寄存器,使得它们可以被不同线程同时使用。然而请注意,核心500的其余结构(包括前端单元510和执行单元520)没有被复制。
各种资源可存在于执行单元520中,包括例如各种整数、浮点、和单指令多数据(single instruction multiple data,SIMD)逻辑单元,以及其他专门的硬件。例如,这种执行单元可包括一个或多个算术逻辑单元(arithmetic logic unit,ALU)522以及一个或多个向量执行单元524,以及其他这种执行单元。
来自执行单元的结果可被提供到引退逻辑,即,重排序缓冲器(reorder buffer,ROB)540。更具体而言,ROB 540可包括各种阵列和逻辑以接收与被执行的指令相关联的信息。此信息随后被ROB 540考查来确定是否指令可被有效地引退并且结果数据可被提交给处理器的体系结构状态,或者确定是否发生了阻止指令的适当引退的一个或多个异常。当然,ROB 540可应对与引退相关联的其他操作。
如图5中所示,ROB 540耦合到缓存550,缓存550在一个实施例中可以是低级别缓存(例如,L1缓存),不过本发明的范围在这个方面不受限制。另外,执行单元520可直接耦合到缓存550。从缓存550,数据通信可与更高级别缓存、系统存储器等等发生。虽然在图5的实施例中是以这个高级别示出的,但要理解本发明的范围在这个方面不受限制。例如,虽然图5的实现方式是关于诸如x86指令集体系结构(ISA)之类的无序机器的,但本发明的范围在这个方面不受限制。也就是说,其他实施例可被实现在有序处理器、诸如基于ARM的处理器之类的精简指令集计算(reduced instruction set computing,RISC)处理器、或者可经由仿真引擎和关联的逻辑电路系统来对不同ISA的指令和操作进行仿真的另一类型的ISA的处理器中。
现在参考图6,示出了根据另一实施例的处理器核心的微体系结构的框图。在图6的实施例中,核心600可以是不同微体系结构的低功率核心,例如,基于AtomTM的处理器,其具有被设计为降低功率消耗的、相对有限的管线深度。可以看出,核心600包括被耦合来向指令解码器615提供指令的指令缓存610。分支预测器605可耦合到指令缓存610。注意,指令缓存610还可耦合到另一级别的缓存存储器,例如L2缓存(在图6中为了图示的容易而没有示出)。进而,指令解码器615将经解码的指令提供到发出队列620以便存储和输送到给定的执行管线。微代码ROM 618耦合到指令解码器615。
浮点管线630包括浮点寄存器文件632,该浮点寄存器文件632可包括具有诸如128、256或512比特之类的给定比特的多个体系结构寄存器。管线630包括浮点调度器634来调度指令以供在管线的多个执行单元之一上执行。在示出的实施例中,这种执行单元包括ALU 635、打乱单元(shuffle unit)636、和浮点加法器638。进而,在这些执行单元中生成的结果可被提供回到寄存器文件632的缓冲器和/或寄存器。当然要理解,虽然是以这几个示例执行单元示出的,但在另一实施例中可存在额外的或者不同的浮点执行单元。
也可提供整数管线640。在示出的实施例中,管线640包括整数寄存器文件642,该整数寄存器文件642可包括具有诸如128或256比特之类的给定比特的多个体系结构寄存器。管线640包括整数调度器644来调度指令以供在管线的多个执行单元之一上执行。在示出的实施例中,这种执行单元包括ALU 645、移位器单元646、和跳转执行单元648。进而,在这些执行单元中生成的结果可被提供回到寄存器文件642的缓冲器和/或寄存器。当然要理解,虽然是以这几个示例执行单元示出的,但在另一实施例中可存在额外的或者不同的整数执行单元。
存储器执行调度器650可调度存储器操作以在地址生成单元652中执行,该地址生成单元652也耦合到TLB 654。可以看出,这些结构可耦合到数据缓存660,数据缓存660可以是L0和/或L1数据缓存,该L0和/或L1数据缓存进而耦合到缓存存储器层次体系的额外级别,包括L2缓存存储器。
为了提供对无序执行的支持,除了重排序缓冲器680以外还可提供分配器/重命名器670,该重排序缓冲器680被配置为对被无序执行的指令重排序以便有序引退。虽然在图6的图示中是以这个特定的管线体系结构示出的,但要理解许多变化和替换是可能的。
注意,在(例如根据图5和图6的微体系结构)具有非对称核心的处理器中,可出于功率管理原因在核心之间动态地调换工作负载,因为这些核心虽然具有不同的管线设计和深度,但可具有相同或相关的ISA。这种动态的核心调换可以按对于用户应用而言透明(并且可能对于核心也透明)的方式来被执行。
参考图7,示出了根据又一实施例的处理器核心的微体系结构的框图。如图7中所示,核心700可包括多阶段有序管线来以非常低的功率消耗水平执行。作为一个这种示例,处理器700可具有微体系结构,该微体系结构根据可从加州森尼维尔市的ARM控股有限公司获得的ARM Cortex A53设计。在一种实现方式中,可提供被配置为既执行32比特代码也执行64比特代码的8阶段管线。核心700包括取得单元710,该取得单元710被配置为取得指令并将它们提供给解码单元715,其中解码单元715可对指令(例如,诸如ARMv8 ISA之类的给定ISA的宏指令)进行解码。还要注意,队列730可耦合到解码单元715以存储经解码的指令。经解码的指令被提供到发出逻辑725,其中在发出逻辑725处,经解码的指令可被发出到多个执行单元中的给定一个。
还参考图7,发出逻辑725可将指令发出到多个执行单元之一。在示出的实施例中,这些执行单元包括整数单元735、乘法单元740、浮点/向量单元750、双重发出单元760、以及加载/存储单元770。这些不同执行单元的结果可被提供到写回单元780。要理解,虽然为了图示的容易而示出了单个写回单元,但在一些实现方式中,分开的写回单元可与每个执行单元相关联。此外,要理解虽然图7中所示的每个单元和逻辑是以高级别表示的,但特定的实现方式可包括更多的或不同的结构。利用一个或多个(如图7中所示的)具有管线的核心来设计的处理器可被实现在许多不同的最终产品中,从移动设备延伸到服务器系统。
参考图8,示出了根据另外一个实施例的处理器核心的微体系结构的框图。如图8中所示,核心800可包括多阶段多发出无序管线以按非常高的性能水平执行(这可以按比图7的核心700更高的功率消耗水平发生)。作为一个这种示例,处理器800可具有根据ARMCortex A57设计的微体系结构。在一种实现方式中,可提供被配置为既执行32比特代码也执行64比特代码的15(或更多)阶段管线。此外,管线可提供3宽(或更宽)和3发出(或更多发出)操作。核心800包括取得单元810,取得单元810被配置为取得指令并且将它们提供给解码器/重命名器/调遣器单元815,解码器/重命名器/调遣器单元815可对指令(例如,ARMv8指令集体系结构的宏指令)进行解码,对指令内的寄存器引用进行重命名,并且(最终)将指令调遣到所选择的执行单元。经解码的指令可被存储在队列825中。注意,虽然在图8中为了图示的容易而示出了单个队列结构,但要理解可针对多个不同类型的执行单元中的每一者提供分开的队列。
图8中还示出了发出逻辑830,其中,被存储在队列825中的经解码指令可从该发出逻辑830被发出到所选择的执行单元。发出逻辑830也可被实现在特定实施例中,其中,针对发出逻辑830所耦合到的多种不同类型的执行单元中的每一者有单独的发出逻辑。
经解码的指令可被发出到多个执行单元中的给定一个。在示出的实施例中,这些执行单元包括一个或多个整数单元835、乘法单元840、浮点/向量单元850、分支单元860、以及加载/存储单元870。在一实施例中,浮点/向量单元850可被配置为应对128或256比特的SIMD或向量数据。此外,浮点/向量执行单元850可执行IEEE-754双精度浮点操作。这些不同执行单元的结果可被提供到写回单元880。注意,在一些实现方式中,分开的写回单元可与执行单元中的每一者相关联。此外,要理解虽然图8中所示的每个单元和逻辑是以高级别表示的,但特定的实现方式可包括更多的或不同的结构。
注意在(例如根据图7和图8的微体系结构)具有非对称核心的处理器中,可出于功率管理原因而动态地调换工作负载,因为这些核心虽然具有不同的管线设计和深度,但可具有相同或相关的ISA。这种动态的核心调换可以按对于用户应用而言透明(并且可能对于核心也透明)的方式来被执行。
利用一个或多个(如图5-图8中的任何一个或多个图中所示的)具有管线的核心来设计的处理器可被实现在许多不同的最终产品中,从移动设备延伸到服务器系统。现在参考图9,示出了根据本发明的另一实施例的处理器的框图。在图9的实施例中,处理器900可以是包括多个域的SoC,每个域可被控制来按独立的操作电压和操作频率操作。作为具体的说明性示例,处理器900可以是可从英特尔公司获得的基于Architecture CoreTM的处理器(例如,i3、i5、i7或另外的这种处理器)。然而,其他低功率处理器(例如,可从加州森尼维尔市的超微半导体公司(AMD)获得的低功率处理器,来自ARM控股有限公司或其被许可方的基于ARM的设计,或者来自加州森尼维尔市的MIPS技术公司或者其被许可方或采用者的基于MIPS的设计)可取而代之存在于其他实施例中,例如苹果A7处理器、高通骁龙处理器或者德州仪器OMAP处理器。这种SoC可用于低功率系统(例如,智能电话、平板计算机、平板手机计算机、UltrabookTM计算机、或者其他便携式计算设备或连接的设备)中。
在图9中所示的高级别视图中,处理器900包括多个核心单元9100-910n。每个核心单元可包括一个或多个处理器核心、一个或多个缓存存储器和其他电路系统。每个核心单元910可支持一个或多个指令集(例如,x86指令集(带有已随着较新版本添加的一些扩展);MIPS指令集;ARM指令集(带有诸如NEON之类的可选附加扩展)或者其他指令集或者其组合。注意,核心单元中的一些可以是异构资源(例如,具有不同的设计)。此外,每个这种核心可耦合到缓存存储器(未示出),该缓存存储器在实施例中可以是共享级别(L2)缓存存储器。非易失性存储装置930可用于存储各种程序和其他数据。例如,此存储装置可用于存储微代码的至少一些部分、诸如BIOS之类的引导信息、其他系统软件,等等。
每个核心单元910还可包括接口(例如,总线接口单元),来使得能够互连到处理器的额外电路系统。在实施例中,每个核心单元910耦合到可充当主缓存一致片上互连的一致架构,该互连进而耦合到存储器控制器935。进而,存储器控制器935控制与诸如DRAM之类的存储器(在图9中为了图示的容易而没有示出)的通信。
除了核心单元以外,还有额外的处理引擎存在于处理器内,包括至少一个图形单元920,该图形单元920可包括一个或多个图形处理单元(graphics processing unit,GPU)来执行图形处理以及可能执行图形处理器上的通用操作(所谓的GPGPU操作)。此外,至少一个图像信号处理器925可存在。信号处理器925可被配置为处理从在SoC内部或者在片外的一个或多个捕捉设备接收的传入图像数据。
其他加速器也可存在。在图9的图示中,视频编码器950可执行编码操作,这些操作包括对视频信息的编码和解码,例如为高清晰度视频内容提供硬件加速支持。还可提供显示控制器955来加速显示操作,包括为系统的内部和外部显示器提供支持。此外,安全性处理器945可存在来执行诸如安全引导操作、各种密码操作等等之类的安全性操作。
每个单元可让其功率消耗经由功率管理器940来被控制,该功率管理器940可包括控制逻辑来执行本文描述的各种功率管理技术和选择性MT可配置控制。
在一些实施例中,SoC 900还可包括耦合到一致架构的非一致架构,其中各种外围设备可耦合到该一致架构。一个或多个接口960a-960d使能与一个或多个片外设备的通信。这种通信可经由各种通信协议,例如PCIeTM、GPIO、USB、I2C、UART、MIPI、SDIO、DDR、SPI、HDMI,以及其他类型的通信协议。虽然在图9的实施例中是在这个高级别示出的,但要理解本发明的范围在这个方面不受限制。
现在参考图10,示出了代表性SoC的框图。在示出的实施例中,SoC1000可以是多核心SoC,该多核心SoC被配置用于低功率操作以针对包含到智能电话或(诸如平板计算机或其他便携式计算设备之类的)其他低功率设备中而被优化。作为示例,SoC 1000可利用非对称的或不同类型的核心来被实现,例如更高功率和/或低功率核心的组合,例如无序核心和有序核心。在不同的实施例中,这些核心可基于ArchitectureTM核心设计或者ARM体系结构设计。在另外的其他实施例中,在给定的SoC中可实现和ARM核心的混合。
从图10中可看出,SoC 1000包括具有多个第一核心10120-10123的第一核心域1010。在一示例中,这些核心可以是诸如有序核心之类的低功率核心。在一个实施例中,这些第一核心可被实现为ARM Cortex A53核心。进而,这些核心耦合到核心域1010的缓存存储器1015。此外,SoC 1000包括第二核心域1020。在图10的图示中,第二核心域1020具有多个第二核心10220-10223。在一示例中,这些核心可以是比第一核心1012消耗更高功率的核心。在一实施例中,第二核心可以是无序核心,这些无序核心可被实现为ARM Cortex A57核心。进而,这些核心耦合到核心域1020的缓存存储器1025。注意,虽然图10中所示的示例在每个域中包括4个核心,但要理解在其他示例中在给定的域中可存在更多或更少核心。
进一步参考图10,还提供了图形域1030,该图形域1030可包括被配置为独立地执行(例如,由核心域1010和1020的一个或多个核心提供的)图形工作负载的一个或多个图形处理单元(GPU)。作为示例,除了提供图形和显示渲染操作以外,GPU域1030还可用于为各种屏幕大小提供显示支持。
可以看出,各种域耦合到一致互连1040,该一致互连1040在一实施例中可以是缓存一致互连架构,该缓存一致互连架构进而耦合到集成存储器控制器1050。在一些示例中,一致互连1040可包括共享缓存存储器,例如L3缓存。在一实施例中,存储器控制器1050可以是直接存储器控制器以提供与片外存储器的通信的多个通道,例如DRAM的多个通道(在图10中为了图示的容易没有示出)。
在不同的示例中,核心域的数目可变化。例如,对于适合于包含到移动计算设备中的低功率SoC,例如图10中所示的有限数目的核心域可存在。此外,在这种低功率SoC中,包括更高功率核心的核心域1020可具有更少数目的这种核心。例如,在一个实现方式中,可提供两个核心1022来使得能够以降低的功率消耗水平进行操作。此外,不同的核心域也可耦合到中断控制器,以使得能够在不同的域之间进行对工作负载的动态调换。
在另外的其他实施例中,更大数目的核心域以及额外的可选IP逻辑可存在,因为SoC可被缩放到更高性能(以及功率)水平,以便包含到其他计算设备中(例如,桌面电脑、服务器、高性能计算系统、基站等等)。作为一个这种示例,可提供4个核心域,每个具有给定数目的无序核心。此外,除了可选的GPU支持以外(其作为示例可采取GPGPU的形式),也可提供一个或多个加速器来提供对特定功能(例如,web服务、网络处理、交换等等)的优化硬件支持。此外,输入/输出接口也可存在来将这种加速器耦合到片外组件。
现在参考图11,示出了另一示例SoC的框图。在图11的实施例中,SoC 1100可包括各种电路系统来针对多媒体应用、通信和其他功能使能高性能。这样,SoC 1100适合于包含到各种各样的便携设备和其他设备中,例如智能电话、平板计算机、智能TV等等。在示出的示例中,SoC 1100包括中央处理器单元(central processor unit,CPU)域1110。在一实施例中,多个个体处理器核心可存在于CPU域1110中。作为一个示例,CPU域1110可以是具有4个多线程核心的四核心处理器。这种处理器可以是同构或异构处理器,例如低功率和高功率处理器核心的混合。
进而,提供GPU域1120来在一个或多个GPU中执行高级图形处理以应对图形并计算API。除了可发生在多媒体指令的执行期间的高级计算以外,DSP单元1130还可提供一个或多个低功率DSP来应对低功率多媒体应用,例如音乐重放、音频/视频等等。进而,通信单元1140可包括各种组件来经由各种无线协议提供连通性,例如,蜂窝通信(包括3G/4G LTE)、诸如BluetoothTM之类的无线局域协议、IEEE 802.11,等等。
此外,多媒体处理器1150可用于执行对高清晰度视频和音频内容的捕捉和重放,包括对用户姿态的处理。传感器单元1160可包括多个传感器和/或传感器控制器来接口到存在于给定平台中的各种片外传感器。图像信号处理器1170可设有一个或多个单独的ISP以执行关于来自平台的一个或多个相机(包括静态相机和视频相机)的捕捉内容的图像处理。
显示处理器1180可提供对到给定像素密度的高清晰度显示器的连接的支持,包括无线地传输内容以便在这种显示器上重放的能力。此外,位置单元1190可包括GPS接收器,该GPS接收器带有对多个GPS星座的支持以向应用提供利用这种GPS接收器获得的高度准确的定位信息。要理解,虽然在图11的示例中是以这组特定的组件示出的,但许多变化和替换是可能的。
现在参考图12,示出了可与实施例一起使用的示例系统的框图。可以看出,系统1200可以是智能电话或其他无线通信器。基带处理器1205被配置为关于要从系统发送或者被系统接收的通信信号执行各种信号处理。进而,基带处理器1205耦合到应用处理器1210,应用处理器1210可以是系统的主CPU,以执行OS和其他系统软件,以及诸如许多公知的社交媒体和多媒体app之类的用户应用。应用处理器1210还可被配置为针对设备执行各种其他计算操作,并且可以被静态地或动态地配置用于选择性MT支持,其中可以选择性地使能核心子集以用于MT操作,如本文所述。
进而,应用处理器1210可耦合到用户接口/显示器1220,例如触摸屏显示器。此外,应用处理器1210可耦合到存储器系统,该存储器系统包括非易失性存储器(即,闪速存储器1230)以及系统存储器(即,动态随机存取存储器(DRAM)1235)。还可看出,应用处理器1210还耦合到捕捉设备1245,例如可记录视频和/或静态图像的一个或多个图像捕捉设备。
仍参考图12,通用集成电路卡(universal integrated circuit card,UICC)1240也耦合到应用处理器1210,该通用集成电路卡1240包括订户身份模块并且可能包括安全存储及密码处理器。系统1200还可包括安全性处理器1250,该安全性处理器1250可耦合到应用处理器1210。多个传感器1225可耦合到应用处理器1210以使得能够输入各种感测到的信息,例如加速度计和其他环境信息。音频输出设备1295可提供接口来输出声音,例如以语音通信、播放的或流媒体音频数据等等的形式。
如还图示的,提供了近场通信(near field communication,NFC)无接触接口1260,其经由NFC天线1265在NFC近场中通信。虽然在图12中示出了分开的天线,但要理解在一些实现方式中,可提供一个天线或者不同组天线来使能各种无线功能。
PMIC 1215耦合到应用处理器1210以执行平台级功率管理。为此,PMIC 1215可向应用处理器1210发出功率管理请求以根据需要进入某些低功率状态。此外,基于平台约束,PMIC 1215也可控制系统1200的其他组件的功率水平。
为了使得通信能够被发送和接收,各种电路系统可被耦合在基带处理器1205和天线1290之间。具体而言,射频(radio frequency,RF)收发器1270和无线局域网(wirelesslocal area network,WLAN)收发器1275可存在。一般而言,RF收发器1270可用于根据给定的无线通信协议(例如3G或4G无线通信协议)接收和发送无线数据和呼叫,例如根据码分多路接入(code division multiple access,CDMA)、全球移动通信系统(global system formobile communication,GSM)、长期演进(long term evolution,LTE)或其他协议。此外,GPS传感器1280可存在。也可提供其他无线通信,例如对无线电信号(例如AM/FM)和其他信号的接收或发送。此外,经由WLAN收发器1275,也可实现本地无线通信。
现在参考图13,示出了可与实施例一起使用的另一示例系统的框图。在图13的图示中,系统1300可以是移动低功率系统,例如,平板计算机、2:1平板设备、平板手机或其他可转换的或独立的平板系统。如图所示,SoC 1310存在并且可被配置为作为设备的应用处理器进行操作。
各种设备可耦合到SoC 1310。在示出的图示中,存储器子系统包括耦合到SoC1310的闪速存储器1340和DRAM 1345。此外,触摸面板1320耦合到SoC 1310以提供显示能力和经由触摸的用户输入,包括在触摸面板1320的显示器上提供虚拟键盘。为了提供有线网络连通性,SoC 1310耦合到以太网接口1330。外设集线器(peripheral hub)1325耦合到SoC1310以使能与各种外围设备相接口,例如可通过各种端口或其他连接器中的任何一者耦合到系统1300。
除了SoC 1310内的内部功率管理电路系统和功能以外,PMIC 1380也耦合到SoC1310以提供基于平台的功率管理,例如基于系统是被电池1390供电还是经由AC适配器1395被AC电力供电。除了这个基于电源的功率管理以外,PMIC 1380还可基于环境和使用状况来执行平台功率管理活动。此外,PMIC 1380可向SoC 1310传达控制和状态信息以引起SoC1310内的各种功率管理动作。
仍参考图13,为了提供无线能力,WLAN单元1350耦合到SoC 1310并且进而耦合到天线1355。在各种实现方式中,WLAN单元1350可根据一个或多个无线协议提供通信。
如还图示的,多个传感器1360可耦合到SoC 1310。这些传感器可包括各种加速度计、环境和其他传感器,包括用户姿态传感器。最后,音频编解码器1365耦合到SoC 1310以提供到音频输出设备1370的接口。当然要理解,虽然在图13中是以这个特定实现方式示出的,但许多变化和替换是可能的。
现在参考图14,示出了诸如笔记本、UltrabookTM或其他小外形参数系统之类的代表性计算机系统的框图。处理器1410在一个实施例中包括微处理器、多核心处理器、多线程处理器、超低电压处理器、嵌入式处理器、或者其他已知的处理元件。在图示的实现方式中,处理器1410充当主处理单元和中央集线器来与系统1400的各种组件中的许多进行通信。作为一个示例,处理器1410被实现为SoC。
处理器1410在一个实施例中与系统存储器1415通信。作为说明性示例,系统存储器1415是经由多个存储器设备或模块实现的,以提供给定量的系统存储器。
为了提供对诸如数据、应用、一个或多个操作系统等等之类的信息的持续性存储,大容量存储装置1420也可耦合到处理器1410。在各种实施例中,为了使能更薄和更轻的系统设计以及为了改善系统响应能力,这个大容量存储装置可经由SSD来被实现或者该大容量存储装置可主要利用硬盘驱动器(hard disk drive,HDD)来被实现,其中较小量的SSD存储充当SSD缓存来使得能够在掉电事件期间对上下文状态和其他这种信息进行非易失性存储,从而使得在系统活动重发起时可发生快速加电。图14中还示出的是,闪速设备1422可耦合到处理器1410,例如经由串行外围接口(serial peripheral interface,SPI)。这个闪速设备可提供对系统软件的非易失性存储,包括基本输入/输出软件(basic input/outputsoftware,BIOS)以及系统的其他固件。
各种输入/输出(I/O)设备可存在于系统1400内。具体而言,在图14的实施例中示出的是显示器1424,其可以是还提供触摸屏1425的高清晰度LCD或LED面板。在一个实施例中,显示器1424可经由显示互连耦合到处理器1410,该显示互连可被实现为高性能图形互连。触摸屏1425可经由另一互连耦合到处理器1410,该另一互连在一实施例中可以是I2C互连。如图14中还示出的,除了触摸屏1425以外,借由触摸的用户输入也可经由触摸板1430发生,该触摸板1430可被配置在机壳内并且也可耦合到与触摸屏1425相同的I2C互连。
为了感知计算和其他目的,各种传感器可存在于系统内并且可按不同的方式耦合到处理器1410。某些惯性和环境传感器可通过传感器集线器1440(例如经由I2C互连)耦合到处理器1410。在图14所示的实施例中,这些传感器可包括加速度计1441、环境光传感器(ambient light sensor,ALS)1442、罗盘1443和陀螺仪1444。其他环境传感器可包括一个或多个热传感器1446,该热传感器1446在一些实施例中经由系统管理总线(SMBus)总线耦合到处理器1410。
在图14中还可看出,各种外围设备可经由低引脚数(low pin count,LPC)互连耦合到处理器1410。在示出的实施例中,各种组件可通过嵌入式控制器1435被耦合。这种组件可包括键盘1436(例如,经由PS2接口耦合)、风扇1437、和热传感器1439。在一些实施例中,触摸板1430也可经由PS2接口耦合到EC 1435。此外,诸如可信平台模块(trusted platformmodule,TPM)1438之类的安全性处理器也可经由这个LPC互连耦合到处理器1410。
系统1400可通过各种方式与外部设备进行通信,包括无线地进行通信。在图14所示的实施例中,存在各种无线模块,其中每一者可对应于被配置用于特定的无线通信协议的无线电装置。用于诸如近场之类的短距离中的无线通信的一种方式可经由NFC单元1445,该NFC单元1445在一个实施例中可经由SMBus与处理器1410通信。注意,经由此NFC单元1445,彼此近邻的设备可通信。
从图14中还可看出,额外的无线单元可包括其他短距离无线引擎,包括WLAN单元1450和蓝牙单元1452。利用WLAN单元1450,Wi-FiTM通信可被实现,而经由蓝牙单元1452,短距离BluetoothTM通信可发生。这些单元可经由给定的链路与处理器1410通信。
此外,(例如,根据蜂窝或其他无线广域协议的)无线广域通信可经由WWAN单元1456发生,该WWAN单元1456进而可耦合到订户身份模块(subscriber identity module,SIM)1457。此外,为了使能对位置信息的接收和使用,GPS模块1455也可存在。注意,在图14所示的实施例中,WWAN单元1456和诸如相机模块1454之类的集成捕捉设备可经由给定的链路通信。
集成相机模块1454可以被纳入到盖子中。为了提供音频输入和输出,音频处理器可经由数字信号处理器(digital signal processor,DSP)1460被实现,该DSP 1460可经由高清晰度音频(high definition audio,HDA)链路耦合到处理器1410。类似地,DSP 1460可与集成编码器/解码器(CODEC)及放大器1462通信,该集成CODEC及放大器1462进而可耦合到输出扬声器1463,该输出扬声器1463可被实现在机壳内。类似地,放大器及CODEC 1462可被耦合以从麦克风1465接收音频输入,该麦克风1465在一实施例中可经由双阵列麦克风(例如,数字麦克风阵列)来被实现,以提供高质量音频输入,从而使能对系统内的各种操作的由语音激活的控制。还要注意,音频输出可从放大器/CODEC 1462被提供到耳机插孔1464。虽然在图14的实施例中是以这些特定组件示出的,但要理解本发明的范围在这个方面不受限制。
实施例可被实现在许多不同的系统类型中。现在参考图15,示出了根据本发明的实施例的系统的框图。如图15中所示,多处理器系统1500是点到点互连系统,并且包括经由点到点互连1550耦合的第一处理器1570和第二处理器1580。如图15中所示,处理器1570和1580中的每一者可以是多核心处理器,包括第一和第二处理器核心(即,处理器1574a和1574b以及处理器核心1584a和1584b),不过可能多得多的核心可以在处理器中存在。每个处理器可以包括PCU 1575、1585,用于执行基于处理器的功率管理,以及通过如下操作来动态地控制互连路由:至少部分地基于操作电压来包括和去除管道级以控制延时,如本文所述。
仍参考图15,第一处理器1570还包括存储器控制器集线器(memory controllerhub,MCH)1572和点到点(point-to-point,P-P)接口1576和1578。类似地,第二处理器1580包括MCH 1582和P-P接口1586和1588。如图15中所示,MCH 1572和1582将处理器耦合到相应的存储器,即存储器1532和存储器1534,存储器1532和存储器1534可以是在本地附接到相应处理器的系统存储器(例如,DRAM)的部分。第一处理器1570和第二处理器1580可分别经由P-P互连1562和1564耦合到芯片组1590。如图15中所示,芯片组1590包括P-P接口1594和1598。
此外,芯片组1590包括接口1592,用于通过P-P互连1539将芯片组1590与高性能图形引擎1538耦合。进而,芯片组1590可经由接口1596耦合到第一总线1516。如图15中所示,各种输入/输出(I/O)设备1514可以与总线桥1518一起耦合到第一总线1516,其中总线桥1518将第一总线1516耦合到第二总线1520。各种设备可耦合到第二总线1520,例如包括键盘/鼠标1522、通信设备1526和数据存储单元1528(例如,盘驱动器或者其他大容量存储设备),其中该数据存储单元1528在一个实施例中可包括代码1530。另外,音频I/O 1524可耦合到第二总线1520。实施例可被包含到其他类型的包括移动设备的系统中,该移动设备比如是智能蜂窝电话、平板计算机、上网本、UltrabookTM,等等。
图16是图示出IP核心开发系统1600的框图,该IP核心开发系统1600可用于制造集成电路来执行根据实施例的操作。IP核心开发系统1600可用于生成模块化的、可重复使用的设计,这些设计可被包含到更大的设计中或者被用于构造整个集成电路(例如,SoC集成电路)。设计设施1630可以以高级别编程语言(例如,C/C++)生成IP核心设计的软件模拟1610。软件模拟1610可用于设计、测试和验证IP核心的行为。然后可从模拟模型创建或合成寄存器传送级(register transfer level,RTL)设计。RTL设计1615是对硬件寄存器之间的数字信号的流动进行建模的集成电路的行为的抽象,其包括利用经建模的数字信号执行的关联逻辑。除了RTL设计1615以外,也可创建、设计或者合成在逻辑级或晶体管级的更低级别设计。从而,初始设计和模拟的具体细节可变化。
RTL设计1615或等同物还可被设计设施合成为硬件模型1620,该硬件模型1620可采取硬件描述语言(hardware description language,HDL)或者物理设计数据的某种其他表现形式。HDL可被进一步模拟或测试来验证IP核心设计。IP核心设计可被存储来利用非易失性存储器1640(例如,硬盘、闪速存储器、或者任何非易失性存储介质)输送到第三方制作设施1665。或者,IP核心设计可通过有线连接1650或无线连接1660(例如,经由互联网)被传输。制作设施1665随后可制作至少部分地基于该IP核心设计的集成电路。制作出的集成电路可被配置为根据本文描述的至少一个实施例来执行操作。
现在参考图17,示出了根据本发明的实施例的可控管道级电路的框图。如图17所示,管道级电路1700可以被实现在诸如网格互连之类的互连内的各种位置中。使用管道级电路1700,使得能够对互连路径的长度进行动态控制。以此方式,可以实现对网格挡块或到互连的其他互连之间的通信的动态循环控制。
更具体地,如图17所示,管道级电路1700包括输入信号线1705,信号沿着该输入信号线1705被传送。如图所示,信号被提供给管道级1710。在一个实施例中,管道级1710可以被实现为锁存器电路,例如D型锁存器。在其他情况下,其他管道级(例如,触发器或其他时序电路)可以被用作管道级组件。在一实施例中,管道级1710可以提供单周期延时,使得在架构时钟的给定周期中,在管道级1710的输入处接收到的输入信号经由第一输出信号线1715从管道级1710的输出被输出。
如图所示,在一实施例中,输出信号线1715耦合到选择电路1720的第一输入,该选择电路1720可以实现为多路复用器。如进一步说明的,从输入信号线1705直接接收到的信号经由旁路路径1730被提供给选择电路1720的另一输入。
基于动态控制(例如,在从功率控制器接收到的控制信号的控制下),选择电路1720可以以单周期延时(如使用旁路路径1730实现)或多周期延时(使用通过管道级1710提供的信号实现),经由第二输出信号线1725来输出传入的信号。应理解的是,虽然在图17的实施例中是在这个高级别示出的,但许多变体和替代方案是可能的。
现在参考图18,示出了图示出根据实施例的对互连上的周期延时进行的动态控制的框图。如图18的左侧所示,处理器1800包括互连1810。虽然为了图示的容易而示出了环形互连,但要理解,实施例适用于许多其他类型的互连结构,包括网格互连、环面或其他2D或3D互连结构,或其他连接架构。
参考图18的左侧,互连1810耦合到多个核心18201-18206。虽然为了图示的容易而示出了6个代表性核心,但在其他实施例中可以存在更多或更少的核心。此外,更一般地理解,互连1810耦合到各种不同类型的处理电路,包括核心、图形处理器、输入/输出设备、其他外围设备等等。并且在许多情况下,互连1810可以通过所谓的网格挡块的方式耦合到这样的组件,所述网格挡块包括使得通信能够沿着互连1810进出的电路系统。更一般地,每个核心1820示出了互连1810到给定网格挡块的互连。
如图18的左侧进一步所示,互连1810包括多个附加管道级18251-18254。如图所示,每个管道级1825可以被适配在相应的核心1820之间(并且因此,更具体地,可以位于沿着互连1810的单独的网格挡块之间)。在一实施例中,每个管道级1825通常可以采用图17的管道级电路1700的形式(并且因此可以包括管道级组件、旁路路径、多路复用器或其他选择电路以及控制输入)。因此,图18的左侧的处理器1800图示了动态操作中的瞬间,在该瞬间,管道级1825被使能以提供网格挡块之间的多周期延时。因此,在该状态下的操作期间,由于在管道级中发生延迟,所以沿着互连1810的通信延时可能会增加(与管道级不活动的情况相比)。然而,应理解,在这种情况下,互连1810可以以较低电压电平进行操作。以此方式,更大的电压余量(headroom)可以存在(并且因此存在更大的功率余量),并且可以动态且灵活地被提供给处理器1800的附加资源。例如,一个或多个核心1820可以被控制以在更高的电压(和频率)下操作,从而允许改进的性能(例如,在每周期的指令方面)。可以至少部分地基于对工作负载的分析(例如,当在互连1810上以最小流量发生相对高的计算工作负载时),使用活动管道级1825的该操作可以继续进行。
进一步参考图18的左侧,缓冲器1830耦合到互连1810。缓冲器1830是排放(drain)/回放缓冲器,其可被实现为包括多个单独缓冲器元件的队列,以存储在性能状态转换期间(即当对互连1810进行动态电压/频率改变时)沿互连1810遍历的消息。在一实施例中,缓冲器1830可以取决于网格挡块的数量,并且作为示例可以包括与网格挡块相同数量的单独缓冲器。例如,如果垂直环上有20个网格挡块,则缓冲深度可以是20。缓冲器1830可以被实现为先进先出(FIFO)结构以接收和存储在性能状态转换点处保留在互连1810中的诸如消息或其他分组之类的通信,下面进一步描述其细节。以此方式,缓冲器1830使得这种性能状态改变能够以不从互连1810排放其通信的方式发生,从而通过保持无排放性能状态改变的转换延时来减少性能状态转换本身的延时,以及通信中断的时间。
仍然参考图18,在右侧,图示出处理器1800’。更具体地,处理器1800’是与处理器1800相同的处理器,但是在不同的时刻瞬间被示出,在该瞬间,耦合在网格挡块之间的附加管道级未被使能(例如,通过到这种管道级电路的多路复用器的适当控制信号)。因此,互连1810被示为仅耦合到核心18201-18206。此时,在操作期间,互连1810可以以单周期延时操作。互连1810可以通过动态地去除(例如,绕过)适配在网格挡块之间的管道级电路来在更高的电压电平下进行操作,以使能该单周期延时的实现。要理解,虽然在图18的实施例中是在这个高级别示出的,但许多变体和替代方案是可能的。
现在参考图19A-图19B,示出了根据本发明的实施例的方法的流程图。更具体地,图19A和图19B中图示的方法1900是用于以减少的延时来对架构结构执行动态的性能状态改变的方法,如本文所述。因此,方法1900可以使用诸如网格控制器或其他互连控制器之类的控制电路系统来执行,其可以被实现为硬件电路系统、固件、软件和/或它们的组合。
如图所示,方法1900开始于从功率控制器接收管道排放信号(块1910)。该管道排放信号可以响应于确定将发生对架构的性能状态改变(和/或何处将发生管道级插入或去除过程)而在互连中被接收。响应于该管道排放信号,在块1920,可以阻止向互连中注入新消息。为此,互连控制器可以将阻止信号传送到网格挡块,以防止它们将新消息注入到架构中。
此后,架构可以继续按当前频率进行操作以寻求从架构排放消息。为此,互连中的未决消息可以遍历架构,使得它们可以沉入目标网格挡块(假设此类网格挡块中存在足够的信用以接受这些可信消息)。在环形互连的情况下,网格可以根据当前时钟频率针对多次绕转(例如,两次绕转)继续进行操作。因此,在这种情况下,用于环形互连的架构的这种第一次遍历可以是环上的完整绕转(块1930)。仍参考图19A,在架构的第二次遍历中,可以清除一个或多个防死锁时隙(anti-deadlock slot)(块1940)。这种时隙传输消息(通过消息的正向前进),否则这些消息会在某个网格挡块或架构的其他部分中导致死锁。
仍参考图19A,接下来在块1950,所有退回(bounce)流量(即,互连中仍未决的消息)可被排放到排放回放队列(drain-replay queue)。通过这种布置,请注意在执行性能状态改变之前不会从架构排放消息,从而改善在进入性能状态改变之前的时间延时。
此时,当任何剩余流量已被排放到该队列时,可以执行性能状态改变(块1960)。为此,可以更新架构的操作电压和频率中的一个或多个。为了增加管道级,这种性能状态改变可以是要至少降低架构的电压。并且在去除了这样的管道级的情况下,性能状态改变可以是要至少导致电压增加。
在任何情况下,现在参考图19B,在这种性能状态改变已被实现之后,可以阻止从网格挡块向架构中注入新消息,例如,在预定数量的时钟周期内(块1970)。接下来,在块1980,一个或多个防死锁时隙可被清除并重新初始化以用于经更新的架构配置。例如,当管道级被添加到架构中时,一个或多个额外的防死锁时隙可以被提供,并且类似地,当管道级被从架构中去除时,一个或多个防死锁时隙可以被去除。
接下来,在块1990,退回流量可被注入到非防死锁时隙中。此类退回流量可被从排放回放队列中提取并插入到互连上,以允许将这些消息排放到与其目的地相关联的网格挡块中。最后,在块1995,可以解除阻止将新消息注入到架构中。因此,此时,网格挡块可以自由地将新消息或其他分组注入到架构中。要理解,使用如图19A-图19B所示的实施例,可以以减少的延时来执行关于架构的电压和/或频率的性能状态改变,从而提高性能。此外,考虑到排放回放队列的存在,也可降低复杂性,因为避免了在这种性能状态改变之前完全排放来自架构的消息的需要。因此,使用方法1900,在性能状态转换之前,架构中的所有可信消息被排放并且退回消息被存储在排放回放队列中。在性能状态转换之后,退回消息被从排放回放队列回放到架构。要理解,虽然在图19A-图19B的实施例中是在这个高级别示出的,但许多变体和替代方案是可能的。
现在参考图20,示出了根据本发明的另一实施例的方法的流程图。更具体地,方法2000是用于确定对互连的管道级结构的动态改变何时合适的方法。在一实施例中,方法2000可由诸如PCU之类的功率控制器来执行。因此,方法2000可由硬件电路系统、固件、软件和/或它们的组合来执行。
如图所示,方法2000开始于确定互连的操作电压是否小于第一阈值(菱形2010)。在一实施例中,该第一阈值可对应于相对低的操作电压,使得互连在以低性能水平进行操作。在这种情况下,互连可以通过将管道级组件包括在通信路径中来以增加的延时进行操作。为此,控制传递到块2020,在块2020中,互连的管道级电路可被使能以将管道级组件插入到通信路径中。更具体地,如上文所讨论的(例如参考图17和图18),功率控制器可向多路复用器或管道级电路的其他选择电路系统发送控制信号,以使它们在网格挡块或其他互连连接点之间以多周期延时进行操作。请注意,随着互连可以以多周期延时进行操作的电压电平降低,可以存在额外的电压余量,并且可由功率控制器将所述额外的电压余量分配给处理器的其他资源,例如核心或可以利用该余量的其他处理单元。
仍参考图20,取而代之地,如果确定互连电压超过该第一阈值电平,则控制传递到菱形2030以确定电压是否小于第二阈值电平。如果是,则控制可传递到可选菱形2040以确定核心工作负载是否超过给定工作负载阈值。请注意,通过该可选确定,可以灵活地确定是控制互连用于多周期操作还是单周期操作。在核心活动低于工作负载阈值的情况下,大概不需要考虑由将管道级组件包括在互连内而产生的额外延时,并且因此控制传递到块2020,在块2020中,互连可被控制以插入这些管道级组件,使得能够降低互连的操作电压,如上所述。
否则,如果在菱形2040处确定工作负载超过给定工作负载阈值(或在该确定不发生的情况下),则控制传递到块2050,在块2050中,管道级电路可被控制以去除管道级组件。因此,功率控制器可以向多路复用器或其他选择电路发送控制信号,以使它们传递经由旁路路径接收到的信号,而不是通过一个或多个管道级组件接收到的信号。
进一步参考图20,如果确定互连电压超过该第二阈值电平,则控制传递到菱形2060以确定电压是否小于该更高的第三阈值。如果是,则控制传递到上面讨论的块2050,在块2050中,互连被控制以使得管道级组件被去除,从而减少互连上的延时。
仍参考图20,取而代之地,如果确定互连电压超过该第三阈值,则控制传递到块2070,在块2070中,互连可被控制,使得管道级组件被插入互连中。以此方式,互连可以以多周期延时进行操作。然而,如果寻求以单周期延时进行操作,则这种操作处于比以其他方式进行操作更低的电压电平。要理解,尽管在图20的实施例中是在这个高级别示出的,但许多变体和替代方案是可能的。例如,在其他实施例中,可以存在更多或更少的阈值和确定。
在一实施例中,在高级别处,F/V曲线上可以存在两种转换类型:静态区域,其中管道级在这些区域内保持静态并在这些区域之间发生改变;和至少一个动态区域,其中管道级在该区域内可以(在性能状态转换过程之间)被改变。
现在参考图21,示出了针对互连的互连电路系统的频率-电压曲线的图解说明。如图所示,第一曲线2110是针对通信架构的曲线,而曲线2120是针对网格挡块和互连的其他处理电路系统的曲线。如图所示,曲线被分为4个操作区域。在大多数电压点上,IP逻辑可以在较低电压下实现相同的操作频率。对于像SCF IP这样的高度多实例IP,这种相同频率下的电压降低可以实现显著的功率降低,从而转化为性能提升。
如图21中进一步所示,通过将这些F/V曲线划分为多个区域(在这种情况下示出了四个区域)来示出从功率管理(PM)控制角度的操作。针对不同的工作负载,这种分区将SCFIP的F/V操作范围进行对齐。存在多个阈值Z1-Z4,每个阈值可以对应于发生上述关于图20的确定的阈值电压中的一个不同的阈值电压。针对低电压操作(Z1),工作负载性能对网格延时不敏感,并且因此可以在架构上添加管道级以降低电压并将功率传输到核心域。当在低网格电压模式下操作时(例如,图21中的Z1区域),网格延时不会影响性能,并且功率节省可以提高性能(例如,针对核心绑定工作负载)。
动态功率和泄漏功率两者都随着电压降低而降低。作为电压的函数的电路的动态功率和泄漏功率如下:动态功率=CV2F(V:电压,F:频率,C:电容);和泄漏功率=IiV,其中Ii是电压(V)的函数,并且Ii是亚阈值泄漏。针对高电压操作(Z4),如果工作负载就低延时对网格频率敏感并且有功率余量来增加电压,则使能更高频率的操作。因此,在高于阈值Z4的这种情况下,操作是在网格上使用最少的管道级。
实施例可以在不影响延时的情况下提供更好的功率和更好的网格架构带宽分布。由于网格架构本身可以是SCF域功率的一小部分(因为架构数据路径序列可以是总的SCF域序列/门计数/面积的极小一部分),因此可以实现这些优势。因此,像传统的那样针对架构需求锚定整个SCF域电压是非最佳的。实施例消除了这种依赖性并在较高电压下节省功率。此外,由于架构是RC主导的(与核心域相比),因此与SCF IP相比,架构可以在更高的电压下进行操作以实现更高频率的操作,如下所述。在高电压下,选择电路可以插入管道级组件并使得架构是非时序关键的。当然,电压频率曲线和阈值两者的这些代表性值仅是示范性的,并且在其他实施例中许多不同的值是可能的。
下面的示例属于进一步的实施例。
在一个示例中,一种装置包括:多个处理电路,每个处理电路用于执行指令;以及互连,用于耦合多个处理电路。该互连包括:管道级电路,耦合在多个处理电路中的第一处理电路和多个处理电路中的第二处理电路之间。该管道级电路包括:管道级组件,具有用于经由互连来接收信号的第一输入端和用于输出信号的第一输出端;以及选择电路,具有用于从管道级组件的第一输出端来接收信号的第一输入端和经由旁路路径来接收信号的第二输入端,其中,选择电路可基于控制信号而被动态地控制,以输出从管道级组件的第一输出端接收到的信号或经由旁路路径接收到的信号。
在一示例中,选择电路用于接收来自管道级组件的信号,来自管道级组件的信号相对于经由旁路路径接收到的信号是延迟的。
在一示例中,互连包括:具有多个网格挡块的网格互连;以及被插入在多个网格挡块中的至少一些网格挡块之间的多个管道级电路。
在一示例中,多个管道级电路被插入在耦合到网格互连的垂直部分的、多个网格挡块中的至少一些网格挡块之间,并且其中,耦合到网格互连的水平部分的、多个网格挡块的部分彼此耦合而没有管道级电路被插入。
在一示例中,该装置还包括功率控制器,用于至少部分地基于互连的操作电压来向选择电路提供控制信号。
在一示例中,功率控制器用于:在互连的操作电压小于阈值电平时,提供控制信号以使选择电路输出从管道级组件接收到的信号。
在一示例中,功率控制器用于进一步基于多个处理电路中的至少一个处理电路的工作负载来提供控制信号以使选择电路输出从管道级组件接收到的信号。
在一示例中,该装置还包括:互连控制器;以及耦合到互连的队列,其中,互连控制器用于使得互连上未决的一个或多个消息在互连的性能状态改变之前被存储在队列中。
在一示例中,在性能状态改变之后,互连控制器用于:在使得多个处理电路能够将新消息注入到互连之前,使队列将一个或多个消息输出到互连。
在一示例中,当互连的操作电压超过阈值电平时,管道级组件被动态地插入到互连的通信路径中,该管道级组件包括时序电路。
在另一示例中,一种方法包括:在处理器的互连的控制器中,接收来自处理器的功率控制器的管道排放信号;响应于管道排放信号,使得互连上的一个或多个未决消息被存储在耦合到互连的队列中;使得对互连的性能状态改变发生;以及此后,使得一个或多个未决消息被从队列排放并被注入到互连上。
在一示例中,该方法还包括:在性能状态改变之前,控制一个或多个管道级电路以单周期配置进行操作;以及在性能状态改变之后,控制一个或多个管道级电路以多周期配置进行操作。
在一示例中,该方法还包括:当互连的操作电压超过阈值电平时,控制一个或多个管道级电路以单周期配置进行操作;以及当互连的操作电压小于阈值电平时,控制一个或多个管道级电路以多周期配置进行操作。
在一示例中,该方法还包括:对互连执行性能状态改变,而不从互连排放一个或多个未决消息。
在一示例中,该方法还包括:响应于管道排放信号,防止耦合到互连的一个或多个代理将消息注入到互连上;以及在一个或多个消息被从队列排放之后,使得该一个或多个代理能够将消息注入到互连上。
在一示例中,该方法还包括:控制互连的通信路径电路系统来以第一性能状态进行操作;以及控制互连的逻辑电路系统来以第二性能进行操作,该第一性能状态低于该第二性能状态。
在另一示例中,一种计算机可读介质包括用于执行上述示例中任一项所述的方法的指令。
在另一示例中,一种计算机可读介质包括数据,所述数据被至少一个机器用来制造至少一个集成电路以执行上述示例中任一项所述的方法。
在另一示例中,一种设备包括用于执行上述示例中任一项所述的方法的装置。
在另一示例中,一种系统包括:片上系统和耦合到片上系统的系统存储器。片上系统包括多个核心和网格互连,每个核心用于执行指令,该网格互连用于耦合该多个核心。网格互连包括:垂直网格,具有与其耦合的多个网格挡块,其中,多个管道级电路沿着垂直网格被插入,多个管道级电路中的每一个管道级电路包括:管道级组件,具有用于从垂直网格接收信号的第一输入端以及用于输出信号的第一输出端;以及选择电路,具有用于从管道级组件的第一输出端接收信号的第一输入端以及用于从垂直网格接收信号的第二输入端,其中,选择电路可被动态地控制以输出从管道级组件的第一输出端接收到的信号或从垂直网格接收到的信号;以及水平网格,具有与其耦合的多个网格挡块。片上系统还包括用于至少部分地基于网格互连的操作电压来控制选择电路的功率控制器。
在一示例中,该系统还包括:耦合到网格互连的队列,用于在网格互连的性能状态改变之前存储网格互连上未决的一个或多个消息。
在一示例中,功率控制器用于:在网格互连的操作电压超过阈值电平时,使得多个管道级电路以单周期配置进行操作,并且在网格互连的操作电压小于阈值电平时,使得多个管道级电路以多周期配置进行操作。
在一示例中,功率控制器用于使得垂直网格和水平网格以第一性能状态进行操作,并使得多个网格挡块以第二性能进行操作,该第一性能状态低于该第二性能状态。
应理解,上述示例的各种组合是可能的。
要注意的是,术语“电路”和“电路系统”在本文中可互换使用。如在本文中所使用的,这些术语和术语“逻辑”用于单独地或以任何组合指代模拟电路系统、数字电路系统、硬连线电路系统、可编程电路系统、处理器电路系统、微控制器电路系统、硬件逻辑电路系统、状态机电路系统和/或任何其他类型的物理硬件组件。实施例可以用在许多不同类型的系统中。例如,在一个实施例中,通信设备可以被布置为执行本文中描述的各种方法和技术。当然,本发明的范围不限于通信设备,而是其他实施例可以涉及用于处理指令的其他类型的装置、或者包括指令的一个或多个机器可读介质,这些指令响应于在计算设备上被执行而使得设备执行本文中描述的一个或多个方法和技术。
实施例可以以代码来实现,并可存储在其上存储有指令的非暂态存储介质上,所述指令可以用于对系统进行编程以执行这些指令。实施例还可以以数据来实现,并且可以被存储在非暂态存储介质上,该非暂态存储介质如果被至少一个机器使用则使得该至少一个机器制造用于执行一个或多个操作的至少一个集成电路。另外的实施例可以实现在计算机可读存储介质中,该计算机可读存储介质包括信息,该信息当被制入到SoC或者其他处理器中时用于将SoC或其他处理器配置为执行一个或多个操作。存储介质可包括但不限于任何类型的盘(包含软盘、光盘、固态驱动器(SSD)、紧凑型盘只读存储器(CD-ROM)、可重写紧凑型盘(CD-RW)、以及磁光盘、半导体器件(例如,只读存储器(ROM)、随机存取存储器(RAM)(如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM))、可擦除可编程只读存储器(EPROM)、闪速存储器、电可擦除可编程只读存储器(EEPROM))、磁卡或光卡、或适用于存储电子指令的任何其他类型的介质。
虽然针对有限数量的实施例对本发明进行了描述,但是本领域技术人员将认识到根据这些实施例的许多修改和变体。期望所附权利要求覆盖落在本发明的真实精神和范围内的所有这样的修改和变体。
Claims (25)
1.一种装置,包括:
多个处理电路,每个处理电路用于执行指令;以及
互连,用于耦合所述多个处理电路,所述互连包括:
管道级电路,耦合在所述多个处理电路中的第一处理电路和所述多个处理电路中的第二处理电路之间,所述管道级电路包括:
管道级组件,具有用于经由所述互连来接收信号的第一输入端和用于输出所述信号的第一输出端;以及
选择电路,具有用于从所述管道级组件的第一输出端接收所述信号的第一输入端和用于经由旁路路径来接收所述信号的第二输入端,其中,所述选择电路能够基于控制信号而被动态控制,以输出从所述管道级组件的第一输出端接收到的信号或者经由所述旁路路径接收到的信号。
2.根据权利要求1所述的装置,其中,所述选择电路用于接收来自所述管道级组件的信号,来自所述管道级组件的信号相对于经由所述旁路路径接收到的信号是延迟的。
3.根据权利要求2所述的装置,其中,所述互连包括:
网格互连,具有多个网格挡块;以及
多个管道级电路,被插入在所述多个网格挡块中的至少一些网格挡块之间。
4.根据权利要求3所述的装置,其中,所述多个管道级电路被插入在耦合到所述网格互连的垂直部分的、所述多个网格挡块中的所述至少一些网格挡块之间,并且其中,耦合到所述网格互连的水平部分的、所述多个网格挡块的部分彼此耦合而没有管道级电路被插入。
5.根据权利要求1所述的装置,还包括:功率控制器,用于至少部分地基于所述互连的操作电压来向所述选择电路提供所述控制信号。
6.根据权利要求5所述的装置,其中,所述功率控制器用于:在所述互连的操作电压小于阈值电平时,提供所述控制信号以使所述选择电路输出从所述管道级组件接收到的信号。
7.根据权利要求5所述的装置,其中,所述功率控制器用于:进一步基于所述多个处理电路中的至少一个处理电路的工作负载,提供所述控制信号以使所述选择电路输出从所述管道级组件接收到的信号。
8.根据权利要求1所述的装置,还包括:
互连控制器;以及
队列,耦合到所述互连,其中,所述互连控制器用于:使得所述互连上未决的一个或多个消息在所述互连的性能状态改变之前被存储在所述队列中。
9.根据权利要求8所述的装置,其中,在所述性能状态改变之后,所述互连控制器用于:在使得所述多个处理电路能够将新消息注入到所述互连之前,使得所述队列将所述一个或多个消息输出到所述互连。
10.根据权利要求1所述的装置,其中,当所述互连的操作电压超过阈值电平时,所述管道级组件被动态地插入到所述互连的通信路径中,所述管道级组件包括时序电路。
11.一种方法,包括:
在处理器的互连的控制器中,接收来自所述处理器的功率控制器的管道排放信号;
响应于所述管道排放信号,使得所述互连上的一个或多个未决消息被存储在耦合到所述互连的队列中;
使得所述互连发生性能状态改变;以及
此后,使得所述一个或多个未决消息被从所述队列排放并被注入到所述互连上。
12.根据权利要求11所述的方法,还包括:
在所述性能状态改变之前,控制一个或多个管道级电路以单周期配置进行操作;以及
在所述性能状态改变之后,控制所述一个或多个管道级电路以多周期配置进行操作。
13.根据权利要求12所述的方法,还包括:
当所述互连的操作电压超过阈值电平时,控制所述一个或多个管道级电路以所述单周期配置进行操作;以及
当所述互连的操作电压小于所述阈值电平时,控制所述一个或多个管道级电路以所述多周期配置进行操作。
14.根据权利要求12所述的方法,还包括:对所述互连执行所述性能状态改变,而不从所述互连排放所述一个或多个未决消息。
15.根据权利要求12所述的方法,还包括:
响应于所述管道排放信号,防止耦合到所述互连的一个或多个代理将消息注入到所述互连上;以及
在所述一个或多个消息被从所述队列排放之后,使得所述一个或多个代理能够将消息注入到所述互连上。
16.根据权利要求12所述的方法,还包括:
控制所述互连的通信路径电路系统来以第一性能状态进行操作;以及
控制所述互连的逻辑电路系统来以第二性能进行操作,所述第一性能状态低于所述第二性能状态。
17.一种计算机可读存储介质,包括计算机可读指令,所述计算机可读指令在被执行时,用于实现如权利要求11至16中任一项所要求保护的方法。
18.一种设备,包括用于执行如权利要求11至16中任一项所要求保护的方法的装置。
19.一种系统,包括:
片上系统,包括:
多个核心,每个核心用于执行指令;
网格互连,用于耦合所述多个核心,所述网格互连包括:
垂直网格,具有与其耦合的多个网格挡块,其中,多个管道级电路沿着所述垂直网格被插入,所述多个管道级电路中的每一个包括:
管道级组件,具有用于从所述垂直网格接收信号的第一输入端以及用于输出所述信号的第一输出端;以及
选择电路,具有用于从所述管道级组件的第一输出端接收所述信号的第一输入端以及用于从所述垂直网格接收所述信号的第二输入端,其中,所述选择电路能够被动态地控制以输出从所述管道级组件的第一输出端接收到的信号或从所述垂直网格接收到的信号;以及
水平网格,具有与其耦合的所述多个网格挡块;以及
功率控制器,用于至少部分地基于所述网格互连的操作电压来控制所述选择电路;以及
系统存储器,耦合到所述片上系统。
20.根据权利要求19所述的系统,还包括:耦合到所述网格互连的队列,用于在所述网格互连的性能状态改变之前,存储所述网格互连上未决的一个或多个消息。
21.根据权利要求19所述的系统,其中,所述功率控制器用于:在所述网格互连的操作电压超过阈值电平时,使得所述多个管道级电路以单周期配置进行操作,并且在所述网格互连的操作电压小于所述阈值电平时,使得所述多个管道级电路以多周期配置进行操作。
22.根据权利要求19所述的系统,其中,所述功率控制器用于:使得所述垂直网格和所述水平网格以第一性能状态进行操作,并使得所述多个网格挡块以第二性能进行操作,所述第一性能状态低于所述第二性能状态。
23.一种设备,包括:
多个处理装置,每个处理装置用于执行指令;以及
互连装置,用于耦合所述多个处理装置,所述互连装置包括:
管道级装置,耦合在所述多个处理装置中的第一处理装置和所述多个处理装置中的第二处理装置之间,所述管道级装置包括:
管道级组件,具有用于经由所述互连装置来接收信号的第一输入端和用于输出所述信号的第一输出端;以及
选择装置,具有用于从所述管道级组件的第一输出端接收所述信号的第一输入端和经由旁路路径来接收所述信号的第二输入端,其中,所述选择装置能够基于控制信号而被动态地控制,以输出从所述管道级组件的第一输出端接收到的信号或经由所述旁路路径接收到的信号。
24.根据权利要求23所述的设备,其中,所述选择装置用于接收来自所述管道级组件的信号,来自所述管道级组件的信号相对于经由所述旁路路径接收到的信号是延迟的。
25.根据权利要求24所述的设备,其中,所述互连装置包括:
网格互连装置,具有多个网格挡块;以及
多个管道级装置,被插入在所述多个网格挡块中的至少一些网格挡块之间。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/364,619 US11256657B2 (en) | 2019-03-26 | 2019-03-26 | System, apparatus and method for adaptive interconnect routing |
US16/364,619 | 2019-03-26 | ||
PCT/US2020/020927 WO2020197725A1 (en) | 2019-03-26 | 2020-03-04 | System, apparatus and method for adaptive interconnect routing |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113366458A true CN113366458A (zh) | 2021-09-07 |
Family
ID=72607837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080011364.3A Pending CN113366458A (zh) | 2019-03-26 | 2020-03-04 | 用于自适应互连路由的系统、装置和方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11256657B2 (zh) |
EP (1) | EP3948553A4 (zh) |
JP (1) | JP7495422B2 (zh) |
KR (1) | KR20210133221A (zh) |
CN (1) | CN113366458A (zh) |
BR (1) | BR112021016708A2 (zh) |
WO (1) | WO2020197725A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117235007A (zh) * | 2023-11-13 | 2023-12-15 | 中科芯磁科技(珠海)有限责任公司 | 互连模块控制方法、互连模块及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210168578A1 (en) * | 2020-12-23 | 2021-06-03 | Intel Corporation | Apparatus, system and method of communicating audio traffic over a bluetooth link |
Family Cites Families (89)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5163153A (en) | 1989-06-12 | 1992-11-10 | Grid Systems Corporation | Low-power, standby mode computer |
JP3159345B2 (ja) * | 1993-07-02 | 2001-04-23 | 日本電気株式会社 | パイプライン演算処理装置 |
US5522087A (en) | 1994-03-22 | 1996-05-28 | Verifone Inc. | System for selectively operating in different modes depending upon receiving signal from a host computer within a time window upon power up |
US5590341A (en) | 1994-09-30 | 1996-12-31 | Intel Corporation | Method and apparatus for reducing power consumption in a computer system using ready delay |
US5621250A (en) | 1995-07-31 | 1997-04-15 | Ford Motor Company | Wake-up interface and method for awakening an automotive electronics module |
US5931950A (en) | 1997-06-17 | 1999-08-03 | Pc-Tel, Inc. | Wake-up-on-ring power conservation for host signal processing communication system |
JP3449186B2 (ja) | 1997-08-19 | 2003-09-22 | 富士通株式会社 | パイプラインバイパス機能を有するデータ処理装置 |
US6823516B1 (en) | 1999-08-10 | 2004-11-23 | Intel Corporation | System and method for dynamically adjusting to CPU performance changes |
US7539885B2 (en) | 2000-01-13 | 2009-05-26 | Broadcom Corporation | Method and apparatus for adaptive CPU power management |
US7010708B2 (en) | 2002-05-15 | 2006-03-07 | Broadcom Corporation | Method and apparatus for adaptive CPU power management |
JP2001318742A (ja) | 2000-05-08 | 2001-11-16 | Mitsubishi Electric Corp | コンピュータシステムおよびコンピュータ読み取り可能な記録媒体 |
KR100361340B1 (ko) | 2000-05-15 | 2002-12-05 | 엘지전자 주식회사 | 씨피유 클럭 제어 방법 |
US6792392B1 (en) | 2000-06-30 | 2004-09-14 | Intel Corporation | Method and apparatus for configuring and collecting performance counter data |
US6748546B1 (en) | 2000-09-26 | 2004-06-08 | Sun Microsystems, Inc. | Method and apparatus for reducing power consumption |
US7093107B2 (en) | 2000-12-29 | 2006-08-15 | Stmicroelectronics, Inc. | Bypass circuitry for use in a pipelined processor |
US6829713B2 (en) | 2000-12-30 | 2004-12-07 | Intel Corporation | CPU power management based on utilization with lowest performance mode at the mid-utilization range |
US7058824B2 (en) | 2001-06-15 | 2006-06-06 | Microsoft Corporation | Method and system for using idle threads to adaptively throttle a computer |
US20030061383A1 (en) | 2001-09-25 | 2003-03-27 | Zilka Anthony M. | Predicting processor inactivity for a controlled transition of power states |
US7111179B1 (en) | 2001-10-11 | 2006-09-19 | In-Hand Electronics, Inc. | Method and apparatus for optimizing performance and battery life of electronic devices based on system and application parameters |
US6996728B2 (en) | 2002-04-26 | 2006-02-07 | Hewlett-Packard Development Company, L.P. | Managing power consumption based on utilization statistics |
US7051227B2 (en) | 2002-09-30 | 2006-05-23 | Intel Corporation | Method and apparatus for reducing clock frequency during low workload periods |
US6898689B2 (en) | 2002-11-15 | 2005-05-24 | Silicon Labs Cp, Inc. | Paging scheme for a microcontroller for extending available register space |
US7043649B2 (en) | 2002-11-20 | 2006-05-09 | Portalplayer, Inc. | System clock power management for chips with multiple processing modules |
US6971033B2 (en) | 2003-01-10 | 2005-11-29 | Broadcom Corporation | Method and apparatus for improving bus master performance |
EP1590726A2 (en) | 2003-01-23 | 2005-11-02 | University of Rochester | Multiple clock domain microprocessor |
JP4061492B2 (ja) | 2003-02-10 | 2008-03-19 | ソニー株式会社 | 情報処理装置および消費電力制御方法 |
WO2004084065A2 (en) | 2003-03-19 | 2004-09-30 | Koninklijke Philips Electronics N.V. | Pipelined instruction processor with data bypassing |
US7093147B2 (en) | 2003-04-25 | 2006-08-15 | Hewlett-Packard Development Company, L.P. | Dynamically selecting processor cores for overall power efficiency |
US7272732B2 (en) | 2003-06-30 | 2007-09-18 | Hewlett-Packard Development Company, L.P. | Controlling power consumption of at least one computer system |
TW200502847A (en) | 2003-07-08 | 2005-01-16 | Benq Corp | Control device and method for reducing number of interrupts in a processor |
US7146514B2 (en) | 2003-07-23 | 2006-12-05 | Intel Corporation | Determining target operating frequencies for a multiprocessor system |
US7272730B1 (en) | 2003-07-31 | 2007-09-18 | Hewlett-Packard Development Company, L.P. | Application-driven method and apparatus for limiting power consumption in a processor-controlled hardware platform |
US7194643B2 (en) | 2003-09-29 | 2007-03-20 | Intel Corporation | Apparatus and method for an energy efficient clustered micro-architecture |
US7770034B2 (en) | 2003-12-16 | 2010-08-03 | Intel Corporation | Performance monitoring based dynamic voltage and frequency scaling |
US7451333B2 (en) | 2004-09-03 | 2008-11-11 | Intel Corporation | Coordinating idle state transitions in multi-core processors |
US20070156992A1 (en) | 2005-12-30 | 2007-07-05 | Intel Corporation | Method and system for optimizing latency of dynamic memory sizing |
US9001801B2 (en) | 2004-09-07 | 2015-04-07 | Broadcom Corporation | Method and system for low power mode management for complex Bluetooth devices |
US7941585B2 (en) | 2004-09-10 | 2011-05-10 | Cavium Networks, Inc. | Local scratchpad and data caching system |
US7426648B2 (en) | 2004-09-30 | 2008-09-16 | Intel Corporation | Global and pseudo power state management for multiple processing elements |
US7434073B2 (en) | 2004-11-29 | 2008-10-07 | Intel Corporation | Frequency and voltage scaling architecture |
US7502948B2 (en) | 2004-12-30 | 2009-03-10 | Intel Corporation | Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores |
US8041967B2 (en) | 2005-02-15 | 2011-10-18 | Hewlett-Packard Development Company, L.P. | System and method for controlling power to resources based on historical utilization data |
US7454632B2 (en) | 2005-06-16 | 2008-11-18 | Intel Corporation | Reducing computing system power through idle synchronization |
US7430673B2 (en) | 2005-06-30 | 2008-09-30 | Intel Corporation | Power management system for computing platform |
US8301868B2 (en) | 2005-09-23 | 2012-10-30 | Intel Corporation | System to profile and optimize user software in a managed run-time environment |
US20070079294A1 (en) | 2005-09-30 | 2007-04-05 | Robert Knight | Profiling using a user-level control mechanism |
US20070106827A1 (en) | 2005-11-08 | 2007-05-10 | Boatright Bryan D | Centralized interrupt controller |
US20070245163A1 (en) | 2006-03-03 | 2007-10-18 | Yung-Hsiang Lu | Power management in computer operating systems |
US7437270B2 (en) | 2006-03-30 | 2008-10-14 | Intel Corporation | Performance state management |
US8086832B2 (en) * | 2006-05-19 | 2011-12-27 | International Business Machines Corporation | Structure for dynamically adjusting pipelined data paths for improved power management |
US7752468B2 (en) | 2006-06-06 | 2010-07-06 | Intel Corporation | Predict computing platform memory power utilization |
US9323311B2 (en) * | 2006-06-22 | 2016-04-26 | Broadcom Corporation | Method and system for packet based signaling between A Mac and A PHY to manage energy efficient network devices and/or protocols |
US7529956B2 (en) | 2006-07-17 | 2009-05-05 | Microsoft Corporation | Granular reduction in power consumption |
US7930564B2 (en) | 2006-07-31 | 2011-04-19 | Intel Corporation | System and method for controlling processor low power states |
JP2008107983A (ja) | 2006-10-24 | 2008-05-08 | Nec Electronics Corp | キャッシュメモリ |
US7730340B2 (en) | 2007-02-16 | 2010-06-01 | Intel Corporation | Method and apparatus for dynamic voltage and frequency scaling |
WO2008117133A1 (en) | 2007-03-26 | 2008-10-02 | Freescale Semiconductor, Inc. | Anticipation of power on of a mobile device |
JP2008257578A (ja) | 2007-04-06 | 2008-10-23 | Toshiba Corp | 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法 |
US7971074B2 (en) | 2007-06-28 | 2011-06-28 | Intel Corporation | Method, system, and apparatus for a core activity detector to facilitate dynamic power management in a distributed system |
US7971043B2 (en) * | 2007-11-22 | 2011-06-28 | Andes Technology Corporation | Electronic system and method for changing number of operation stages of a pipeline |
US20090150696A1 (en) | 2007-12-10 | 2009-06-11 | Justin Song | Transitioning a processor package to a low power state |
US8024590B2 (en) | 2007-12-10 | 2011-09-20 | Intel Corporation | Predicting future power level states for processor cores |
US7966506B2 (en) | 2007-12-12 | 2011-06-21 | Intel Corporation | Saving power in a computer system |
US8442697B2 (en) | 2007-12-18 | 2013-05-14 | Packet Digital | Method and apparatus for on-demand power management |
KR101459140B1 (ko) | 2007-12-26 | 2014-11-07 | 엘지전자 주식회사 | 전원관리 제어 장치 및 방법 |
US7945765B2 (en) * | 2008-01-31 | 2011-05-17 | International Business Machines Corporation | Method and structure for asynchronous skip-ahead in synchronous pipelines |
US8156362B2 (en) | 2008-03-11 | 2012-04-10 | Globalfoundries Inc. | Hardware monitoring and decision making for transitioning in and out of low-power state |
US8954977B2 (en) | 2008-12-09 | 2015-02-10 | Intel Corporation | Software-based thread remapping for power savings |
KR101210274B1 (ko) * | 2008-12-19 | 2012-12-10 | 한국전자통신연구원 | 전력 소모 스케일링이 가능한 프로세서 |
US8700943B2 (en) | 2009-12-22 | 2014-04-15 | Intel Corporation | Controlling time stamp counter (TSC) offsets for mulitple cores and threads |
US8943334B2 (en) | 2010-09-23 | 2015-01-27 | Intel Corporation | Providing per core voltage and frequency control |
US8949637B2 (en) | 2011-03-24 | 2015-02-03 | Intel Corporation | Obtaining power profile information with low overhead |
US8769316B2 (en) | 2011-09-06 | 2014-07-01 | Intel Corporation | Dynamically allocating a power budget over multiple domains of a processor |
US8914650B2 (en) | 2011-09-28 | 2014-12-16 | Intel Corporation | Dynamically adjusting power of non-core processor circuitry including buffer circuitry |
US9074947B2 (en) | 2011-09-28 | 2015-07-07 | Intel Corporation | Estimating temperature of a processor core in a low power state without thermal sensor information |
US8954770B2 (en) | 2011-09-28 | 2015-02-10 | Intel Corporation | Controlling temperature of multiple domains of a multi-domain processor using a cross domain margin |
US9026815B2 (en) | 2011-10-27 | 2015-05-05 | Intel Corporation | Controlling operating frequency of a core domain via a non-core domain of a multi-domain processor |
US8832478B2 (en) | 2011-10-27 | 2014-09-09 | Intel Corporation | Enabling a non-core domain to control memory bandwidth in a processor |
US9158693B2 (en) | 2011-10-31 | 2015-10-13 | Intel Corporation | Dynamically controlling cache size to maximize energy efficiency |
US8943340B2 (en) | 2011-10-31 | 2015-01-27 | Intel Corporation | Controlling a turbo mode frequency of a processor |
WO2013137862A1 (en) | 2012-03-13 | 2013-09-19 | Intel Corporation | Dynamically controlling interconnect frequency in a processor |
US9436245B2 (en) | 2012-03-13 | 2016-09-06 | Intel Corporation | Dynamically computing an electrical design point (EDP) for a multicore processor |
WO2013137859A1 (en) | 2012-03-13 | 2013-09-19 | Intel Corporation | Providing energy efficient turbo operation of a processor |
US8984313B2 (en) | 2012-08-31 | 2015-03-17 | Intel Corporation | Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator |
US8935578B2 (en) * | 2012-09-29 | 2015-01-13 | Intel Corporation | Method and apparatus for optimizing power and latency on a link |
US9152595B2 (en) * | 2012-10-18 | 2015-10-06 | Qualcomm Incorporated | Processor-based system hybrid ring bus interconnects, and related devices, processor-based systems, and methods |
US9360884B2 (en) * | 2013-11-08 | 2016-06-07 | Altera Corporation | Clocking for pipelined routing |
WO2017203656A1 (ja) * | 2016-05-26 | 2017-11-30 | オリンパス株式会社 | 演算装置、画像処理装置および画像処理方法 |
US10320386B1 (en) * | 2017-12-08 | 2019-06-11 | Xilinx, Inc. | Programmable pipeline interface circuit |
-
2019
- 2019-03-26 US US16/364,619 patent/US11256657B2/en active Active
-
2020
- 2020-03-04 EP EP20778857.1A patent/EP3948553A4/en active Pending
- 2020-03-04 JP JP2021549813A patent/JP7495422B2/ja active Active
- 2020-03-04 CN CN202080011364.3A patent/CN113366458A/zh active Pending
- 2020-03-04 WO PCT/US2020/020927 patent/WO2020197725A1/en unknown
- 2020-03-04 BR BR112021016708-0A patent/BR112021016708A2/pt unknown
- 2020-03-04 KR KR1020217026928A patent/KR20210133221A/ko unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117235007A (zh) * | 2023-11-13 | 2023-12-15 | 中科芯磁科技(珠海)有限责任公司 | 互连模块控制方法、互连模块及存储介质 |
CN117235007B (zh) * | 2023-11-13 | 2024-01-26 | 中科芯磁科技(珠海)有限责任公司 | 互连模块控制方法、互连模块及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3948553A1 (en) | 2022-02-09 |
WO2020197725A1 (en) | 2020-10-01 |
US20200311018A1 (en) | 2020-10-01 |
JP7495422B2 (ja) | 2024-06-04 |
JP2022526224A (ja) | 2022-05-24 |
US11256657B2 (en) | 2022-02-22 |
EP3948553A4 (en) | 2022-12-14 |
BR112021016708A2 (pt) | 2021-10-13 |
KR20210133221A (ko) | 2021-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11782492B2 (en) | Techniques to enable communication between a processor and voltage regulator | |
CN107924219B (zh) | 遮蔽处理器的核的功率状态 | |
CN107533354B (zh) | 控制处理器的处理引擎的性能状态 | |
US11409560B2 (en) | System, apparatus and method for power license control of a processor | |
CN109564526B (zh) | 使用封装和线程提示信息的组合来控制处理器的性能状态 | |
WO2017105734A1 (en) | Controlling telemetry data communication in a processor | |
US10281975B2 (en) | Processor having accelerated user responsiveness in constrained environment | |
US10216246B2 (en) | Multi-level loops for computer processor control | |
US20170371399A1 (en) | Controlling Forced Idle State Operation In A Processor | |
CN113748397A (zh) | 用于动态控制处理器的处理电路的电流消耗的系统、装置和方法 | |
US20180314289A1 (en) | Modifying an operating frequency in a processor | |
US11669146B2 (en) | System, apparatus and method for responsive autonomous hardware performance state control of a processor | |
US10379596B2 (en) | Providing an interface for demotion control information in a processor | |
CN113448373A (zh) | 用于处理器的电压调节器的功率状态缩放的装置和方法 | |
US20160224090A1 (en) | Performing context save and restore operations in a processor | |
CN109791427B (zh) | 使用滑动平均值的处理器电压控制 | |
EP3340039A1 (en) | Processor prefetch throttling based on short streams | |
JP7495422B2 (ja) | 適応的な相互接続ルーティングのためのシステム、装置及び方法 | |
CN112835443A (zh) | 用于控制功率消耗的系统、装置和方法 | |
CN112906326A (zh) | 用于时延监视和响应的系统、装置和方法 | |
US11593544B2 (en) | System, apparatus and method for adaptive operating voltage in a field programmable gate array (FPGA) | |
CN109478086B (zh) | 至少部分地基于平台电容来控制处理器的电流消耗 |
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 |