CN111630471A - 在集成电路中的电路区域的操作点控制器 - Google Patents
在集成电路中的电路区域的操作点控制器 Download PDFInfo
- Publication number
- CN111630471A CN111630471A CN201880030172.XA CN201880030172A CN111630471A CN 111630471 A CN111630471 A CN 111630471A CN 201880030172 A CN201880030172 A CN 201880030172A CN 111630471 A CN111630471 A CN 111630471A
- Authority
- CN
- China
- Prior art keywords
- operating
- operating point
- controller
- voltage
- state
- 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
- 230000007704 transition Effects 0.000 claims abstract description 89
- 230000007246 mechanism Effects 0.000 claims abstract description 11
- 238000013461 design Methods 0.000 claims description 65
- 230000008859 change Effects 0.000 claims description 29
- 238000000034 method Methods 0.000 claims description 28
- 239000011159 matrix material Substances 0.000 claims description 17
- 230000006870 function Effects 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 7
- 230000003068 static effect Effects 0.000 claims description 6
- 238000012938 design process Methods 0.000 claims description 5
- 238000013519 translation Methods 0.000 claims description 4
- 230000009471 action Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 22
- 238000012545 processing Methods 0.000 description 15
- 239000002245 particle Substances 0.000 description 14
- 238000012360 testing method Methods 0.000 description 14
- 230000015572 biosynthetic process Effects 0.000 description 9
- 238000004519 manufacturing process Methods 0.000 description 9
- 238000004088 simulation Methods 0.000 description 9
- 238000003786 synthesis reaction Methods 0.000 description 9
- 238000003860 storage Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 238000012795 verification Methods 0.000 description 7
- 102100040678 Programmed cell death protein 1 Human genes 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000013515 script Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000007423 decrease Effects 0.000 description 5
- 238000005265 energy consumption Methods 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 101100385237 Mus musculus Creg1 gene Proteins 0.000 description 3
- 206010048669 Terminal state Diseases 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000003542 behavioural effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 239000008187 granular material Substances 0.000 description 2
- 238000001459 lithography Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000002184 metal Substances 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
- 230000004043 responsiveness Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 101710089372 Programmed cell death protein 1 Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 239000002699 waste material Substances 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/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3237—Power saving characterised by the action undertaken by disabling clock generation or distribution
-
- 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/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- 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
-
- 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)
- Computing Systems (AREA)
- Power Sources (AREA)
Abstract
在实施例中,讨论了在集成电路中的两个或更多个电路区域的操作点控制器。OPC被配置为:i)为这些电路区域中的每一个设置包括操作电压和操作频率的资源状态,以及ii)识别事件以发起在给定电路区域的两个或更多个操作点之间的转换。操作点控制器还被配置成管理在集成电路上的两个或更多个电路区域的操作点之间的转换。操作点控制器是用逻辑实现的基于硬件的机构而不是在CPU处理器上操作的软件。
Description
版权声明
本专利文件的公开内容的一部分包含受到版权保护的材料。当呈现在专利和商标局专利文件或记录中时,版权所有者不反对任何人对互连的复制再现,但是以其他方式呈现时无论如何保留所有版权权利。
相关申请
本申请整体合并了2017年3月6日提交的标题为“An Operating PointController(OPC)for power domains in an integrated circuit”、序列号为62/467617的美国临时专利申请,该临时专利申请的公开内容通过引用以其整体并入本文。
背景
片上系统设计可能需要更低的功耗、多个时钟域和多个电源域。这些域通过断开局部电源以消除漏电流、动态地调整电压和时钟(尤其是在处理子系统(例如中央处理单元(CPU)、图形处理单元(GPU)和视频引擎)中)来为操作条件优化有功功率(active power)和改变IP核时钟来实现功率减小以满足应用使用场景的需要。尽管如此,集成电路系统电源管理器打开和关闭不同的功能块以实现上述功能中的一些,在不同功能块之间的通信网络通常保持被供电,而这些其他功能块被置于睡眠模式或空闲状态中。然而,在该领域中存在改进的余地。
概述
在实施例中,讨论了用于在集成电路中的电路区域(例如电源域)的操作点控制器(OPC)的方法和系统。
在实施例中,讨论了在集成电路中的两个或更多个电路区域的操作点控制器。OPC被配置为:i)为这些电路区域中的每一个设置资源状态,包括操作电压和操作频率,以及ii)识别事件以发起在给定电路区域的两个或更多个操作点之间的转换。操作点控制器还被配置成管理在集成电路上的两个或更多个电路区域的操作点之间的转换。操作点控制器是用逻辑实现的基于硬件的机构而不是在CPU处理器上操作的软件。
附图简述
多个附图涉及设计的示例实施例。
图1示出了在OPC和各种部件(包括电源域控制器、共享资源仲裁器和其他部件)之间的交互的实施例的示意图,OPC和各种部件之间的交互为集成电路中的电路区域设置开启/关闭门控状态和资源状态。
图2示出了在集成电路中的两个或更多个电路区域的OPC的实施例的示意图,OPC被配置为i)为这些电路区域中的每一个设置资源状态,包括操作电压和操作频率,以及ii)为给定电路区域设置门控状态,其中OPC还被配置为管理在集成电路上的两个或更多个电路区域的操作点之间的转换。
图3示出了被配置成对于两个或更多个电路区域在一个或更多个操作点表中执行查找以提供开启/关闭门控状态的选择的OPC的实施例的示意图,该开启/关闭门控状态选自由i)时钟门控状态、ii)电源门控状态、iii)较低电压保持状态、iv)操作状态和v)这四种状态的任何组合组成的组,其中该选择在存储在操作点表中的操作点之间变化。
图4示出了被配置成执行所有下列操作的OPC状态机的实施例的示意图:i)识别转换条件以发起操作点改变,ii)按顺序排列在那个电路区域中需要在操作点之间转换的电路,iii)按顺序排列支持相应的操作频率所需的操作电压,以及iv)向系统资源发送出控制信号以使在电路区域中的电路以电安全的方式实现新的操作点而没有不期望的电路状态的损失。
图5示出了为操作电压和频率提供温度补偿的电压、频率、温度(VFT)控制器的实施例的示意图,其中VFT控制器基于OPC的操作点和多位温度输入来利用查找表,以根据当前温度来产生适当的电压和频率索引值。
图6示出了具有操作点事件选择器和一个或更多个操作点表的OPC的实施例的示意图,其中事件矩阵被配置为收集进入的硬件和/或软件事件,并将它们分配到电源域事件选择器和操作点事件选择器。
图7示出了存储多个操作点的操作点表的实施例的示意图,其中第一操作点将OPC置于对该电路区域的门控状态的单一控制(sole control)中,且第二操作点为局部电源域控制器提供根据针对当前条件所识别的事件要选择处于的门控状态的子集。
图8示出了由OPC或局部电源域控制器驱动的域性能索引的寄存器的实施例的示意图。
图9A和图9B示出了具有可配置能力以具有独立的每CPU门控状态控制的OPC的实施例的电路图(9A)和表(9B)。
图9C示出了在没有具有独立的每CPU门控状态控制的状态机的情况下的仅正常状态的示例状态表。
图10示出了根据本文描述的系统和方法的用于产生具有一个或更多个操作点控制器的器件(例如集成电路)的过程的示例的实施例的流程图。
本文件中的附图示出了各种实施例的示意图。
虽然该设计受制于各种修改和可选的形式,但其特定的实施例在附图中作为示例被示出并且在本文被详细描述。该设计应被理解为不限于所公开的特定形式,但相反地,意图是涵盖落在该设计的精神和范围内的所有修改、等同物和替代物。
详细讨论
在下面的描述中,阐述了许多特定的细节,例如特定包交付服务、所命名的部件、连接、处理器的数量等的示例,以便提供对当前设计的彻底理解。然而对于本领域中的技术人员将明显的是,可以在没有这些特定细节的情况下实践本设计。在其他实例中,不是详细地而是在框图中描述公知的部件或方法,以便避免不必要地使本设计模糊。因此,所阐述的特定细节仅仅是示例性的。在一个实施例中讨论的特定细节可以在另一个实施例中被合理地实现。特定细节可以根据本设计的精神和范围变化,并且仍然被设想为在本设计的精神和范围内。
总体上,讨论了在集成电路中的电路区域(例如电源域)的OPC。一个或更多个操作点控制器可以管理在集成电路(例如片上系统(SoC))上的电源,以便协调在集成电路上的电源、时钟、电压和/或频率域状态的集合的转换。下面的附图和文本描述了该设计的各种示例实现。
图1示出了在OPC和各种部件(包括一个或更多个电源域控制器、共享资源仲裁器和其他部件)之间的交互的实施例的示意图,OPC和各种部件之间的交互为集成电路100中的电路区域设置开启/关闭门控状态和资源状态。
OPC在每个电路区域中提供i)开启/关闭门控状态和ii)不同的资源操作状态,不同的资源操作状态包括不同的操作频率和在这些不同的操作频率下安全地操作的相应的电压电平。不同的操作频率包括至少两个或更多个频率,例如100MHz、500MHz等,除了零赫兹,因为零赫兹不是操作频率。OPC还管理在集成电路上的两个或更多个电路区域的操作点之间的转换。OPC提供i)为这些电路区域中的每一个设置包括操作电压和操作频率的资源状态,以及ii)识别事件以发起在给定电路区域的两个或更多个操作点之间的转换。
OPC的逻辑包括操作点事件选择器模块、操作点状态控制器和VFT控制器。OPC包括操作点状态控制器以设置并管理每个电路区域的开启/关闭门控状态。OPC还包括一个或更多个操作点表。操作点状态控制器基于事件来在操作点表中执行查找。操作点状态控制器耦合到一组一个或更多个电源域控制器以基于查找来将来自操作点表的操作点信息传递到连接到OPC的适当电源域控制器。OPC包括VFT控制器以设置并管理包括在给定电路区域的操作点之间的转换的不同的资源操作状态。VFT控制器基于操作点信息来将所需的操作电压和操作频率信息发送到相应的系统资源,该系统资源包括与特定电源域相关联的系统电压源和系统时钟。
OPC的逻辑还包括与事件矩阵协作的操作点事件选择器。事件矩阵收集进入的硬件事件,并将它们分配到电源域控制器或操作点控制器。事件矩阵与操作点事件选择器耦合。操作点状态控制器可以基于事件来在操作点表中执行查找。事件从事件矩阵进入,且操作点状态控制器基于事件来在这些表中执行查找。当事件从事件矩阵进入时,然后操作点事件选择器将进入的事件映射到状态,并且该信息被传递到操作点状态控制器以基于事件来在操作点表中执行查找。
OPC将向与它协作的每个电源域控制器发送门控状态和操作点。电源域控制器块有许多较小的局部域块。电源域控制器在一个中心位置中包含电源管理器的中枢部分(brain),它协调(orchestrate)电源域到低电源状态和从低电源状态的转换。局部域块遵循电源域控制器的指令,但在物理上位于离控制器某个距离处,更靠近被管理的电源域。以定时和布局友好的方式来完成块之间的通信。
此外,OPC协调电源、时钟、电压和频率域状态的集合的转换。因此,OPC与包括例如电源域0的一组一个或更多个电源域控制器进行通信。电源域控制器在所连接的电源域中打开电源、关闭电源、升高或降低频率和/或升高或降低电压。OPC基于查找来将操作点信息传递到连接到该OPC的适当的电源控制器。OPC为电源域协调转换和适当的排序。OPC还协调在系统中的频率和电压的转换。VFT控制器向系统资源(例如与特定电源域相关联的系统电压源和时钟)发送所需的电压和频率信息。为了使OPC控制电压资源,OPC向共享资源仲裁器传递电压索引。可以用导致增加的电压电平的增加的索引值来定义一系列电压索引。然后,共享资源仲裁器从共享同一资源的各种颗粒(grain)来聚集它的所有输入,并确定最低可能的工作电压。为了使OPC控制频率域,OPC向共享资源仲裁器传递频率索引。可以用导致增加的频率水平的增加的索引值来定义一系列频率索引。然后,共享资源仲裁器从共享同一资源的各种颗粒来聚集它的所有输入,并确定最低可能的工作频率。
因此,操作点控制器具有存储电路区域的多个操作点的操作点表和从操作点表访问操作点的操作点状态控制器。OPC被配置为1)在给定的电路区域中,使用操作点来确定i)开启/关闭门控状态和ii)不同的资源操作状态,不同的资源操作状态包括不同的操作频率和在那些不同的操作频率下安全地操作的相应的电压电平,以及2)管理在集成电路上的两个或更多个电路区域的多个操作点之间的转换。
注意,每个电源域可以包含一些功能。例如,第一电源域可以包含存储器,第二电源域可以包含CPU处理核,另一电源域可以包含该片上系统的通信总线互连的全部或仅仅一部分。在更复杂的电源控制中,每个电源域可以包含块(例如存储器和通信总线互连的一部分)的混合。
电源域控制器负责协调由操作点控制器通信的受控域的电源状态。电源域控制器还接收来自事件矩阵、其他电源域控制器和软件寄存器接口的事件输入,该事件输入由电源域状态转换控制器(STC)解码以确定期望的该域的终端状态(terminal state)。STC运用定时器电路来提供状态间延迟和电源开关抽头延迟,外加测量被附接的LDB的确认超时。可选的监控器可以被包括以支持电源状态切换速率和周期的测量。电源域STC是对由受控电源域定位的所有远程局部域块(LDB)提供控制的状态机。每个状态的名称对应于与它对话的远程块的名称。除操作状态(OPR)外,状态机支持多达三种低电源状态:时钟关闭(CSO)、保持电压电平(RVL)和电源关闭(PSO)。每个操作点定义在集成电路中的至少两个电路区域的电源状态,包括开启/关闭门控状态和资源状态。
电源开关仲裁器实现防止域的同时上电的一组规则,域的同时上电可能危及在同一电压供应上的或定位成在物理上靠近转换域的域的安全操作。
OPC向电压协议和频率协议适配器发送信号以提供在性能水平和实际机构之间的转化,以对资源做出改变。
注意,OPC控制资源和门控状态,以及管理在两个或更多个电路区域的操作状态之间的转换。单个部件提供i)开启/关闭门控状态和ii)不同的资源操作状态的电源管理,以及然后还管理在每个电路区域的操作点之间的转换。将电源管理的两个方面(控制状态和管理转换)统一到单个装置中,这使集成电路设计者能够以一致且可预测的结果来优化能源使用。
OPC可以是用逻辑实现的基于硬件的机构而不是在CPU处理器上操作的软件。
操作点控制器
OPC使颗粒的集合的状态抽象化,其中每个颗粒可以是电源域、时钟域、电压域或频率域。颗粒的组合状态被定义为操作点。OPC的工作是定义导致操作点中的每一个的事件,并指示域、电压和频率源中的每一个在适当的时间以适当的顺序切换到适当的值。OPC还负责确定适合于所有相关联的电源颗粒的操作点。
VFT控制器被配置为i)向共享资源仲裁器传递电压索引以控制电压调节器(例如VReg),以及ii)向共享资源仲裁器传递频率索引以控制时钟发生器(例如CReg)。
VFT控制器信号被传递到电压协议和频率协议适配器以提供在性能水平和实际机构、电压调节器和/或时钟发生器之间的转化,以针对给定电路区域进行操作电压和操作频率改变。
图2示出了在集成电路200中的两个或更多个电路区域的OPC的实施例的示意图,OPC被配置为i)为这些电路区域中的每一个设置包括操作电压和操作频率的资源状态,以及ii)为给定电路区域设置门控状态。OPC还被配置为管理在集成电路上的两个或更多个电路区域的操作点之间的转换。
图2给出了三个电源域、一个电压域和一个频率域的该所示示例,系统可以定义一组操作点。电源域PD0由电源门控域以及用于电压域(VREG-PD0)和时钟域(CREG-PD0)的调节器组成。电源域PD1和PD2仅仅是电源门控域。三个电源门控域各自由电源域控制器控制,并支持操作状态和电源关闭状态。
OPC为它控制的每个电源域控制器按顺序排列电源开关的开启。OPC被配置为将根据成员电源域控制器的编译时静态列表开启的电源域控制器的该序列进行排序,这将确定给定电源域控制器何时被允许相对于其他电源域控制器开启它的电源开关。
电源域控制器
电源域控制器块控制单个电源域的功能。该控制支持操作(OPR)状态和3种低电源状态。低电源状态是时钟关闭(CSO)、保持电压电平(RVL)和电源关闭(PSO)。电源域控制器包含事件选择器,该事件选择器确定何时指示状态转换控制器何时将域移动到另一电源状态。通用定时器用于各种功能,例如状态延迟、状态监控器和超时特征。手动模式块允许软件直接控制域,如果这应当变得有必要。一组寄存器将每件事物联系在一起,允许软件访问特征。状态转换控制器(STC)可以从OPC接收目标域索引以迫使STC移动到低电源状态并保持在该状态(或较低状态)中,直到OPC移除该限制为止。此外,电源域事件选择器接收来自整个事件矩阵的输入,并为单个电源域生成状态转换。
图2示出了开启-关闭门控状态和资源状态如何工作的示例方式。如所讨论的,OPC中的逻辑将基于进入的事件来用OP改变门控状态和/或资源状态。操作点状态控制器向PDC状态转换控制器发送信号以传递给定电源域的开启/关闭门控状态。OP控制器还可以向VFT控制器发送信号以改变时钟调节器CReg和电压调节器Vreg的频率和电压的操作点。门控开关SW PDO到SW PD2允许IC的那个电路区域(例如电源域PD0)的电源门控开启-关闭。时钟调节器CReg是每一当前操作点的可变操作频率。电压调节器Vreg是每一当前操作点的操作电压的改变。OPC通常控制门控状态,但也可以将门控状态委托给局部PDC。
两个或更多个电路区域包括包含数字逻辑的电源域(例如PD 1)、包含模拟电路的电源域(例如PD 2)以及包含数字逻辑和模拟电路的任何组合的电源域(例如PD 0)。
在图7的表中示出了示例性的四个不同的操作点:高点、中间点、低点和关闭点。高点具有在操作模式中的所有块和在它的最高频率——500MHz下运行(且因此需要更高的电压1.1V)的PD0。中间点具有电源门控的PD2。低点具有电源门控关闭的PD1和PD2以及在降低的时钟和电压(例如100MHz和0.8V)下运行的PD0。最后,关闭点具有电源门控关闭的所有三个域。
从操作点表访问操作点的操作点状态控制器被配置为使用多个操作点,其使操作点状态控制器:
1)在第一操作点中确定并管理i)将第一电路区域转换到为门控关闭以节省功率的第一开启/关闭门控状态,ii)同时将第二电路区域转换到具有第一操作频率和相应电压的第一资源状态以支持安全电路操作,以及
2)在第二操作点中确定并管理i)将第一电路区域转换到支持第一电路区域的操作状态的第二开启/关闭门控状态,ii)同时将第二电路区域转换到具有第二操作频率和相应电压的第二资源状态以支持安全电路操作,其中第二操作频率高于在第一操作点中的第一操作频率。
OPC协调电源、时钟、电压和频率域状态的集合的转换。这可以用于实现子系统抽象和高级管理技术,例如动态电压频率调整(DVFS)。OPC的工作是定义导致操作点中的每一个的事件,并指示域、电压和频率源中的每一个在适当的时间以适当的顺序切换到适当的值。
电源域状态
给定的电源颗粒可以在各种不同的状态中操作。
当使用电源域控制器块时,系统可以支持多达四种不同的状态。这些是操作(OPR)状态、时钟关闭状态、保持电压电平状态和电源关闭状态。由电源域控制器控制的电路只可以在操作(OPR)状态中时执行有用的工作。在其他三种状态中,时钟和/或电压没有被施加在能够实现正确的电路操作的电平处。然而当在操作状态中时,可以期望改变频率和也许电压以优化电源颗粒的动态和/或静态能量消耗来匹配工作负载。给定的电源颗粒可以在各种不同的状态中操作。
因为芯片的内部和/或外部电压和频率源通常跨越多个颗粒被共享,所以OPC负责确定适合于所有相关联的电源颗粒的操作点。
因此,OPC连接到系统电压和时钟资源。OPC被配置为通过管理连接到集成电路的两个或更多个不同区域的系统电压和时钟资源来最小化集成电路的功率和能量消耗。OPC使用存储在操作表中的可配置的操作点来响应于硬件和/或软件事件通过在功耗与响应性之间进行权衡的一系列不同状态自主地转换不同的电路区域。
注意,可以在中央处理单元上的软件中、与微控制器协作的软件中、只在硬件中或在这些的任一个的组合中实现OPC。在实施例中,在硬件逻辑中实现用于OPC的系统以控制电源域控制器。
注意,两个或更多个操作点控制器可以连接到一个或更多个共享资源仲裁器。共享资源仲裁器被配置为在多个操作点控制器(或PDC)当中进行仲裁以确定待被提供给共享系统资源的操作电压和操作频率的值。
电源、电压和频率域的集合
两个或更多个电路区域可以包括电路区域中的第一电路区域和电路区域中的第二电路区域,第二电路区域是比第一电路区域大的电路区域,但可以包括第一电路区域作为第二电路区域的一部分。例如,来自PD1的部件可以被包含为PD2中的部件的一部分。
将电源、电压和频率域一起组合成集合的示例提供了用于将每个域的详细状态抽象成一组组合的较高级别状态集合的方法。这些较高级别状态对于SoC设计者来说理解和管理起来更简单。
处理器子系统的丛集(cluster)的示例可以如下。该集合包含三个电源域、用于CPU电源域的一个可调电压域和用于CPU电源域的一个可调频率域。电源域中的两个支持两种电源状态,而第三电源域支持三种电源状态。这三个电源域加上电压和频率域的可能状态的组合数量在任一时间可以是48,但通过定义这些操作点,只有五种合法状态被定义。
存在来自示例电源状态定义的三个好处:状态最小化、转换最小化和域排序。
状态最小化
例如,丛集的状态的组合数量减少到比可能的状态少得多的数量。这可以减少验证空间,并从而减少验证时间。物理布局和逻辑合成也可以看到一些节省,因为可能需要更少的隔离和电平位移器单元(level shifter cell)。
转换最小化
也可以减少在各种电源状态之间的转换,使得在所有状态之间转换是不允许或不可能的。在示例中,可以不允许从“关闭”状态到“保持”状态的转换。通过最小化这些转换,系统进一步减少验证空间并降低控制器复杂性。
域排序
最后,通过定义域的集合,系统可以不仅在每个电源状态内静态地表达在这些域之间的关系而且当在各种状态之间切换时也动态地表达在这些域之间的关系。在示例中,当在“关闭”状态和“开启”状态之间切换时,集合可以要求“高速缓存存储器”和“高速缓存控制”域在“CPU”之前首先被加电。当在“开启”状态和“MinOn”状态之间切换时,根据电源状态改变的方向,电压域可能需要在频率域之前或之后被切换。
支持丛集控制功能
存在被需要来实现在两种电源状态之间的颗粒的集合的转换的多种支持控制功能:电源控制、电压控制和频率控制。
电源控制——对单个电源域的时钟、隔离、电源切换等的电源域的控制。
电压控制——通常经由电压调节器来在器件中完成电压控制。电压调节器接口可以从简单的输入引脚改变到更复杂的协议接口(例如APB、AHB、I2C等)。电压的控制也可能需要组合来自许多不同控制器的请求以产生器件的总合法电压。
频率控制——通常经由PLL或时钟产生单元来在器件中控制时钟的频率。它们的接口可以从简单的输入引脚改变到更复杂的协议接口(例如APB、AHB、I2C等)。频率的控制也可能需要组合来自许多不同控制器的请求以产生器件的总合法频率。
协调电源状态改变
图4示出了被配置成执行所有下列操作的OPC状态机的实施例的示意图:i)识别转换条件以发起操作点改变,ii)按顺序排列在那个电路区域中需要在操作点之间转换的电路,iii)按顺序排列支持相应的操作频率所需的操作电压,以及iv)向系统资源发送出控制信号以使在电路区域中的电路以电安全的方式实现新的操作点而没有不期望的电路状态的损失。
协调丛集状态改变可能需要以非常特定的顺序来对各种域进行排序。自主丛集事件控制是一种手段,丛集可以通过该手段来确定何时改变电源状态。虽然对于OPC来说这并不是由仅基于硬件的丛集控制器所需要的,但它将进一步减少到新丛集状态的转换时间。这导致丛集状态的独立控制,并允许最大省电。例如,OPC可以按适当的顺序向上改变电压、改变频率、改变任何电源域状态、向下改变电压。
示例操作点转换
让我们来看包含电源、电压和频率域的丛集的操作点状态改变。1.指示域的集合应当移动到新的操作点状态的事件发生。2.第一步,必须增加它们的电压的任何电压资源应请求新的电压电平。3.所有频率资源被调整。4.需要断电的所有电源域被处理。5.需要加电的所有电源域被处理。6.如果在断电和加电的域之间有所需顺序,则返回到步骤4。7.正降低它们的电压的任何电压资源应请求新电压。这是可以应用于操作点改变的一般机制。
OPC通过管理连接到晶片(die)的不同区域的电压和时钟资源来最小化集成电路(IC)的功率和能量消耗。OPC能够响应于硬件和/或软件事件通过在功耗与响应性之间进行权衡的一系列不同状态快速且自主地转换区域。
OPC被配置为如下监控并控制功率消耗:
·粗颗粒门控控制以消除与电路区域相关的所有时钟的时钟相关(有功)功率。
·保持电压电平切换以将电路区域的供电电压降低至一个电压——在该电压下状态(例如,在存储器和触发器(flip-flop)中)的保持被保留,但逻辑操作在较低的局部供电电压下被禁止,这使相当多的漏电流被节省。
·电源关闭,其中电路区域的局部电源和/或地分别与全局电源和/或地断开;当电路是门控的时,该电源门控可以完全消除与漏电流相关的功率。
·可配置局部控制器的分布式集合,其管理在从操作状态转换到上面提到的三种电源状态或从这三种电源状态转换期间所需的中间电源子状态(例如时钟门控、复位控制、电压隔离和输入箝位(input clamping),以及用于IP核的低功率请求/响应接口。
·一组集中的每区域域控制器,其使用局部控制器并基于硬件、软件和/或状态改变事件的组合来管理在电源状态之间的转换。
·灵活的事件矩阵,其使进入的硬件事件同步并将它们分配到集中式控制器。
OPC可以具有产生多个优先中断事件的局部电源管理中断控制器,允许OPC为所实现的正常和异常条件请求软件协助。
因此,OPC可以i)为这些电路区域中的每一个设置包括操作电压和操作频率的资源状态,以及ii)识别事件以发起在给定电路区域的两个或更多个操作点之间的转换以及管理在集成电路上的两个或更多个电路区域的操作点之间的转换。
注意,OPC可以是用逻辑实现的基于硬件的机构而不是在CPU处理器上操作的软件。在每个电源状态之间的转换是在硬件中完全可控制的。在硬件逻辑中实现的OPC比在CPU处理器上操作的软件允许状态的更快转换发生在电路区域中,其中发生在电路区域中的状态的更快转换比缓慢的转换转化为在电池寿命方面更大的节省。
图3示出了被配置成对于两个或更多个电路区域,在一个或更多个操作点表中执行查找以提供开启/关闭门控状态的选择的OPC 300的实施例的示例详细框图,该开启/关闭门控状态选自由i)时钟门控状态、ii)电源门控状态、iii)较低电压保持状态、iv)操作状态和v)这四种状态的任何组合组成的组。该选择可以在存储在操作点表中的操作点之间变化。注意,至少一个操作点将至少一个电路区域定义为在操作状态中,而至少另一个电路区域在不同的开启/关闭门控状态中。
OPC被配置为用于所有下面的操作,i)识别转换条件以发起操作点改变,ii)按顺序排列在那个电路区域中需要在操作点之间转换的电路,iii)按顺序排列支持相应的操作频率所需的操作电压,以及iv)向系统资源发送出控制信号以使在电路区域中的电路以电安全的方式实现新的操作点而没有不期望的电路状态的损失。所有这些动作都在硬件控制下发生而不需要来自在CPU处理器上操作的任何软件的协助。
OPC可以具有操作点事件选择器模块、操作点状态控制器、一个或更多个操作点表和VFT控制器。
操作点表
操作点表描述了操作点控制器的每个成员的状态。OPC可以支持多达64个不同的操作点,且每个操作点都包含当该操作点是活动的时定义每个成员的期望状态的一组寄存器。这些寄存器可以被配置为只读的或在成员的状态需要在运行时被修改时被配置为读写的。这提供了定义不是运行时可配置的小的固定OPC或者可以在运行时被修改的非常通用的OPC的能力,以解释在编译时未知的或依赖于系统的操作模式的新操作模式,例如阻止与某些电源域控制器相关联的硬件的操作的封装选项。
OPC可以与填充有两个或更多电路区域的多个操作点的操作点表协作。一个或更多个电路区域的多个操作点包括在具有相关联的不同操作电压的至少两个不同操作频率之间的至少一个选择。注意,与较低操作频率相关联的操作电压值不会提供足够的晶体管速度来允许第一电路区域在较高操作频率下适当地起作用。见图7的不同操作点的示例操作频率和电压。
操作点状态控制器可以基于事件来在这些表中执行查找。事件从事件矩阵进入,且操作点状态控制器基于事件来在这些表中执行查找。
操作点表被分成一系列寄存器。电源颗粒的状态被配置在域操作点表寄存器中,并由电源域控制器控制。此外,成员操作点控制器的状态也被配置在域操作点表寄存器中。电压和频率资源连同温度一起被配置在VFT表存储器中,且然后在VFT操作点表寄存器中被引用。这允许单个电压、频率和可选地温度规范由许多不同的操作点引用。因此,操作点被用于同时对域操作点表和VFT操作点表编索引,来为每个成员电源域控制器、OPC和VFT表存储器索引提供期望的状态。存储在这些表中的值和信息可以在运行时被编程。
参考图1,OPC被配置为与编程接口协作,该编程接口提供软件可见寄存器,用于下列项的动态配置:i)软件和/或硬件事件的生成,ii)状态与每个操作点的关联,iii)定义在操作点之间的转换条件、与操作点相关联的操作电压和/或操作频率,以及iv)这些的任何组合。编程接口还可以与软件可见寄存器协作,用于软件事件的OPC生成的动态配置、电源状态和转换的直接控制、电源状态统计的调试和监控以及与局部中断控制器的交互。
复位
参考图3,操作点表定义当(PoR)出现时哪个操作点将被应用。该PoR操作点通过导向器自动与索引0相关联,并且所有成员的PoR状态都被调整以进行匹配。
状态设置
图7示出了存储多个操作点的操作点表700的实施例的示意图,其中一个或更多个操作点被传送到操作点控制器、局部电源域控制器或两者。第一操作点可以将OPC置于对该电路区域的门控状态的单一控制中,且第二操作点可以为局部电源域控制器提供根据针对当前条件所识别的事件要选择处于的门控状态的子集。
如果系统让例如PD1和PD2在高操作点中时做出选择以在一组电源域控制器状态(OPR和CSO)之间选择,则系统可以通过组合OP来简化多个操作点条目。对于该示例,当在高操作点中时,PD1和PD2可以在操作(OPR)状态和时钟关闭状态(CSO)之间独立选择。
OPC具有通过1)允许电源域控制器选择它的状态或者2)将一些颗粒状态定义为“与先前状态相同”来最小化丛集状态的数量的能力。当前表格显示来自可能的七种状态中的四种丛集状态的最小数量,因为电源域控制器被赋予选择它的状态的能力。
电源域控制器的域索引值被编码为每个所支持的电源状态一个位,因此对于OPR、时钟关闭、保持电压电平和电源关闭中的每个有一个位。
如果寄存器字段具有被设置为=0的位,则PDC有效地被移除而免于OPC控制,PDC事件选择器被传递到PDC状态机。根据逐个位和可能的PDC状态(TPI)的总和:PDC可以保持在同一状态中或者基于事件来转换到更高的或断电的状态。例如,
总和==0,则PDC保持在同一状态中,到PDC状态机的所有事件选择器输出是低的。
总和==1,PDC进入OPC指定的状态。在这里有两个例外,这时PDC可能不按所指定的状态改变。当在PSO中且新状态是RVL或CSO时,PDC将保持在PSO中。当在RVL中且新状态是CSO时,PDC将保持在RVL中。
总和>1,PDC进入由PDC选择器指定的状态和来自OPC的可能的PDC状态。如果这不产生选择输出并且PDC不在由来自OPC的可能的PDC状态指定的状态之一中,则选择器输出OPR、PSO、RVL或CSO被迫使作为基于来自OPC的可能的PDC状态的选择。这将迫使在所有情况下的转变,除了当PDC在PSO中以及新合法情况是RVL和CSO时,这里PDC将保持在PSO中。
控制另一个OPC的操作点表条目可以可选地包含单个有效(VALID)位。该有效位定义该操作点的设置是否应被应用或者另一个OPC的先前设置是否应被保持。
这个特征的好处是,对于一些配置,可能需要较少的操作点来表达相同的功能。这被实现的一种方式是通过简单地合并除了电源域控制器或操作点控制器的状态之外其他相似的两个操作点。另一方式是在当前操作点没有有效设置或具有多个有效设置时,如果外部控制可以被直接应用于电源域控制器并且然后被遵从,则操作点可以被消除。
参考图1,OPC管理每个电路区域的i)开启/关闭门控状态和ii)不同操作频率中的至少一个。OPC被配置为能够1)具有单一控制以基于第一组硬件和/或软件事件来设置和管理给定电路区域的开启/关闭门控状态和操作频率,以及2)将控制委托给局部电源域控制器以基于第二组硬件和/或软件事件在每操作点基础上设置和管理i)在该电路区域中的部件的门控状态,ii)在该电路区域中的部件的不同操作频率,以及iii)两者的组合。该电路区域的多个操作点具有不同的操作电压电平和操作频率,并且当被委托时,局部电源域控制器将选择门控状态和/或操作频率。
操作点表存储多个操作点。一个或更多个操作点被传送到操作点控制器、局部电源域控制器或两者。第一操作点将OPC置于对该电路区域的门控状态的单一控制中。第二操作点为局部电源域控制器提供根据针对当前条件所识别的事件要选择处于的门控状态的子集。
OPC具有操作点事件选择器和一个或更多个操作点表。局部电源域控制器具有电源域事件选择器。事件矩阵被配置为收集进入的硬件和/或软件事件,并将它们分配到电源域事件选择器和操作点事件选择器。操作点状态控制器可以基于事件在操作点表中执行查找。当事件来自事件矩阵时,操作点状态控制器基于事件来在这些表中执行查找,并将操作点传递到局部电源域控制器。
参考图2,对于给定电路区域的第一操作点,OPC对某些电路具有电源状态的独立控制,并且局部电源域控制器对于该给定电路区域具有它自己的开启-关闭门控状态的选择或者在具有相关联的电压的至少两个不同操作频率之间的选择。
局部电源域控制器通过监控如在事件中指示的时间平均请求工作负载来管理广泛变化的工作负载。当工作负载不在最大值处时,第一用户定义的操作点使用动态电压频率调整来降低操作电压和频率。一旦电路达到较低的操作电压和/或频率,第二用户定义的操作点在低工作负载下允许局部电源域控制器使在电路区域中的一个或更多个电路切断电源。当在电路区域中的电路变得空闲时,第三用户定义的操作点允许局部电源域控制器对电路区域中的一个或更多个电路切断电源和/或关闭时钟。
操作点控制器的状态机
参考图3,控制OPC的状态机可以以许多不同的方式被配置,但它们都落在这两个类别内:丛集控制器和全OPC。
丛集控制器
状态机在被配置为丛集控制器时以适当的顺序对电源域控制器的集合和OPC进行排序。状态机被构造为状态的线性进程。这个顺序确保安全的操作点改变。为了启动状态机,监控“运行(RUN)”信号,且当是有效的时启用状态机。现在,它开始监控进入的目标性能索引(TPI)以找到任何改变。一旦检测到改变,第一任务就是执行最新选择的操作点的表查找。检查到目标索引的转换是否被允许,如果不被允许,则返回到空闲状态。如果被允许,则执行OPC成员的可选的组过滤。进入低电源状态(CSO、保持电压电平或电源关闭之一)的所有电源域控制器被转换。然后基于打开顺序列表,任何子操作点控制器以及进入操作状态的剩余电源域控制器可能一次被转换一个,直到组完成为止。然后状态机移动到下一组。当最后一个组完成时,状态机返回到空闲状态,更新当前性能索引并等待下一个目标性能索引改变。
全操作点控制器
全OPC的状态机以适当的顺序将电源域控制器、操作点控制器、电压资源和频率资源的集合排序。状态机以总是确保安全的操作点改变的方式被构造。这包括在频率的任何增加之前施加电压的任何增加以及在电压的任何降低之前施加频率的任何降低。
为了启动状态机,监控“运行”信号,且当是有效的时启用状态机。现在状态机开始监控进入的目标性能索引(TPI)和温度以找到任何改变。一旦在TPI上检测到改变,第一任务就是执行最新选择的操作点的表查找。检查到目标索引的转换是否被允许,如果不被允许,则返回到空闲状态。接下来,如果TPI或温度改变,则状态机基于TPI来查找电压、频率和温度(VFT)索引(如果被配置),并确定在VFT表存储器寄存器集中的表的起始位置。然后,VFT状态机基于温度输入来找到适当的电压和频率索引值,并返回这些值。
现在施加所有的电压增加,接着是所有的频率改变,且然后执行OPC成员的可选的组过滤。进入低电源状态(CSO、保持电压电平或电源关闭之一)的所有电源域控制器都被转换。然后基于打开顺序列表,任何子操作点控制器以及进入操作状态的剩余电源域控制器可能一次被转换一个,直到组完成为止。然后状态机移动到下一组。当最后一组完成时,状态机执行任何电压降低并返回到空闲状态,更新当前性能索引并等待下一个目标性能索引或温度改变。
再次参考图4,在操作点控制器中的状态机/控制器的流程图考虑下列项。在转换颗粒时,存在一些需要按电源域控制器的选择器附加物(additions)中的规定的方式被覆盖的几种极端情况。当电源域控制器在电源关闭状态中且下一个状态是CSO和保持电压电平时,电源域控制器将保持在电源关闭状态中。此外,当电源域控制器在保持电压电平状态中并且下一个状态是CSO时,电源域控制器将保持在保持电压电平状态中。如果该情况不是期望的,则配置状态机,使得在进入新的低电源状态之前,这种转换通过电源域控制器的OPR的中间状态。
状态机优化
回来参考图3,几个状态机优化可以根据它们在RTL中的实现的复杂性而被做出。如果温度改变并且因而产生的电压和频率索引不改变,则不启动状态机。不是看电压和频率索引改变只看表条目位置,可能比以前的优化更简单。如果只有温度改变,则跳过通过电源域控制器组按顺序排列的状态。跳过不包含任何成员的组。
电源域控制器和操作点控制器的分组
OPC具有按照丛集状态进行不同分组的能力。该能力在制造过程期间是运行时可编程的,然而仍然由压印到所制造的芯片中的逻辑来硬件排序。状态机为了可重编程性而使用寄存器。
在开始另一个电源域控制器或操作点控制器的转换之前将电源域控制器或另一个OPC完全转换到新状态有时在操作点内可能是必要的。最经常地,该要求将存在与两个电源域控制器之间。这是操作点控制器的可选特征。一个示例是SoC,其中互连可能需要在当处理器块从深度睡眠中被带出并开始恢复它的状态时的时间是充分起作用的。
为了实现这个,由操作点索引控制的每个电源域控制器或OPC可以包含组号;多达4个组被支持,且给定的电源域控制器或OPC可以对于不同的操作点被分配到不同的组中。这些组号充当顺序,该组的成员通过状态机按这个顺序被处理。当组0完成时,状态机移动到组1,依此类推,直到所有四个组都被处理为止,且然后返回到空闲状态。OPC的所有域默认被置于组0内,且未使用的任何组号可以被状态机跳过。
子操作点控制器属于单个组号,而子OPC在那个父操作点控制器的组中被处理。在处理子OPC时,该组所有子成员都通过它的四个组被排序。电压资源和频率资源不被置于组中,且基于它们在性能方面的增加或减少在组之前或之后被处理。
电源开关打开的顺序
参考图4,OPC具有跨越电源域控制器的组定义每丛集状态排序方案的能力。OPC连接到电源域控制器以在每状态分组的基础上以由集成电路的设计者可定义的特定顺序将电源域在较高和较低电源状态之间转换的适当排序编排到可编程寄存器中。
OPC可以可选地为它控制的每个电源域控制器按顺序打开电源开关。如果被启用,在该序列内的电源域控制器顺序可以被配置。该特征将允许供电网络不被过度设计来处理可能所有域同时打开的最坏情况。OPC可以根据成员电源域控制器和操作点控制器的编译时静态列表来控制这个。列表顺序将确定电源域控制器何时被允许打开它的电源开关。一旦电源域控制器完成它的电源关闭或保持电压电平转换状态,下一个成员将被允许继续进行它的电源关闭或保持电压电平转换状态。在实施例中,这在电源域控制器达到OPR状态时被实现。当OPC是在列表中的成员时,它将在将完成信号返回到包含的操作点控制器之前按顺序通过电源关闭或保持电压电平状态来转换它的所有包含的电源域控制器。如果多于一个目标操作点状态被设置,则打开顺序规则将不适用,且成员将在打开顺序列表之前转换。
具有组特征
如果组特征也被启用,则组顺序优先于打开列表顺序。因此,进入较低电源状态的所有组0成员都一起被更新且控制器等待它们完成,然后要进入OPR的成员以它们在打开顺序列表中列出的顺序转换,跳过不在组0中的成员。然后,系统移动到下一组并重复。一次打开一个域的同样的限制仍然被保持。如果多于一个目标操作点状态被设置,则打开顺序规则将不适用,并且成员将在它的组内的打开顺序之前转换。
图9A和图9B示出了具有独立的每CPU门控状态控制的可配置能力的OPC的实施例的电路图(9A)900和表(9B)905。图9C示出了仅正常状态的状态的示例表910,没有具有独立的每CPU门控状态控制的状态机。OPC状态机按照丛集分组具有不同状态。这个能力在制造过程期间是运行时可编程的。在集成电路上的第一电路区域包含中央处理单元的丛集。操作点控制器被配置为向丛集中的所有成员提供相同的频率和电压;然而,操作点控制器还被配置为经由按照丛集分组具有不同状态的可配置能力,对在那个电路区域中的中央处理单元的那个丛集中的当前不被任何应用软件需要的一些中央处理单元关闭时钟和电源。
示例电路区域具有带有四个CPU的CPU丛集,每个CPU都具有它们自己的指令和数据高速缓存。每个CPU的操作点支持两种不同的门控状态:操作(OPR)和电源门控(PSO)。注意,仅示出了电源门控开关,但其他电路需要存在以提供安全操作。丛集共享公共时钟源和电压源,其中每个源支持3个不同的值:关闭(OFF)(无时钟驱动,且VDD-VSS=0)、NORM(500MHz的时钟,VDD-VSS=1.0V)、TURBO(600MHz的时钟,VDD-VSS=1.2V)。
每个CPU从由操作系统分配的池中提供任务,运行它们直到完成(在OPR门控状态中)为止,且然后从池中抓取另一个任务。期望的情况是,当每个CPU在预定的时间间隔内发现没有要运行的任务时,它将被关闭电源(PSO)。这通过减少与CPU相关联的动态和静态电源来节省能量。
传统系统将建立CPU关闭的顺序。也许CPU3总是首先被关闭,然后是CPU2、CPU1,最后是CPU0。这简化了控制,但损害了性能并增加了能量消耗。例如,如果CPU2在CPU3运行任务时变得空闲,则OS需要将该任务迁移到CPU2,所以它可以关闭CPU3。迁移任务需要将任务的状态加载到CPU2中。虽然完成传输的最小架构状态可能只是几十个寄存器,但任务也可能使用在CPU3高速缓存中的指令和数据值。然后,迁移任务需要将脏数据(dirty data)从CPU3数据缓存冲到主存储器,然后当任务在CPU2上恢复时,它的指令或数据中没有一个将在CPU2的高速缓存中是可用的,因此该信息中的很多需要从主存储器中被重新加载。这些不需要的存储器操作浪费时间(因而降低性能)和能量。
如果替代地,OS(或硬件电源管理器)可以自由地单独改变每个CPU的门控状态,则这些浪费的性能和能量可以被重新利用。然而,以共享方式管理这种能力导致具有许多状态的软件和/或硬件状态机。在该示例中,因为有两种操作频率/电压组合(NORM和TURBO),所以填充有OP的表需要由每个CPU的独立选择产生的门控状态的16种组合乘以2。这个由此产生的状态机具有33种状态和在这些状态当中的许多可能的状态转换,其使设计和特别是验证变得复杂。
如果替代地,当电压和频率不是关闭的(OFF)时每个CPU可以是独立门控的,则状态机可以急剧收缩到三种状态,如在表9B中所示的。该状态机理解、设计和验证起来容易得多,同时提供同样的灵活性。对每个CPU的独立局部控制还允许门控转换并行地发生,在通电时提高性能,同时在断电时节省更多的功率。表9C示出了仅仅正常CPU所需的状态的扩展。
操作点事件选择器
参考图3,操作点事件选择器不同于电源域事件选择器,因为它为每个终端状态产生多位编码的目标性能索引信号而不是单独的位。选择器将支持多达6位TPI(目标性能索引)值以对应于64个不同的操作点和多达6个进入事件位。当运行位(RUN bit)首次被设置为高时或当之前的转换是成功的时,新的TPI被生成。
图6示出了具有操作点事件选择器和一个或更多个操作点表的OPC600的实施例的示意图。事件矩阵被配置为收集进入的硬件和/或软件事件,并将它们分配到电源域事件选择器和操作点事件选择器。
OPC具有操作点事件选择器和一个或更多个操作点表。局部电源域控制器具有电源域事件选择器。事件矩阵被配置为收集进入的硬件和/或软件事件,并将它们分配到电源域事件选择器和操作点事件选择器。操作点状态控制器可以基于事件在操作点表中执行查找。当事件来自事件矩阵时,则操作点状态控制器基于事件在这些表中执行查找,并将操作点传递到局部电源域控制器。
在OPC内部包括的选择器为状态机生成目标性能索引(TPI),并作为在操作点表中的索引。
也可以用两种方式配置事件选择器。在编译时完成该配置。具有单个方程或不同方程组的事件选择器的使用允许输入事件改变的可定制映射以进入不同的丛集状态:下面的单个选择器或下面的每操作点的选择器。
单个选择器
选择器可以被配置为对于所有当前操作点使用相同的事件选择器寄存器,且因而使用单独一组方程连同有效的寄存器以帮助选择器忽略事件组合。
每操作点的选择器
选择器可以被配置的第二种方式是基于当前操作点来使用不同组的事件选择器寄存器,且因而使用不同组的方程。这以一些额外的寄存器空间为代价给出了非常灵活的实现。
电压、频率和温度控制器
图5示出了为操作电压和频率提供温度补偿的VFT控制器500的实施例的示意图,其中VFT控制器基于OPC的操作点和多位温度输入来利用查找表以根据当前温度来产生适当的电压和频率索引值。
OPC具有与系统的被跟踪温度相比的组合的颗粒状态控制和电压和/或频率响应。如在频率、电压、温度控制器的硬件逻辑中定义的,“系统状态”包括每颗粒电源状态加上一个或更多个电压和频率水平。OPC可以包含多达四个VFT控制器。每个VFT控制器基于OPC的操作点和多位温度输入来提供查找机制以产生适当的电压和频率索引值。当OPC状态控制器在空闲状态中时,每当目标索引或温度输入改变时,VFT控制器必须重新评估所得到的资源索引值。
OPC具有VFT控制器以为操作电压和频率提供温度补偿。VFT控制器基于OPC的操作点和多位温度输入,利用查找表以根据当前温度来产生适当的电压和频率索引值。
OPC具有VFT控制器以与操作点表协作来便于在多个操作点当中共享VFT条目。操作点表包含指向每个操作点控制器操作点的VFT表存储器的指针,其中多于一个操作点条目可以使用相同的指针值。
在OPC中的VFT控制器设置与集成电路的被跟踪温度相比的操作电压和/或频率响应。OPC将1)期望的性能索引和/或2)当前被跟踪的温度转换成实现该性能索引所需的操作电压/频率,并且在操作期间动态地改变操作电压和/或频率响应以匹配该性能索引。
VFT控制器可以基于不同的多位温度输入进行操作。此外,多于一个VFT控制器可以为在同一操作点控制器内的同一资源生成索引值。同一资源的多个索引值的解析由共享资源仲裁器在下游处理。每个温度输入被同步到EPU时钟作为在事件矩阵块内的组。
对于除温度外还基于过程监视器来优化电压和频率的系统,人们可以基于所测量的工艺极限(process corner)来改变VFT表存储器条目,或者改变存储在VFT操作点表中的VFT表存储器指针。当VFT表存储器由于其他原因是可重新编程的(也许允许更严格的设计/特征裕度)时,第一种方法是有效的。第二种方法涉及对于每个工艺极限有多个VFT表存储器部分,这在VFT表存储器是只读的时候是有效的。
VFT表
示例示出了包含6个操作点(引导(Boot)、T1、T2、S1、S2和S3)的OPC。VFT操作点表包含指向每个OPC操作点的VFT表存储器的指针。多于一个操作点条目可以使用同一指针值。VFT表存储器是包含温度到电压和频率的实际映射表的地方。示例示出了三个表。每个表必须按降低的温度顺序排列,表中的最后一行的温度总是为零。
在VFT表存储器中的第一个表在指针值0处开始和结束。这是简单的条目,其总是在1.1v处运行VP0并在100MHz运行FP0。下一个表在指针值1处开始并被解释如下:如果温度大于等于50,则在1.1v处运行VP0并在300Mhz运行FP0,否则如果温度大于等于30,则在1.1v处运行VP0并在400Mhz运行FP0,否则如果温度大于等于0,则在1.1v处运行VP0并在500Mhz运行FP0。最后一个表在指针值4处开始并被解释如下:如果温度大于等于40,则在1.1v处运行VP0并在300Mhz运行FP0,否则如果温度大于等于20,则在1.0v处运行VP0并在300Mhz运行FP0,否则如果温度大于等于0,则在0.9v处运行VP0并在300Mhz运行FP0。
小的电压和频率与温度的关系表可以被分配到多个颗粒操作点。例如,图5中的T1和T2指向在硬件表中的条件的同一行。此外,硬件实现的表可以被组织为被排序的温度的列表。这导致非常简单的查找和比较功能。
VFT温度迟滞
温度迟滞选项按照VFT控制器被配置,并利用以符号幅度格式存储的寄存器值来配置要应用的迟滞的量。因此,OPC具有滞后(hysteresis lag)设置,使得当升高或降低系统的温度时,控制器必须接收来自传感器的信号,该信号指示在交换操作点之前要改变操作点的温度的设定点超过了设定的度数。这防止当系统的温度接近温度设定点时以循环方式快速改变操作点。
让我们看一看图5所示的示例,对于操作点T1,迟滞值为正5。60的起始温度将选择300Mhz的频率,当温度下降到50以下但高于29时,所选择的频率将为400Mhz。假设温度下降到40,那么所选择的频率是400Mhz。现在如果温度需要上升到55才能使频率再次下降回到300Mhz。
如果系统采用同一示例,但是对于操作点T1将迟滞值改变为负5。60的起始温度将选择300MHz的频率,当温度下降至45以下但高于24时,所选择的频率将为400MHz。假设温度下降到40,那么所选择的频率是400MHz。现在如果温度需要上升到50才能使频率再次下降回到300MHz。
示例实现的细节
存在要遵循的简单流程以实现迟滞功能。系统将具有都被复位到0的两个变量Srow(起始行)和Mrow(最后一个匹配行)。Vrow(临时变量行)。迟滞HysP和HysN是符号幅度数,所有其他变量都是无符号的。当需要VFT查找时,以这样的顺序执行下面的任务:
1.如果迟滞>0,则HysP=迟滞,否则HysP=0
2.如果迟滞<0,则HysN=迟滞,否则HysN=0
3.如果来自OPC查找的StartPointer不等于Srow,则
a.Mrow=0
4.Vrow=Srow=StartPointer
5.如果Vrow<Mrow,则
a.如果InputTemp>=(TableTemp+HysP),则
i.选择此行;Mrow=Vrow;退出
6.否则
a.如果InputTemp>=(TableTemp+HysN),则
i.选择此行;Mrow=Vrow;退出
7.end if(结束条件)
8.Vrow++
9.循环回到#5
重新编程行为
为了在操作期间对OPC重新编程,用户必须遵循这些步骤。将控制寄存器位设置为“运行(RUN)”并等待,直到OPC是空闲的为止。现在操作点表和选择器寄存器可以被重新编程。
一旦被重新编程,新的目标性能索引就可以经由手动(MANUAL)寄存器被设置。一旦被设置,刷新(REFRESH)操作就可以经由手动(MANUAL)寄存器被初始化,状态控制器将经由操作点表来将所有成员转换到如由新目标性能索引定义的它们的新状态。一旦该转换完成,就回到空闲(IDLE)状态,系统现在可以在控制(CONTROL)寄存器中设置运行(RUN)位以重新启用操作点控制器。
当操作点控制器的分级结构被配置时,在清除较低OPC的运行(RUN)位之前,有必要首先清除在顶部OPC控制器上的运行(RUN)位并等待所有转换完成(空闲状态)。为了重新启用OPC,最低级别OCP应首先被启用,后面是下一级别一直到最高级别。
寄存器
OPC块的寄存器。所有寄存器在宽度上都被定义为64位。
两个或更多个操作点控制器可以在具有大量电源域控制器的系统中被例示。分级结构可以存在于操作点控制器之间。操作点控制器的分级结构给出使丛集控制器级联以实现更大的丛集的能力。
OPC通过用户定义的状态来协调电源颗粒的集合的转换。这可以用来实现电源状态抽象。可选地,从操作点控制器提供目标电源域索引值。例如,在电源域控制器中的状态转换控制器(STC)可以从OPC接收目标域索引以迫使STC移动到低电源状态并保持在该状态(或较低状态)中,直到OPC移除该限制为止。该特征将允许OPC将电源域改变为时钟关闭、Rvl或Pso状态。这将允许OPC定义包括可能还没有在低电源状态中的电源域的操作点。
图8示出了由OPC或局部电源域控制器驱动的域性能索引800的寄存器的实施例的示意图。OPC当前域操作点寄存器包含包括多个位值的值。该寄存器包含由电源域控制器或操作点控制器驱动的当前域性能索引值。这些值可以在任何时间被读取。这些是域索引,因此它们对于PDC(按照状态PSO(3)、RVL(2)、CSO(1)、OPR(0)被编码)具有多达2位的值,或者对于另一个OPC具有多达7位的值。在示例中,实现如何由OPC委托到PDC。DPI告知PDC被允许进入的状态。该寄存器可以具有被映射到其他表和寄存器的值,所以多个资源可以使用相似的值和设置。
仿真和建模
图10示出了根据本文描述的系统和方法的用于生成具有一个或更多个操作点控制器的器件(例如集成电路)的过程的示例的实施例的流程图。用于生成具有互连的设计的器件的示例过程可以利用电子电路设计发生器(例如片上系统编译器)来形成电子设计自动化(EDA)工具集的一部分。硬件逻辑、编码软件以及两者的组合可以用于使用EDA工具集的实施例来实现下面的设计过程步骤。EDA工具集可以是单个工具或两个或更多个分立工具的汇集。表示本文讨论的电路的装置和/或方法的信息可以被包含在实例中(例如在单元库中、在电子电路设计发生器中的软指令中或在存储该信息的类似机器可读存储介质中)。存储在机器可读存储介质上的表示装置和/或方法的信息可以在创建装置或者装置的模型表示(例如仿真和光刻掩模)的过程中,和/或本文描述的方法中被使用。
此外,用于OPC的电子设计自动化开发工具产生关键的可交付成果,如IEEE-1801UPF输出文件,其精简(streamline)IP到客户设计的整合,同时确保在整个实现流程中的控制协议和电气一致性和正确性。最后,OPC为系统内软件提供丰富的支持以监控活动、调整电源管理优先级,且甚至每当需要时超驰控制(override)硬件机构。
通过基于共享事件对耦合的状态转换的硬件协调,生成已配置电源管理子系统的RTL和UPF视图连同基于UVM的验证测试平台(test bench)和由多个域控制器组成的所链接的子系统的自动的、配置相关的激励定义。
上述设计的方面可以是软件库的一部分,该软件库包含构成调度器和互连以及相关联部分的部件的一组设计。根据工业标准来开发库单元。包含设计元素的文件的库可以是单独地独立程序以及EDA工具集的一部分。
EDA工具集可以用于制造整体地管理输入和输出数据、控制、调试和测试流以及其他功能的高度可配置、可扩展的片上系统(SOC)块间通信系统。在实施例中,示例EDA工具集可以包括下列项:图形用户界面;处理元件的公共集;以及包含定义EDA工具集的设计元素(例如电路、控制逻辑和单元阵列)的文件的库。EDA工具集可以是由用于生成电路设计、测试该设计和/或将该设计的布局放置在目标芯片上可用的空间中的目的的多个算法和设计组成的一个或更多个软件程序。EDA工具集可以包括在一组可执行软件程序中的对象代码。EDA工具集的一组应用特定算法和接口可以由系统集成电路(IC)整合器(integrator)使用,来为特定应用快速创建单独的IP核或IP核的整个系统。EDA工具集提供每个部件的时序图、功率和面积方面,并使用被编码为表示部件的模型来进行仿真,以便运行实际操作和配置仿真。EDA工具集可以生成以适合在目标芯片上可用的空间中为目标的网表和布局。EDA工具集还可以将表示互连和逻辑电路的数据存储在机器可读存储介质上。机器可读介质可以具有存储在其上的数据和指令,指令当由机器执行时使机器生成上述物理部件的表示。该机器可读介质存储在片上系统设计过程中使用的电子设计自动化(EDA)工具集,并且这些工具具有数据和指令来生成这些部件的表示,以例示、验证、仿真和完成该设计的其他功能。
通常,EDA工具集在SOC设计的两个主要阶段中被使用:前端处理和后端编程。EDA工具集可以包括RTL发生器、逻辑合成脚本、全验证测试平台和SystemC模型中的一个或更多个。
前端处理包括设计和架构阶段,其包括SOC原理图的设计。前端处理可以包括在架构探索期间的连接模型、设计配置、仿真、测试和设计调整。该设计通常被仿真并测试。前端处理传统上包括在SOC内的电路的仿真以及它们应当正确地工作的验证。然后,经测试和验证的部件可以被存储为独立库的一部分或在芯片上的IP块的一部分。前端视图支持文档编制、仿真、调试和测试。
在块1205中,EDA工具集可以接收用户提供的文本文件,其具有描述配置参数和标签逻辑(tag logic)的至少一部分的设计的数据,该标签逻辑被配置为在线程内和跨越多个线程同时执行每线程和每标签存储器访问调度。该数据可以包括该IP块的一个或更多个配置参数。IP块描述可以是该IP块(例如互连、存储器调度器等)的整体功能。互连IP块和调度器的配置参数可以包括如前所述的参数。
EDA工具集接收用户提供的实现技术参数,例如实现该IP块的部件级制造的制造工艺、由在该技术中的单元占据的大小的估计、在该技术中实现的部件级逻辑的操作电压、在该技术中的标准单元的平均门延迟等。技术参数描述了预期实现技术的抽象。用户提供的技术参数可以是文本描述或者仅仅是响应于已知范围的可能性而提交的值。
EDA工具集可以通过为构成IP块设计的每个IP子部件创建抽象可执行表示来划分IP块设计。抽象可执行表示对每个IP子部件的TAP特性进行建模,并模拟与实际的IP块设计的特性相似的特性。模型可以聚焦于该IP块的一个或更多个行为特性。EDA工具集执行IP块设计的部分或全部的模型。EDA工具集概括并报告该IP块的所建模的行为特性的结果。EDA工具集还可以分析应用的性能,并允许用户提供IP块设计的新配置或具有新技术参数的功能描述。在用户对技术参数运行和所提供的IP设计参数的配置的迭代之一的性能结果满意之后,用户可以决定最终的IP核设计及它的相关联的技术参数。
EDA工具集将来自抽象可执行表示的结果与潜在的附加信息整合在一起来为IP块生成合成脚本。在总体性能和面积估计的结果被呈现给用户之后,EDA工具集可以提供合成脚本来为IP块建立各种性能和面积目标。
EDA工具集还可以基于用户提供的配置参数和实现技术参数来生成用于逻辑合成的那个IP块设计的RTL文件。如所讨论的,RTL文件可以是描述具有寄存器、布尔方程、控制逻辑(例如“if-then-else”语句)以及复杂事件序列的集合的电子电路的高级硬件描述。
在块1210中,在ASIC或SoC芯片设计中的单独设计路径被称为集成级。IP块的系统的集成可以与IP块的RTL文件和该IP块的合成脚本的生成并行地发生。
EDA工具集可以提供电路和逻辑门的设计以仿真并验证设计的操作是否正确地工作。系统设计者将一起工作的IP块的系统编码。EDA工具集生成上述电路的表示的仿真,这些电路可以在功能上被测试、被定时测试、调试和验证。EDA工具集仿真IP块的系统的行为。系统设计者验证并调试IP块的系统的行为。EDA工具集使用工具封装IP核。机器可读存储介质还可以存储测试生成程序的指令以生成外部测试器和互连的指令,来为本文描述的测试运行测试序列。在电子设计自动化的领域中的普通技术人员知道,设计工程师创建并使用不同的表示(例如软件编码模型),以帮助生成有形的有用信息和/或结果。这些表示中的很多可以是高级的(抽象的,且具有较少的细节)或自上而下的视图,并且可以用来帮助从系统级开始优化电子设计。此外,设计过程通常可以分为几个阶段,且在每个阶段结束时,对该阶段的定制表示通常作为输出被生成,并作为输入由下一阶段使用。熟练的工程师可以利用这些表示,并应用启发式算法来提高从最终阶段出来的最终结果的质量。这些表示允许电气设计自动化世界设计电路、测试并验证电路、从电路的网表和其他类似的有用结果导出光刻掩模。
接下来在块1215中,系统集成可以在集成电路设计过程中发生。后端编程通常包括SOC的物理布局的编程,例如在芯片布局上的电路元件的放置和布线或布图规划(floorplanning)以及在部件之间的所有金属线的布线。后端文件(例如布局、物理库交换格式(LEF)等)被生成用于布局和制造。
所生成的器件布局可以与芯片的布局的其余部分集成。逻辑合成工具接收IP核的合成脚本和IP核的RTL设计文件。逻辑合成工具还从单元库中接收在设计中使用的逻辑门的特性。可以生成RTL码以例示包含IP块的系统的SOC。可以仿真并验证具有固定RTL和合成脚本的IP块的系统。具有寄存器传输级(RTL)的设计的合成可以出现。逻辑合成工具合成RTL设计以创建门级网表电路设计(即构成所有IP子部件块的单独晶体管和逻辑门的描述)。该设计可以被输出到一个或更多个硬件设计语言(HDL)(例如Verilog、VHDL(超高速集成电路硬件描述语言)或SPICE(以集成电路为重点的仿真程序))的网表中。网表还可以描述例如在设计中包括的部件的电子设计的连通性,每个部件的属性以及在部件当中的互连性。EDA工具集便于部件的布图规划,包括在芯片上可用的空间中的部件放置的约束(例如在芯片上的XY坐标)的添加,并将这些部件的金属连接进行布线。EDA工具集提供根据IP核的这个表示产生的光刻掩模的信息以在制造期间将电路设计转移到芯片上,或上述电路的其他类似的有用的导出结果。因此,后端编程还可以包括布局的物理验证以验证它是在物理上可制造的,并且因而得到的SOC将不具有任何防止物理缺陷的功能。
在块1220中,制造设施可以利用从EDA工具集的电路设计和布局生成的光刻掩模来制造具有信号生成电路的一个或更多个芯片。制造设施可以使用具有最小线宽(例如1.0um、0.50um、0.35um、0.25um、0.18um、0.13um、0.10um、90nm、65nm或更小)的标准CMOS逻辑工艺来制造芯片。所采用的CMOS逻辑工艺的大小通常定义使用光刻掩模可以被制造在芯片上的最小的最小化光刻尺寸,这继而确定最小部件大小。根据一个实施例,包括X射线和极强紫外辐射的光可以穿过这些光刻掩模到达芯片上以将测试电路的电路设计和布局转移到芯片本身上。
EDA工具集可以具有图形用户界面的配置对话插件。EDA工具集可以具有SocComp的RTL发生器插件。EDA工具集可以具有SocComp的SystemC发生器插件。EDA工具集可以对可以被包括在RTL仿真中的部件执行单元级验证。EDA工具集可以具有测试验证测试平台发生器。EDA工具集可以具有虚拟和硬件调试端口跟踪文件的反汇编器。EDA工具集可以符合开放式核协议标准。EDA工具集可以具有事务器模型(Transactor model)、捆绑协议检查器(Bundle protocol checker)、显示套接字活动的OCP、分析捆绑的性能的OCPPerf2以及其他类似的程序。
如所讨论的,EDA工具集可以在软件中被实现为一组数据和指令,例如在可调用到其他程序的软件库中的实例或者由具有存储在机器可读介质上的一个程序中的软件单元库的可执行程序组成的EDA工具集。机器可读存储介质可以包括以由机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读介质可以包括但不限于:只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光学存储介质;闪存设备;DVD;EPROM;EEPROM;闪存(FLASH)、磁卡或光卡;或适合于存储电子指令的任何其他类型的介质。然而,机器可读存储介质不包括暂时性信号。指令和操作也可以在分布式计算环境中被实施,其中机器可读介质被存储在多于一个计算机系统上和/或由多于一个计算机系统执行。此外,可以在连接计算机系统的整个通信介质上拉取或推送在计算机系统之间传输的信息。
上面的详细描述的一些部分在对在计算机存储器中的数据位的操作的算法和符号表示方面被呈现。这些算法描述和表示是由在数据处理领域的技术人员用来最有效地将他们工作的实质传达给本领域中的其他技术人员的手段。算法在这里且通常被设想为导致期望结果的操作的前后一致的序列。这些操作是需要物理量的物理操纵的那些操作。通常,尽管不是必须地,但这些量采取能够被存储、传输、组合、比较和以其他方式操纵的电信号或磁信号的形式。例如,到CDF和来自CDF的消息的编码和解码可以在硬件、软件或硬件和软件的组合中被执行。主要由于常用的原因,将这些信号称为位、值、元素、符号、字符、项、数字等有时被证明是方便的。虽然已经示出了本发明的一些特定实施例,但是本发明不限于这些实施例。本发明被理解为不由本文描述的特定实施例进行限制,而是仅由所附权利要求的范围进行限制。
Claims (20)
1.一种装置,包括:
操作点控制器,其被配置为管理在集成电路中的一个或更多个电路区域的多个操作点之间的转换,其中,所述操作点控制器还被配置为
i)对于所述电路区域的至少第一电路区域,改变包括操作电压和操作频率的资源状态,并且其中所述资源状态由来自所述第一电路区域的多个操作点的当前选择的操作点确定,以及
ii)识别事件以发起在所述第一电路区域的所述多个操作点之间的转换,并且
其中,所述操作点控制器在硬件逻辑中实现,所述硬件逻辑识别事件并管理在所述多个操作点之间的转换,包括改变资源状态,而不需要任何软件来在任何中央处理器单元上操作。
2.根据权利要求1所述的装置,其中,所述操作点控制器的所述硬件逻辑包括操作点状态控制器和电压、频率、温度控制器,其中,所述操作点控制器还包括一个或更多个操作点表,其中,所述操作点状态控制器被配置为基于所述事件来在所述操作点表中执行查找,并且其中,所述电压、频率、温度控制器被配置为基于操作点信息来将所需的操作电压和操作频率信息发送到相应的系统资源,所述系统资源包括与特定电源域相关联的系统电压源和系统时钟。
3.根据权利要求2所述的装置,其中,所述操作点控制器的所述硬件逻辑还包括被配置为与事件矩阵协作的操作点事件选择器,其中,当事件从所述事件矩阵进入时,则所述操作点事件选择器将进入的事件映射到状态,并且该信息被传递到所述操作点状态控制器以基于所述事件来在所述操作点表中执行所述查找。
4.根据权利要求2所述的装置,其中,电压、频率、温度控制器信号被传递到电压协议和频率协议适配器,以提供在性能水平和实际机构、电压调节器和/或时钟发生器之间的转化,以对所述第一电路区域作出操作电压和操作频率改变,其中,所述电压协议和频率协议适配器经由所述电压调节器和/或时钟发生器提供的本地接口传递到所述实际机构。
5.根据权利要求1所述的装置,其中,所述操作点控制器被配置成与填充有两个或更多个电路区域的多个操作点的操作点表进行协作,其中,第一电路区域的多个操作点至少包括在具有相关联的不同操作电压的至少两个不同操作频率之间的选择,其中,与较低操作频率相关联的操作电压值不会提供足够的晶体管速度来允许所述第一电路区域在较高操作频率下适当地起作用。
6.根据权利要求1所述的装置,其中,所述操作点控制器被配置成用于所有下列操作:i)识别转换条件以发起操作点改变,ii)按顺序排列在那个电路区域中需要在操作点之间转换的电路,iii)按顺序排列支持相应的操作频率所需的操作电压,以及iv)向系统资源发送出控制信号以使在所述电路区域中的所述电路以电安全的方式实现新的操作点而没有不期望的电路状态的损失,其中,所有这些动作都在硬件控制下发生而不请求来自在CPU处理器上操作的任何软件的帮助。
7.根据权利要求1所述的装置,其中,在硬件逻辑中实现的所述操作点控制器比在CPU处理器上操作的所述软件允许状态的更快转换发生在电路区域中,其中,发生在所述电路区域中的状态的更快转换比缓慢的转换转化为在电池寿命方面更大的节省。
8.根据权利要求1所述的装置,其中,所述操作点控制器连接到电源域控制器以在每状态分组的基础上以由所述集成电路的设计者可定义的特定顺序来将所述电源域在较高电源状态和较低电源状态之间的转换的适当排序编排到可编程寄存器中。
9.根据权利要求1所述的装置,其中,两个或更多个操作点控制器连接到一个或更多个共享资源仲裁器,并且所述共享资源仲裁器被配置为在所述多个操作点控制器当中进行仲裁以确定待被提供给共享系统资源的操作电压和操作频率的值。
10.根据权利要求1所述的装置,其中,所述操作点控制器被配置为对于它控制的每个电源域控制器按顺序排列电源开关的开启,其中,所述操作点控制器被配置为将根据成员电源域控制器的编译时静态列表开启的电源域控制器的这个顺序进行排序,这将确定给定电源域控制器何时被允许相对于其他电源域控制器开启它的电源开关。
11.一种非暂时性机器可读介质,其具有在其上存储的数据和指令,所述指令当由机器执行时使所述机器生成权利要求1的所述装置的表示,其中,所述机器可读介质存储在片上系统设计过程中使用的电子设计自动化(EDA)工具集,所述电子设计自动化工具集具有所述数据和所述指令以生成所述装置的所述表示。
12.一种方法,包括:
配置操作点控制器以管理在集成电路中的一个或更多个电路区域的多个操作点之间的转换;
配置所述操作点控制器以
i)对于所述电路区域的至少第一电路区域,改变包括操作电压和操作频率的资源状态,并且其中所述资源状态由来自所述第一电路区域的多个操作点的当前选择的操作点确定,以及
ii)识别事件以发起在所述第一电路区域的所述多个操作点之间的转换,并且
其中,所述操作点控制器在硬件逻辑中实现,所述硬件逻辑识别事件并管理在所述多个操作点之间的转换,包括改变资源状态,而不需要任何软件来在任何中央处理器单元上操作。
13.一种从权利要求12的所述过程产生的操作点控制器。
14.根据权利要求12所述的方法,
配置所述操作点状态控制器以基于所述事件来在操作点表中执行查找,其中,所述操作点状态控制器耦合到一组一个或更多个电源域控制器,以基于所述查找来将来自所述操作点表的操作点信息传递到连接到所述操作点控制器的适当电源域控制器,以及
配置在所述操作点控制器中的电压、频率、温度控制器,以基于所述操作点信息来将所需的操作电压和操作频率信息发送到相应的系统资源,所述系统资源包括与特定电源域相关联的系统电压源和系统时钟。
15.根据权利要求14所述的方法,还包括:
配置在与电压协议和频率协议适配器通信的所述操作点控制器中的电压、频率、温度控制器,以提供在性能水平和实际机构、电压调节器和/或时钟发生器之间的转化,以对所述第一电路区域作出操作电压和操作频率改变,其中,所述电压协议和频率协议适配器经由所述电压调节器和/或时钟发生器提供的本地接口来传递到所述实际机构。
16.根据权利要求12所述的方法,还包括:
配置所述操作点控制器以与填充有两个或更多个电路区域的多个操作点的操作点表进行协作,其中,第一电路区域的多个操作点至少包括在具有相关联的不同操作电压的至少两个不同操作频率之间的选择,其中,与较低操作频率相关联的操作电压值不会提供足够的晶体管速度来允许所述第一电路区域在较高操作频率下适当地起作用。
17.根据权利要求12所述的方法,还包括:
配置所述操作点控制器用于所有下列操作:i)识别转换条件以发起操作点改变,ii)按顺序排列在那个电路区域中需要在操作点之间转换的电路,iii)按顺序排列支持相应的操作频率所需的操作电压,以及iv)向系统资源发送出控制信号以使在所述电路区域中的所述电路以电安全的方式实现新的操作点而没有不期望的电路状态的损失,其中,所有这些动作都在硬件控制下发生而不请求来自在CPU处理器上操作的任何软件的帮助。
18.根据权利要求12所述的方法,还包括:
配置所述操作点控制器以连接到电源域控制器以在每状态分组的基础上以由所述集成电路的设计者可定义的特定顺序来将所述电源域在较高电源状态和较低电源状态之间转换的适当排序编排到可编程寄存器中。
19.根据权利要求12所述的方法,还包括:
配置两个或更多个操作点控制器以连接到一个或更多个共享资源仲裁器,并且所述共享资源仲裁器在所述多个操作点控制器当中进行仲裁以确定待被提供给共享系统资源的操作电压和操作频率的值。
20.根据权利要求12所述的方法,还包括:
配置所述操作点控制器以对于它控制的每个电源域控制器按顺序排列电源开关的开启,其中,所述操作点控制器被配置为将根据成员电源域控制器的编译时静态列表开启的电源域控制器的这个顺序进行排序,这将确定给定电源域控制器何时被允许相对于其他电源域控制器开启它的电源开关。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762467617P | 2017-03-06 | 2017-03-06 | |
US62/467,617 | 2017-03-06 | ||
PCT/US2018/021076 WO2018165111A1 (en) | 2017-03-06 | 2018-03-06 | An operating point controller for circuit regions in an integrated circuit |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111630471A true CN111630471A (zh) | 2020-09-04 |
Family
ID=63444597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880030172.XA Pending CN111630471A (zh) | 2017-03-06 | 2018-03-06 | 在集成电路中的电路区域的操作点控制器 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10921874B2 (zh) |
EP (1) | EP3593225A4 (zh) |
CN (1) | CN111630471A (zh) |
WO (1) | WO2018165111A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113359935A (zh) * | 2021-06-10 | 2021-09-07 | 海光信息技术股份有限公司 | Soc电源域的电压调节方法、装置及存储介质 |
US11231769B2 (en) | 2017-03-06 | 2022-01-25 | Facebook Technologies, Llc | Sequencer-based protocol adapter |
WO2022052626A1 (zh) * | 2020-09-11 | 2022-03-17 | 华为技术有限公司 | 功耗管理的方法和相关设备 |
TWI805447B (zh) * | 2022-07-14 | 2023-06-11 | 新唐科技股份有限公司 | 控制裝置及其操作方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10599206B2 (en) * | 2017-06-02 | 2020-03-24 | Intel Corporation | Techniques to change a mode of operation for a memory device |
CN109739342B (zh) * | 2018-12-25 | 2022-04-26 | 华勤技术股份有限公司 | 一种电子设备 |
US11550917B2 (en) * | 2019-06-28 | 2023-01-10 | Intel Corporation | Standardized interface for intellectual property blocks |
CN112882819B (zh) * | 2019-11-29 | 2022-03-08 | 上海商汤智能科技有限公司 | 芯片工作频率的设置方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110127128A1 (en) * | 2009-11-30 | 2011-06-02 | Itt Manufacturing Enterprises, Inc. | Frequency tunable magnetic damping apparatus |
CN102646446A (zh) * | 2010-09-30 | 2012-08-22 | 苹果公司 | 硬件动态高速缓存电源管理 |
US20130073878A1 (en) * | 2011-09-19 | 2013-03-21 | Sonics, Inc. | Apparatus and methods for an interconnect power manager |
US20130311796A1 (en) * | 2010-08-31 | 2013-11-21 | Sonics, Inc. | Intelligent power controller |
US20140380071A1 (en) * | 2013-06-21 | 2014-12-25 | Apple Inc. | Dynamic Voltage and Frequency Management based on Active Processors |
Family Cites Families (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4189767A (en) | 1978-06-05 | 1980-02-19 | Bell Telephone Laboratories, Incorporated | Accessing arrangement for interleaved modular memories |
ATE185631T1 (de) | 1991-08-16 | 1999-10-15 | Cypress Semiconductor Corp | Dynamisches hochleistungsspeichersystem |
US5708659A (en) | 1993-10-20 | 1998-01-13 | Lsi Logic Corporation | Method for hashing in a packet network switching system |
US5860159A (en) | 1996-07-01 | 1999-01-12 | Sun Microsystems, Inc. | Multiprocessing system including an apparatus for optimizing spin--lock operations |
JP2000350447A (ja) | 1999-06-01 | 2000-12-15 | Sony Corp | 電源装置及び電源システム |
US6487621B1 (en) | 1999-08-17 | 2002-11-26 | Compaq Information Technologies Group, L.P. | Architecture, system and method for ensuring an ordered transaction on at least one of a plurality of multi-processor buses that experience a hit-to-modified snoop cycle |
US6820165B2 (en) | 2000-08-31 | 2004-11-16 | Hewlett-Packard Development Company, L.P. | System and method for increasing the count of outstanding split transactions |
US20040010652A1 (en) | 2001-06-26 | 2004-01-15 | Palmchip Corporation | System-on-chip (SOC) architecture with arbitrary pipeline depth |
US7194561B2 (en) | 2001-10-12 | 2007-03-20 | Sonics, Inc. | Method and apparatus for scheduling requests to a resource using a configurable threshold |
US20030088721A1 (en) | 2001-11-05 | 2003-05-08 | Sharma Debendra Das | Method and system for controlling flow of ordered, pipelined transactions between intercommunicating electronic devices |
US7194566B2 (en) | 2002-05-03 | 2007-03-20 | Sonics, Inc. | Communication system and method with configurable posting points |
US7100013B1 (en) | 2002-08-30 | 2006-08-29 | Nvidia Corporation | Method and apparatus for partial memory power shutoff |
US7120765B2 (en) | 2002-10-30 | 2006-10-10 | Intel Corporation | Memory transaction ordering |
US7243264B2 (en) | 2002-11-01 | 2007-07-10 | Sonics, Inc. | Method and apparatus for error handling in networks |
EP1568036B1 (en) | 2002-11-20 | 2008-08-27 | Nxp B.V. | Sdram address mapping optimized for two-dimensional access |
FR2857114B1 (fr) | 2003-07-04 | 2005-09-30 | Arteris | Systeme et procede de communication entre des modules |
FR2858895B1 (fr) | 2003-08-13 | 2006-05-05 | Arteris | Procede et dispositif de gestion de priorite lors de la transmission d'un message |
US7296105B2 (en) | 2003-10-03 | 2007-11-13 | Sonics, Inc. | Method and apparatus for configuring an interconnect to implement arbitration |
US7665069B2 (en) | 2003-10-31 | 2010-02-16 | Sonics, Inc. | Method and apparatus for establishing a quality of service model |
US8407433B2 (en) | 2007-06-25 | 2013-03-26 | Sonics, Inc. | Interconnect implementing internal controls |
FR2862457B1 (fr) | 2003-11-13 | 2006-02-24 | Arteris | Systeme et procede de transmission d'une sequence de messages dans un reseau d'interconnexions. |
FR2865334B1 (fr) | 2004-01-21 | 2006-03-03 | Arteris | Procede et systeme de transmission de messages dans un reseau d'interconnexions. |
FR2867338B1 (fr) | 2004-03-02 | 2007-08-10 | Arteris | Procede et dispositif de commutation entre des agents |
WO2005125012A1 (en) | 2004-06-15 | 2005-12-29 | Koninklijke Philips Electronics N.V. | Adaptive control of power supply for integrated circuits |
TWI254856B (en) | 2004-10-29 | 2006-05-11 | Via Tech Inc | Memory interleave method |
US7155554B2 (en) | 2004-11-02 | 2006-12-26 | Sonics, Inc. | Methods and apparatuses for generating a single request for block transactions over a communication fabric |
US7461190B2 (en) | 2005-08-11 | 2008-12-02 | P.A. Semi, Inc. | Non-blocking address switch with shallow per agent queues |
US7616036B1 (en) | 2005-09-12 | 2009-11-10 | Virage Logic Corporation | Programmable strobe and clock generator |
FR2893471B1 (fr) | 2005-11-16 | 2008-01-25 | Arteris Sa | Systeme et procede de routage statique de flux de paquets de donnees dans un reseau d'interconnexion |
US7516428B2 (en) * | 2006-05-11 | 2009-04-07 | Sige Semiconductor (Europe) Limited | Microwave circuit performance optimization by on-chip digital distribution of operating set-point |
FR2904445B1 (fr) | 2006-07-26 | 2008-10-10 | Arteris Sa | Systeme de gestion de messages transmis dans un reseau d'interconnexions sur puce |
US7680988B1 (en) | 2006-10-30 | 2010-03-16 | Nvidia Corporation | Single interconnect providing read and write access to a memory shared by concurrent threads |
US8020124B2 (en) | 2006-11-20 | 2011-09-13 | Sonics, Inc. | Various methods and apparatuses for cycle accurate C-models of components |
US20080235421A1 (en) | 2007-03-22 | 2008-09-25 | Siva Shankar Jayaratnam | Technique and apparatus to optimize inter-port memory transaction sequencing on a multi-ported memory controller unit |
US8108648B2 (en) | 2007-06-25 | 2012-01-31 | Sonics, Inc. | Various methods and apparatus for address tiling |
US8712461B2 (en) | 2007-08-10 | 2014-04-29 | Qualcomm Incorporated | Autonomous adaptation of transmit power |
US7818497B2 (en) | 2007-08-31 | 2010-10-19 | International Business Machines Corporation | Buffered memory module supporting two independent memory channels |
US8229723B2 (en) | 2007-12-07 | 2012-07-24 | Sonics, Inc. | Performance software instrumentation and analysis for electronic design automation |
US8073820B2 (en) | 2008-04-07 | 2011-12-06 | Sonics, Inc. | Method and system for a database to monitor and analyze performance of an electronic design |
US8032329B2 (en) | 2008-09-04 | 2011-10-04 | Sonics, Inc. | Method and system to monitor, debug, and analyze performance of an electronic design |
US8127160B2 (en) * | 2008-10-13 | 2012-02-28 | International Business Machines Corporation | Dynamic frequency and voltage scaling for a computer processor |
US8190804B1 (en) | 2009-03-12 | 2012-05-29 | Sonics, Inc. | Various methods and apparatus for a memory scheduler with an arbiter |
US8271812B2 (en) | 2010-04-07 | 2012-09-18 | Apple Inc. | Hardware automatic performance state transitions in system on processor sleep and wake events |
US8972995B2 (en) | 2010-08-06 | 2015-03-03 | Sonics, Inc. | Apparatus and methods to concurrently perform per-thread as well as per-tag memory access scheduling within a thread and across two or more threads |
US8438306B2 (en) | 2010-11-02 | 2013-05-07 | Sonics, Inc. | Apparatus and methods for on layer concurrency in an integrated circuit |
US9405700B2 (en) | 2010-11-04 | 2016-08-02 | Sonics, Inc. | Methods and apparatus for virtualization in an integrated circuit |
KR101041575B1 (ko) | 2010-12-20 | 2011-06-15 | 김춘기 | 돼지족발과 제피를 이용한 건강 보조 식품 제조 방법 및 그 조성물 |
US8711867B2 (en) | 2011-08-26 | 2014-04-29 | Sonics, Inc. | Credit flow control scheme in a router with flexible link widths utilizing minimal storage |
US8514889B2 (en) | 2011-08-26 | 2013-08-20 | Sonics, Inc. | Use of common data format to facilitate link width conversion in a router with flexible link widths |
US8798038B2 (en) | 2011-08-26 | 2014-08-05 | Sonics, Inc. | Efficient header generation in packetized protocols for flexible system on chip architectures |
US9910454B2 (en) | 2012-06-07 | 2018-03-06 | Sonics, Inc. | Synchronizer with a timing closure enhancement |
US10303628B2 (en) | 2014-12-19 | 2019-05-28 | Sonics, Inc. | Reordering responses in a high performance on-chip network |
US10152112B2 (en) | 2015-06-10 | 2018-12-11 | Sonics, Inc. | Power manager with a power switch arbitrator |
-
2018
- 2018-03-06 US US15/912,934 patent/US10921874B2/en active Active
- 2018-03-06 US US15/912,953 patent/US10901490B2/en active Active
- 2018-03-06 EP EP18764833.2A patent/EP3593225A4/en not_active Withdrawn
- 2018-03-06 CN CN201880030172.XA patent/CN111630471A/zh active Pending
- 2018-03-06 WO PCT/US2018/021076 patent/WO2018165111A1/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110127128A1 (en) * | 2009-11-30 | 2011-06-02 | Itt Manufacturing Enterprises, Inc. | Frequency tunable magnetic damping apparatus |
US20130311796A1 (en) * | 2010-08-31 | 2013-11-21 | Sonics, Inc. | Intelligent power controller |
CN102646446A (zh) * | 2010-09-30 | 2012-08-22 | 苹果公司 | 硬件动态高速缓存电源管理 |
US20130073878A1 (en) * | 2011-09-19 | 2013-03-21 | Sonics, Inc. | Apparatus and methods for an interconnect power manager |
US20140380071A1 (en) * | 2013-06-21 | 2014-12-25 | Apple Inc. | Dynamic Voltage and Frequency Management based on Active Processors |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11231769B2 (en) | 2017-03-06 | 2022-01-25 | Facebook Technologies, Llc | Sequencer-based protocol adapter |
WO2022052626A1 (zh) * | 2020-09-11 | 2022-03-17 | 华为技术有限公司 | 功耗管理的方法和相关设备 |
CN113359935A (zh) * | 2021-06-10 | 2021-09-07 | 海光信息技术股份有限公司 | Soc电源域的电压调节方法、装置及存储介质 |
TWI805447B (zh) * | 2022-07-14 | 2023-06-11 | 新唐科技股份有限公司 | 控制裝置及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US20180260018A1 (en) | 2018-09-13 |
EP3593225A1 (en) | 2020-01-15 |
WO2018165111A1 (en) | 2018-09-13 |
US10921874B2 (en) | 2021-02-16 |
US10901490B2 (en) | 2021-01-26 |
EP3593225A4 (en) | 2020-03-18 |
US20180260017A1 (en) | 2018-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10901490B2 (en) | Operating point controller for circuit regions | |
US9310867B2 (en) | Intelligent power controller | |
EP2758845B1 (en) | Apparatus and methods for an interconnect power manager | |
Flynn et al. | Low power methodology manual: for system-on-chip design | |
US8176453B2 (en) | Power-aware debugging | |
CN107850927B (zh) | 具有功率开关仲裁器的功率管理器 | |
US11231769B2 (en) | Sequencer-based protocol adapter | |
US20140298068A1 (en) | Distribution of power gating controls for hierarchical power domains | |
Zhang et al. | High-level synthesis for low-power design | |
US20130346926A1 (en) | Automatic optimal integrated circuit generator from algorithms and specification | |
Peterson et al. | Fully-automated Synthesis of Power Management controllers from UPF | |
Kozhikkottu et al. | Recovery-based design for variation-tolerant SoCs | |
Srivastava et al. | Low Power SoC Verification: IP Reuse and Hierarchical Composition using UPF | |
Groma et al. | Simplified introduction of power intent into a register-transfer level model | |
Barkalov et al. | Design of Embedded Systems | |
Shannon et al. | Leveraging reconfigurability in the hardware/software codesign process | |
Macko | PMHLS 2.0: An automated optimization of power management during high-level synthesis | |
Fanni | Power and Energy Management in Coarse-Grained Reconfigurable Systems: methodologies, automation and assessments | |
Athanasiadis et al. | Novel Method of ASIC interface IP development using HLS | |
Mukherjee et al. | Autonomous Power Management in Embedded Multi-Cores | |
Kissler | Power-efficient tightly-coupled processor arrays for digital signal processing | |
Madhavaram | Low Power ASIC Design Using Synopsys Tools | |
Kurimoto et al. | Verification work reduction methodology in low-power chip implementation | |
Goswami et al. | Re-target-able software power management framework using SoC data auto-generation | |
Mbarek | An electronic system level modeling approach for the design and verification of low-power systems-on chip |
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 | ||
CB02 | Change of applicant information |
Address after: California, USA Applicant after: Yuan Platform Technology Co.,Ltd. Address before: California, USA Applicant before: Facebook Technologies, LLC |
|
CB02 | Change of applicant information | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200904 |
|
WD01 | Invention patent application deemed withdrawn after publication |