CN100517176C - 实现热调节逻辑的数据处理系统和方法 - Google Patents

实现热调节逻辑的数据处理系统和方法 Download PDF

Info

Publication number
CN100517176C
CN100517176C CNB2007101046479A CN200710104647A CN100517176C CN 100517176 C CN100517176 C CN 100517176C CN B2007101046479 A CNB2007101046479 A CN B2007101046479A CN 200710104647 A CN200710104647 A CN 200710104647A CN 100517176 C CN100517176 C CN 100517176C
Authority
CN
China
Prior art keywords
temperature
heat management
register
interrupt
sensor
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.)
Active
Application number
CNB2007101046479A
Other languages
English (en)
Other versions
CN101093412A (zh
Inventor
C·R·约翰斯
王帆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US11/425,472 external-priority patent/US7721128B2/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101093412A publication Critical patent/CN101093412A/zh
Application granted granted Critical
Publication of CN100517176C publication Critical patent/CN100517176C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

提供了一种用于实现热调节逻辑的计算机实现的方法、数据处理系统和处理器。从数字热传感器接收感应温度值,该感应温度值表示集成电路中与该数字热传感器关联的单元的当前温度。报告该感应温度,作为状态寄存器中的当前温度。作为对当前温度超过第一预定值的响应,调节集成电路中的单元。

Description

实现热调节逻辑的数据处理系统和方法
技术领域
本申请一般地涉及对热管理的使用。更特别地,本申请涉及一种用于实现热调节逻辑的计算机实现的方法、数据处理系统和处理器。
背景技术
第一代异质Cell Broadband EngineTM(BE)处理器是包括一个64比特的Power
Figure C20071010464700041
处理器内核和八个单指令多数据(SIMD)协处理器内核的多内核芯片,能够进行大规模浮点处理,针对运算密集型工作负载和宽带富媒体应用而进行了优化。高速存储控制器和高带宽总线接口也集成到芯片上。Cell BE的突破性多内核体系结构和超高速通信能力在很多情况下以最新PC处理器性能的10倍递送大大改善的实时响应。Cell BE是操作系统中立的并同时支持多个操作系统。这种类型的处理器的应用的范围可以从具有显著增强的真实感的下一代游戏系统,到形成家庭数字媒体和流式传送内容中心(hub)的系统,到用于开发和分布数字内容的系统,并且到加速可视化和超级计算应用的系统。
现在的多内核处理器常常受到热考虑的限制。典型的解决方案包括冷却和电源管理。冷却可能是昂贵的并且/或者难以整合。功率管理一般是粗略的措施,作为对达到热限度的响应,对处理器的很大一部分或整个处理器进行“调节”。诸如热管理之类的其他技术通过只调节超过给定温度的单元来帮助实现这些粗略措施。但是,多数热管理技术会影响应用的实时保证。因此,提供热管理解决方案是有益的,该解决方案为处理器提供一种方法,用以在即使出现需要调节处理器的热状况的情况下也保证应用的实时性。在不能满足实时保证的情况下,通知应用管理者使得可以实现纠正措施。
发明内容
说明性实施例的不同方面提供了一种用于记录集成电路中的最大温度的计算机实现的方法、数据处理系统和处理器。说明性实施例从数字热传感器接收感应温度值,该感应温度值表示集成电路中与数字热传感器关联的单元的当前温度。说明性实施例报告感应温度,作为状态寄存器中的当前温度。作为对当前温度超过第一预定值的响应,说明性实施例调节集成电路中的至少一个单元。
附图说明
在所附权利要求中阐明了确信是说明性实施例所特有的新颖特征。但是,在结合附图阅读时,参考下面对说明性实施例的详细描述,可以最好地理解说明性实施例本身以及其优选的使用模式、进一步的目的及优势,其中:
图1描述了可以实现说明性实施例各方面的数据处理系统的网络的图示;
图2描述了可以实现说明性实施例各方面的数据处理系统的框图;
图3描述了可以实现说明性实施例各方面的Cell BE芯片的示例性示图;
图4示出了根据说明性实施例的示例性热管理系统;
图5描述了根据说明性实施例的温度曲线图以及可能发生中断和动态调节的各个点;
图6描述了根据说明性实施例的用于记录最大温度的操作的流程图;
图7描述了根据另一个说明性实施例的用于通过性能监控来跟踪热数据的操作的流程图;
图8A和图8B描述了根据另外的说明性实施例的针对高级热中断产生的操作的流程图;
图9描述了根据另外的说明性实施例的用于在热管理系统中支持深度节能模式和部分良好的操作的流程图;
图10描述了根据另外的说明性实施例的针对使热感知软件应用的实时测试能够与温度相独立的热调节控制特征的操作的流程图;
图11描述了根据另外的说明性实施例的用于实现对中断等待时间影响最小的热调节控制的操作的流程图;
图12描述了根据另外的说明性实施例的用于热调节中的滞后的操作的流程图;以及
图13描述了根据另外的说明性实施例的用于实现热调节逻辑的操作的流程图。
具体实施方式
说明性实施例涉及对热调节逻辑的实现。图1-图2被提供为可以实现说明性实施例的数据处理环境的示例性示图。应当理解,图1-图2只是示例性的,并非旨在明确或暗示任意关于可以实现实施例各方面的环境的限制。在不偏离说明性实施例的精神和范围的情况下,可以对所描述的环境进行很多修改。
现在参考附图,图1描述了可以实现说明性实施例各方面的数据处理系统的网络的图示。网络数据处理系统100是可以实现说明性实施例的计算机网络。网络数据处理系统100包含网络102,该网络102是一种用于在网络数据处理系统100内连接在一起的各种设备和计算机之间提供通信链路的媒介。网络102可以包括诸如线缆、无线通信链路或光纤电缆之类的连接。
在所描述的示例中,服务器104和服务器106连接到网络102和随之的存储单元108。另外,客户端110、112和114连接到网络102。这些客户端110、112和114可以是例如个人计算机或网络计算机。在所描述的示例中,服务器104向客户端110、112和114提供诸如启动文件、操作系统映像和应用之类的数据。在该示例中,客户端110、112和114是服务器104的客户端。网络数据处理系统100可以包括附加的服务器、客户端和没有示出的其他设备。
在所描述的示例中,网络数据处理系统100是具有网络102的因特网,网络102表示使用传输控制协议/网际协议(TCP/IP)协议组来相互通信的网络和网关的全球集合。在因特网的中心是主节点或主机之间的高速数据通信线路骨干,包括数以千计的商业计算机系统、政府计算机系统、教育计算机系统和其他对数据和消息进行路由的计算机系统。当然,网络数据处理系统100还可以实现为多种不同类型的网络,诸如内网、局域网(LAN)或广域网(WAN)。图1旨在作为一个示例,而不是作为对不同说明性实施例的体系结构限制。
现在参考图2,示出了可以实现说明性实施例各方面的数据处理系统的框图。数据处理系统200是诸如图1中的服务器104或客户端110之类的计算机的示例,实现说明性实施例的处理的计算机可用代码或指令可以位于该计算机中。
在所描述的示例中,数据处理系统200采用中心体系结构,包括北桥和存储控制器中心(MCH)202以及南桥和输入/输出(I/O)控制器中心(ICH)204。处理单元206、主存储器208和图形处理器210连接到北桥和存储控制器中心202。图形处理器210可以通过加速图形端口(AGP)连接到北桥和存储控制器中心202。
在所描述的示例中,LAN适配器212连接到南桥和I/O控制器中心204。音频适配器216、键盘和鼠标适配器220、调制解调器222、只读存储器(ROM)224、硬盘驱动器(HDD)226、CD-ROM驱动器230、通用串行总线(USB)端口和其他通信端口232、以及PCI/PCIe设备234通过总线238和总线240连接到南桥和I/O控制器中心204。PCI/PCIe设备可以包括例如以太网适配器、插入卡和笔记本计算机的PC卡。PCI使用卡总线控制器,而PCIe则不使用。ROM 224可以是例如闪速二进制输入/输出系统(BIOS)。
硬盘驱动器226和CD-ROM驱动器230通过总线240连接到南桥和I/O控制器中心204。硬盘驱动器226和CD-ROM驱动器230可以使用例如集成驱动电子设备(IDE)或串行高级技术附件(SATA)接口。超级I/O(SIO)设备236可以连接到南桥和I/O控制器中心204。
操作系统在处理单元206上运行并且调整和提供对图2中的数据处理系统200内的各种组件的控制。作为客户端,操作系统可以是市面上有售的操作系统,诸如
Figure C20071010464700081
XP(Microsoft和Windows是微软公司在美国、其他国家或同时在美国和其他国家的商标)。诸如JavaTM编程系统之类的面向对象编程系统可以结合操作系统而运行,并提供从在数据处理系统200上执行的Java程序或应用对操作系统的调用(Java是Sun微系统公司在美国、其他国家或同时在美国和其他国家的商标)。
作为服务器,数据处理系统200可以是例如运行高级交互执行(
Figure C20071010464700082
)操作系统或LINUX操作系统的IBM eServerTM p
Figure C20071010464700083
计算机系统(eServer、pSeries和AIX是国际商业机器公司在美国、其他国家或同时在美国和其他国家的商标,而Linux是Linux Torvalds在美国、其他国家或同时在美国和其他国家的商标)。数据处理系统200可以是在处理单元206中包括多个处理器的对称多处理器(SMP)系统。作为选择,可以采用单处理器系统。
操作系统、面向对象的编程系统以及应用或程序的指令位于诸如硬盘驱动器226之类的存储设备上,并且可以被载入主存储器208以供处理单元206执行。说明性实施例的处理由处理单元206使用计算机可用程序代码来执行,这些代码可以位于诸如主存储器208、只读存储器224之类的存储器中,或位于一个或多个外围设备226和230中。
本领域的普通技术人员应当理解,根据不同的实现,图1-图2中的硬件可以变化。可以使用诸如闪速存储器、等效非易失性存储器或光盘驱动器等其他内部硬件或外围设备来补充或代替图1-图2中所描述的硬件。同样,说明性实施例的处理还可以应用于多处理器数据处理系统。
在一些说明性示例中,数据处理系统200可以是个人数字助理(PDA),该个人数字助理配置有闪速存储器以提供用于存储操作系统文件和/或用户生成的数据的非易失性存储器。
总线系统可以包括一个或多个总线,诸如图2中示出的总线238或总线240。当然,可以使用任意类型的通信架构或体系结构来实现总线系统,该架构或体系结构提供对附在该架构或体系结构上的不同组件或设备之间的数据的传送。通信单元可以包括一个或多个用于发送或接收数据的设备,诸如图2的调制解调器222或网络适配器212。存储器可以是例如主存储器208、只读存储器224或诸如在图2中的北桥和存储控制器中心202中见到的高速缓存。图1-图2中所描述的示例及上述示例并非意味着暗示体系结构限制。例如,除了采取PDA的形式之外,数据处理系统200还可以是写字板计算机、膝上型计算机或电话设备。
图3描述了可以实现说明性实施例各方面的Cell BE芯片的示例性示图。Cell BE芯片300是针对分布式处理的单芯片多处理器实现,该分布式处理的目标在于诸如游戏控制台、桌面系统和服务器之类的富媒体应用。
Cell BE芯片300可以在逻辑上分成以下功能组件:Power
Figure C20071010464700091
处理器单元(PPE)301、协处理器单元(SPU)310、311和312、以及存储器流控制器(MFC)305、306和307。尽管通过示例示出了协处理器单元(SPE)302、303和304以及PPE 301,但是可以支持任意类型的处理器单元。尽管图3只示出了三个SPE 302、303和304,但示例性的Cell BE芯片300的实现包括一个PPE 301和八个SPE。CELL处理器的SPE是设计为加速媒体和数据流工作负载的新处理器体系结构的第一实现。
Cell BE芯片300可以是片上系统,使得可以在单个微处理器芯片上提供图3所示的每一个单元。此外,Cell BE芯片300是一种异质处理环境,其中每个SPU 310、311和312可以从系统中的每个其他SPU接收不同的指令。此外,SPU 310、311和312的指令集与Power
Figure C20071010464700092
处理器单元(PPU)308的指令集不同,例如,PPU 308可以在PowerTM体系结构中执行基于精简指令集计算机(RISC)的指令,而SPU 310、311和312执行向量化的指令。
每个SPE包括一个SPU 310、311或312,它自己的本地存储(LS)区域313、314或315和具有关联的存储管理单元(MMU)316、317或318的专用MFC 305、306或307保存并处理存储器保护和访问许可信息。同样,尽管通过示例示出了SPU,但是可以支持任意类型的处理器单元。另外,Cell BE芯片300实现单元互连总线(EIB)319和其他I/O结构以实现片上和外部数据流。
EIB 319用作PPE 301以及SPE 302、303和304的主片上总线。另外,EIB 319与专用于片外(off-chip)访问的其他片上接口控制器进行接口连接。片上接口控制器包括存储接口控制器(MIC)320和Cell BE接口单元(BEI)323,其中MIC 320提供两个极速数据速率I/O(XIO)存储通道321和322,BEI 323为Cell BE 300提供两个高速外部I/O通道和内部中断控制。BEI 323实现为总线接口控制器(BIC,标注为BIC0和BIC1)324和325以及I/O接口控制器(IOC)326。两个高速外部I/O通道连接到Redwood
Figure C20071010464700101
Asic Cell(RRAC)接口的一端,该接口为Cell BE 300提供灵活的输入和输出(FlexIO_0和FlexIO_1)353。
每个SPU 310、311或312都有对应的LS区域313、314或315以及协执行单元(SXU)354、355或356。每个单独的SPU 310、311或312只能从与它关联的LS区域313、314或315内执行指令(包括数据加载和存储操作)。由于这个原因,MFC直接存储器访问(DMA)操作通过SPU的310、311和312专用的MFC 305、306和307来执行所有需要的去往或来自系统中其他地方的存储器的数据传送。
在SPU 310、311或312上运行的程序只使用LS地址来引用它自己的LS区域313、314或315。但是,还为每个SPU的LS区域313、314或315分配一个在整个系统的存储映射内的真实地址(RA)。该RA是设备将响应的地址。在Power
Figure C20071010464700102
中,应用通过有效地址(EA)来引用存储位置(或设备),然后该EA被映射成存储位置(或设备)的虚拟地址(VA),然后该VA被映射为RA。EA是由应用用来引用存储器和/或设备的地址。这种映射使操作系统能够分配比系统中物理上更多的存储器(也就是称为VA的虚拟存储器)。存储映射是系统中所有设备(包括存储器)和它们对应的RA的列表。存储映射是对标识设备或存储器将响应的RA的真实地址空间的映射。
这使特权软件能够将LS区域映射到处理器的EA以在一个SPU的LS和另一个SPU的LS区域之间实现直接存储器访问传送。PPE 301还可以使用EA来直接访问任意SPU的LS区域。在Power
Figure C20071010464700111
中有三个状态(问题、特权和管理)。特权软件是在特权或管理状态下运行的软件。这些状态有不同的访问特权。例如,特权软件可以访问用于将真实存储器映射成应用的EA的数据结构寄存器。问题状态是在运行应用并通常被禁用访问系统管理资源(诸如用于映射真实存储器的数据结构)时处理器通常所处的状态。
MFC DMA数据命令始终包括一个LS地址和一个EA。DMA命令将存储内容从一个位置复制到另一个位置。在这种情况下,MFC DMA命令在EA和LS地址之间复制数据。LS地址直接指向与MFC命令队列对应的关联的SPU 310、311或312的LS区域313、314或315。命令队列是MFC命令的队列。有一个队列用来保存来自SPU的命令,一个队列用来保存来自PXU或其他设备的命令。但是可以安排或映射EA以访问系统中的任意其他存储器存储区域,包括其他SPE 302、303和304的LS区域313、314和315。
主存储器(没有示出)由诸如图2所示出的系统之类的系统中的PPU 308、PPE 301、SPE 302、303和304以及I/O设备(没有示出)共享。所有保存在主存储器中的信息对系统中的所有处理器和设备来说是可见的。程序使用EA来引用主存储器。由于MFC代理命令队列、控制和状态设施具有RA,并且使用EA来映射RA,所以Power处理器单元可能在关联的SPE 302、303和304的主存储器和本地存储器之间使用EA来初始化DMA操作。
作为示例,当在SPU 310、311或312上运行的程序需要访问主存储器时,SPU程序生成具有适当的EA和LS地址的DMA命令并将其放置到它的MFC 305、306或307的命令队列中。在命令被SPU程序放置到队列中之后,MFC 305、306或307执行该命令并在LS区域和主存储器之间传送所需要的数据。MFC 305、306或307为由诸如PPE 301之类的其他设备生成的命令提供第二代理命令队列。MFC代理命令队列典型地用于在启动SPU之前将程序存储到本地存储中。MFC代理命令还可以用于上下文存储操作。
EA地址为MFC提供了一个可以由MMU转换为RA的地址。转换处理考虑到系统存储器的虚拟化和对在真实地址空间中的存储器和设备的访问保护。由于LS区域被映射成真实地址空间,因此EA还可以指向所有的SPU LS区域。
Cell BE芯片300上的PPE 301包括64比特的PPU 308和Power
Figure C20071010464700121
存储子系统(PPSS)309。PPU 308包含处理器执行单元(PXU)329、一级(L1)高速缓存330、MMU 331和替换管理表(RMT)332。PPSS309包括可高速缓存接口单元(CIU)333、不可高速缓存单元(NCU)334、二级(L2)高速缓存328、RMT 335和总线接口单元(BIU)327。BIU 327将PPSS 309连接到EIB 319。
SPU 310、311或312以及MFC 305、306和307通过具有容量的单向通道相互通信。通道实质上是使用34个SPU指令中的一个指令来访问的FIFO,读通道(RDCH)、写通道(WRCH)和读通道计数(RDCHCNT)。RDCHCNT返回通道中的信息量。容量是FIFO的深度。通道对去往和来自MFC 305、306和307,SPU 310、311和312的数据进行传送。BIU 339、340和341将MFC 305、306和307连接到EIB 319。
MFC 305、306和307为SPU 310、311和312提供两个主要功能。MFC 305、306和307在SPU 310、311或312,LS区域313、314或315和主存储器之间移动数据。另外,MFC 305、306和307在SPU 310、311和312与系统中的其他设备之间提供同步设施。
MFC 305、306和307的实现具有四个功能单元:直接存储器访问控制器(DMAC)336、337和338,MMU 316、317和318,原子单元(ATO)342、343和344,RMT 345、346和347以及BIU 339、340和341。DMAC 336、337和338维护并处理MFC命令队列(MFC CMDQ)(没有示出),其包括MFC SPU命令队列(MFC SPUQ)和MFC代理命令队列(MFC PrxyQ)。十六条目的MFC SPUQ处理从SPU通道接口接收的MFC命令。八条目的MFC PrxyQ通过存储映射输入和输出(MMIO)加载以及存储操作来处理来自诸如PPE 301或SPE 302、303和304之类的其他设备的MFC命令。典型的直接存储器访问命令在LS区域313、314或315与主存储器之间移动数据。MFC DMA命令的EA参数用于指向主存储设备,包括主存储器、本地存储器和所有具有RA的设备。MFC DMA命令的本地存储器参数用于指向关联的本地存储器。
在虚拟模式中,MMU 316、317和318提供地址转换和存储器保护设施以处理来自DMAC 336、337和338的EA转换请求并送回已转换的地址。每个SPE的MMU维护区段监视缓冲器(SLB)和转换监视缓冲器(TLB)。SLB将EA转换为VA,TLB将从SLB出来的VA转换为RA。EA由应用使用并且通常是32比特或64比特的地址。不同的应用或一个应用的多个副本可以使用相同的EA来引用不同的存储位置(例如,均使用相同EA的一个应用的两个副本,需要两个不同的物理存储位置)。为了完成这一点,EA首先被转换成一个更大的VA空间,其对在操作系统下运行的所有应用来说是公共的。EA到VA的转换由SLB执行。然后使用TLB来将VA转换成RA,该TLB是包含VA到RA的映射的页表或映射表的高速缓存。该表由操作系统维护。
ATO 342、343和344提供了维护与系统中其他处理单元的同步所必需的数据高速缓存的级别。原子直接存储器访问命令提供了使协处理器单元执行与其他单元的同步的手段。
BIU 339、340和341的主要功能是为SPE 302、303和304提供到EIB的接口。EIB 319在Cell BE芯片300上的所有处理器内核和附在EIB 319上的外部接口控制器之间提供通信路径。
MIC 320在EIB 319与XIO 321和322中的一个或两个之间提供接口。极速数据速率(XDRTM)动态随机存取存储器(DRAM)是由
Figure C20071010464700131
提供的高速高度串行存储器。由Rambus提供的宏访问极速数据速率动态随机存取存储器,该存储器在本文中称为XIO 321和322。
MIC 320只是EIB 319上的从设备。MIC 320对在它的配置地址范围内的命令进行确认,该范围与所支持的中心中的存储器对应。
BIC 324和325管理片上或片外的从EIB 319到两个外部设备中的任意一个的数据传送。BIC 324和325可以和I/O设备交换非一致性业务,或者它可以将EIB 319扩展到另一个设备,该设备甚至可以是另一个Cell BE芯片。当用于扩展EIB 319时,总线协议维护Cell BE芯片300中的高速缓存和附带的外部设备中的高速缓存之间的一致性,该外部设备可以是另一个Cell BE芯片。
IOC 326处理在I/O接口设备中发起并发往相关EIB 319的命令。I/O接口设备可以是附到I/O接口上的任意设备,诸如附带多个I/O设备或用非一致性的方式访问的另一个Cell BE芯片300的I/O桥芯片。IOC 326还截取EIB 319上针对存储映射寄存器的访问,并将它们路由到正确的I/O接口,这些寄存器驻留在I/O桥芯片或非一致性Cell BE芯片300之中或之后。IOC 326还包括内部中断控制器(IIC)349和I/O地址转换单元(I/O Trans)350。
普适逻辑(pervasive logic)351是为Cell BE芯片300提供时钟管理、测试特征和上电序列的控制器。普适逻辑可以为处理器提供热管理系统。普适逻辑包含通过本领域公知的联合测试行动小组(JTAG)或SPI(串行外围接口)接口到系统中其他设备的连接。
尽管已经提供了如何实现不同组件的特定示例,但这并不意味着对可以使用说明性实施例各方面的体系结构构成限制。可以结合任意多内核处理器系统而使用说明性实施例的各方面。
在应用或软件的执行期间,Cell BE芯片内的区域的温度可能上升。如果不加抑制,温度可能上升到最大指定结温度(junction temperature)之上,导致不正确的运行或物理损害。为了避免这些情形,Cell BE芯片的数字热管理单元在运行期间监控并试图控制Cell BE芯片内的温度。数字热管理单元包括此处描述的一个热管理控制单元(TMCU)和十个分布式数字热传感器(DTS)。
一个传感器位于八个SPE中的一个SPE中,一个传感器位于PPE中,并且一个传感器与线性热二极管相邻。线性热二极管是计算温度的片上二极管。这些传感器位于与关联的单元内的各区域相邻的位置,该关联的单元典型地在执行大多数应用期间经历温度的最大上升。热控制单元监控来自每个这些传感器的反馈。如果传感器的温度上升到可编程的点之上,热控制单元就可以配置为引起对PPE或一个或多个SPE的中断并且动态地调节关联的PPE或SPE的执行。
将PPE或SPE停止和运行可编程数量的周期提供了必需的调节。中断使特权软件能够采取正确的措施,同时动态调节在没有软件介入的情况下试图将broadband engine(宽带引擎)芯片内的温度保持在可编程级别以下。特权软件将调节级别设置为等于或低于应用所提供的推荐设置。每个应用可能会不同。
如果调节PPE或SPE没有有效地管理温度并且温度继续上升,则普适逻辑351在温度达到热过载温度(由可编程配置数据限定)时停止Cell BE芯片的时钟。热过载特征保护Gell BE芯片不受物理损害。从这种情形恢复需要硬重启(hard reset)。由DTS监控的区域的温度并不一定是关联的PPE或SPE内的最热点。
图4示出了根据说明性实施例的示例性热管理系统。热管理系统可以实现为集成电路,诸如图3的普适逻辑单元351所提供的集成电路。热管理系统可以是专用集成电路、处理器、多处理器或异质多内核处理器。热管理系统被分在十个分布式DTS和热管理控制单元(TMCU)402之间,为简单起见只示出了DTS 404、406、408和410。每个在SPU传感器440中的DTS 404和406、在PPU传感器442中的DTS 408、以及在与线性热二极管(没有示出)相邻的传感器444中的DTS 410提供当前温度检测信号。该信号表明温度等于或小于由TMCU 402设置的当前温度检测范围。TMCU 402使用来自DTS 404、406、408和410的信号的状态来连续地跟踪每个PPE或SPE的DTS 404、406、408或410的温度。随着对温度的跟踪,TMCU 402将当前温度提供为表示关联的PPE或SPE内的温度的数值。校准单独的传感器的制造厂设置内部校准存储器428。
除了上述TMCU 402的单元之外,TMCU 402还包括复用器446和450、工作寄存器448、比较器452和454、串行器456、热管理控制状态机458和数据流(DF)单元460。复用器446和450对各种发出的和进入的信号进行组合以便在单个媒介上传送。工作寄存器448保存在TMCU 402中执行的乘法的结果。比较器452和454提供了对两个输入的比较功能。比较器452是大于或等于比较器。比较器454是大于比较器。串行器456将来自源的低速并行数据转换为用于传送的高速串行数据。串行器456结合SPU传感器440上的解串器462和464而工作。解串器462和464将接收的高速串行数据转换为低速并行数据。热管理控制状态机458启动TMCU 402的内部初始化。DF单元460控制去往和来自热管理控制状态机458的数据。
TMCU 402可以配置为使用中断逻辑416来引发对PPE的中断以使用调节逻辑418来动态地调节PPE或SPE的执行。
TMCU 402将表示温度的数值与可编程的中断温度和可编程的调节点进行比较。每个DTS具有一个独立的可编程的中断温度。如果该温度在已编程的中断温度范围之内,那么如果已启用,则TMCU 402产生对PPE的中断。如果温度在依赖于下述方向比特的已编程级别以上或以下,则产生中断。另外,第二可编程的中断温度可以引发对系统控制器的注意信号。系统控制器在系统面板上并且连接到在SPI端口上的CellBE。
如果由与PPE或SPE关联的DTS感应的温度等于或高于调节点,则TMCU 402通过独立地开始和停止PPE或一个或多个SPE来调节该PPE或SPE的执行。软件可以使用诸如热管理停止时间寄存器和热管理比例寄存器之类的热管理寄存器来控制调节的比率和频率。
图5描述了根据说明性实施例的温度曲线图以及可能发生中断和动态调节的各个点。在图5中,线500可以表示PPE或SPE的温度。如果PPE或SPE正常运行,那么在用“N”标记的区域中不进行调节。当PPE或SPE的温度达到调节点时,TMCU开始调节关联的PPE或SPE的执行。调节发生的区域用“T”标记。当PPE或SPE的温度下降到结束调节点以下时,执行返回到正常操作。
如果由于任意原因温度继续上升并达到在全面调节点处或之上的温度时,TMCU 402停止PPE或SPE直到温度下降到全面调节点以下。停止PPE或SPE的区域用“S”标记。在温度在全面调节点处或之上时停止PPE或SPE称为内核停止安全性。
在该示例性图示中,将中断温度设置在调节点以上;因此,TMCU402产生中断,该中断是对软件的通知,即关于因为温度曾经在或仍在内核停止温度以上所以相应的PPE或SPE被停止的通知;假设热中断屏蔽寄存器(TM_ISR)设置为活动的,参见图4中的422,使PPE或SPE在未决中断(pending interrupt)期间能够继续。如果动态调节被禁用,则特权软件管理热状况。不管理热状况可能导致关联的PPE或SPE的不正确运行或由热过载功能引起的热关闭。
返回到图4,热传感器状态寄存器包括热传感器当前温度状态寄存器412和热传感器最大温度状态寄存器414。这些寄存器使软件能够读取每个DTS的当前温度,确定在一段时间期间达到的最高温度,并在温度达到可编程的温度时引发中断。热传感器状态寄存器具有关联的可以标记为享有管理特权的真实地址页。
热传感器当前温度状态寄存器412包含每个DTS的当前温度的编码值或数字值。由于传感器温度检测中的等待时间、读取这些寄存器的等待时间和正常的温度波动,在这些寄存器中报告的温度是较早时间点的温度,可能不能反映软件接收数据时的实际温度。由于每个传感器都有专用的控制逻辑,因此DTS 404、408和410内的控制逻辑并行地对所有的传感器进行采样。TMCU 402在采样周期结束时更新热传感器当前温度状态寄存器412的内容。TMCU 402将热传感器当前温度状态寄存器412中的值改变为当前温度。TMCU 402每个SenSampTime周期都轮询新的当前温度。SenSampTime配置字段控制采样周期的长度。
热传感器最大温度状态寄存器414包含从热传感器最大温度状态寄存器414最后被读取的时间开始,每个传感器达到的数字地编码的最大温度。通过软件或诸如片外设备472或片外I/O设备474之类的任意片外设备读取这些寄存器使TMCU 402将每个传感器的当前温度复制进寄存器。在读取之后,TMCU 402从该点开始继续跟踪最大温度。每个寄存器的读取是独立的。对一个寄存器的读取不影响另一寄存器的内容。
每个传感器都具有专用的控制逻辑,因此DTS 404、406、408和410内的控制逻辑并行地对所有的传感器进行采样。TMCU 402将热传感器最大温度状态寄存器414中的值改变为当前温度。TMCU 402每个SenSampTime周期都轮询新的当前温度。SenSampTime配置字段控制采样周期的长度。
中断逻辑416中的热传感器中断寄存器控制对PPE的热管理中断的产生。这组寄存器包括热传感器中断温度寄存器420(TS_ITR1和TS_ITR2)、热传感器中断状态寄存器422(TS_ISR)、热传感器中断屏蔽寄存器424(TS_IMR)和热传感器全局中断温度寄存器426(TS_GITR)。热传感器中断温度寄存器420和热传感器全局中断温度寄存器426包含引起对PPE的热管理中断的温度的编码。
当热传感器当前温度状态寄存器412中的针对传感器的用数字格式编码的温度大于或等于热传感器中断温度寄存器420中的相应传感器的中断温度编码时,TMCU 402设置热传感器中断状态寄存器422中的相应状态比特(TS_ISR[Sx])。当热传感器当前温度状态寄存器412中的针对任意传感器的温度编码大于或等于热传感器全局中断温度寄存器426中的全局中断温度编码时,TMCU 402设置热传感器中断状态寄存器422中的相应状态比特(TS_ISR[Gx])。
如果设置了任意热传感器中断状态寄存器422比特(TS_ISR[Sx])并且还设置了热传感器中断屏蔽寄存器424中的相应屏蔽比特(TS_IMR[Mx]),那么TMCU 402引发对PPE的热管理中断信号。如果设置了任意热传感器中断状态寄存器422比特(TS_ISR[Gx])并且还设置了热传感器中断屏蔽寄存器424中的相应屏蔽比特(TS_IMR[Cx]),那么TMCU 402引发对PPE的热管理中断信号。
为了清除中断条件,特权软件应当将热传感器中断屏蔽寄存器中的任意相应的屏蔽比特设置为“0”。为了启用热管理中断,特权软件保证温度在相应传感器的中断温度以下,然后执行以下序列。在温度不在中断温度以下时启用中断可能导致产生立即热管理中断。
1.将“1”写到热传感器中断状态寄存器422中的相应状态比特。
2.将“1”写到热传感器中断屏蔽寄存器424中的相应屏蔽比特。
热传感器中断温度寄存器420包含位于SPE、PPE中且与线性热二极管相邻的传感器的中断温度级别。TMCU 402将该寄存器中已编码的中断温度级别与热传感器当前温度状态寄存器412中的相应中断温度编码进行比较。这些比较的结果产生热管理中断。每个传感器的中断温度级别是独立的。
除了在热传感器中断温度寄存器420中设置的独立的中断温度级别之外,热传感器全局中断温度寄存器426包含第二中断温度级别。该级别适用于Cell BE芯片中的所有传感器。TMCU 402将该寄存器中的已编码的全局中断温度级别与每个传感器的当前温度编码进行比较。这些比较的结果产生热管理中断。
全局中断温度的目的是提供对Cell BE芯片中的温度上升的早期指示。特权软件和系统控制器可以使用该信息来启动措施以控制温度,例如,增加扇入速度、在单元之间重新平衡应用软件等等。
热传感器中断状态寄存器422标识哪些寄存器满足中断条件。中断条件是指每个热传感器中断状态寄存器422比特所具有的特定条件,当满足该特定条件时中断可能发生。如果设置了相应的屏蔽比特,那么实际中断只提交给PPE。
热传感器中断状态寄存器422包含三组状态比特,即数字传感器全局门限中断状态比特(TS_ISR[Gx])、数字传感器门限中断状态比特(TS_ISR[Sx])和数字传感器全局门限以下中断状态比特(TS_ISR[Gb])。
当热传感器当前温度状态寄存器412中的传感器温度编码大于或等于热传感器中断温度寄存器420中的相应的传感器的中断温度编码并且热传感器中断屏蔽寄存器424中的相应方向比特TM_IMR[Bx]=’0’时,TMCU 402设置热传感器中断状态寄存器422中的状态比特(TS_ISR[Sx])。另外,当热传感器当前温度状态寄存器412中的传感器温度编码低于热传感器中断温度寄存器420中的相应的传感器的中断温度编码并且热传感器中断屏蔽寄存器424中的相应方向比特TM_IMR[Bx]=’1’时,TMCU 402设置热传感器中断状态寄存器422,即TS_ISR[Sx]。
当任意参与的传感器的当前温度大于或等于热传感器全局中断温度寄存器426的当前温度并且热传感器中断屏蔽寄存器424TM_IMR[BG]=‘0’时,TMCU 402设置热传感器中断状态寄存器422,即TS_ISR[Gx]。单独的热传感器中断状态寄存器422的TS_ISR[Gx]比特表明哪些单独的传感器满足这些条件。
当热传感器中断屏蔽寄存器424TM_IMR[Cx]中的所有参与的传感器的当前温度低于热传感器全局中断温度寄存器426的当前温度并且热传感器中断屏蔽寄存器424TM_IMR[BG]=‘1’时,TMCU 402设置热传感器中断状态寄存器422,即TS_ISR[Gb]。由于所有参与的传感器的当前温度低于热传感器全局中断温度寄存器426的当前温度,因此对于全局门限以下中断条件,只出现热传感器中断状态寄存器422中的一个状态比特(TS_ISR[Gb])。
一旦将热传感器中断状态寄存器422中的一个状态比特(TS_ISR[Sx]、TS_ISR[Gx]或TS_ISR[Gb])设置为‘1’,TMCU 402就维护该状态直到由特权软件重置为‘0’。特权软件通过将‘1’写到热传感器中断状态寄存器422中的相应比特而将状态比特重置为‘0’。
热传感器中断屏蔽寄存器424包含单独传感器的两个字段和全局中断条件的多个字段。中断条件是指每个热传感器中断状态寄存器422比特所具有的特定条件,当满足该特定条件时中断可能发生。如果设置了相应的屏蔽比特,那么实际中断只提交给PPE。
单独传感器的两个热传感器中断屏蔽寄存器的数字热门限中断字段是TS_IMR[Mx]和TS_IMR[Bx]。热传感器中断屏蔽寄存器424的屏蔽比特TS_IMR[Mx]防止中断状态比特产生对PPE的热管理中断。热传感器中断屏蔽寄存器424的方向比特TS_IMR[Bx]将中断条件的温度方向设置为高于或低于热传感器中断温度寄存器420中的相应温度。将热传感器中断屏蔽寄存器424的TS_IMR[Bx]设置为‘1’将中断条件的温度设置为低于热传感器中断温度寄存器420中的相应温度。将热传感器中断屏蔽寄存器424的TS_IMR[Bx]设置为‘0’将中断条件的温度设置为等于或高于热传感器中断温度寄存器420中的相应温度。
针对全局中断条件的热传感器中断屏蔽寄存器424字段是TS_IMR[Cx]、TS_IMR[BG]、TS_IMR[Cgb]和TS_IMR[A]。热传感器中断屏蔽寄存器424的屏蔽比特TS_IMR[Cx]防止全局门限中断并且选择哪些传感器参与全局门限以下中断条件。热传感器中断屏蔽寄存器424的方向比特TS_IMR[BG]选择针对全局中断条件的温度方向。热传感器中断屏蔽寄存器424的屏蔽比特TS_IMR[Cgb]防止全局门限以下中断。热传感器中断屏蔽寄存器424TS_IMR[A]引发对系统控制器的注意信号。注意信号是一种对系统控制器的信号,表明普适逻辑需要注意或具有针对系统控制器的状态。可以将注意信号映射到系统控制器中的中断。系统控制器在系统面板(planer)上并且连接到在SPI端口上的CellBroadband Engine。
将热传感器中断屏蔽寄存器424的TS_IMR[BG]设置为‘1’,就将针对全局中断条件的温度范围设置为当在热传感器中断屏蔽寄存器424的TS_IMR[Cx]中设置的所有参与传感器的温度都低于全局中断温度级别时发生。将热传感器中断屏蔽寄存器424的TS_IMR[BG]设置为‘0’,就将针对全局中断条件的温度范围设置为当任意参与传感器的温度大于或等于热传感器全局中断温度寄存器426中的相应温度时发生。如果热传感器中断屏蔽寄存器424的TS_IMR[A]设置为‘1’,那么当任意热传感器中断屏蔽寄存器424TS_IMR[Cx]比特和它相应的热传感器中断状态寄存器422状态比特(TS_ISR[Gx])都设置为‘1’时TMCU 402引发注意信号。另外,当热传感器中断屏蔽寄存器424的TS_IMR[Cgb]和热传感器中断状态寄存器422的TS_ISR[Gb]都设置为‘1’时,TMCU402引发注意信号。
当任意热传感器中断屏蔽寄存器424TS_IMR[Mx]比特和它相应的热传感器中断状态寄存器422状态比特(TS_ISR[Sx])都设置为‘1’时,TMCU 402将热管理中断提交给PPE。当任意热传感器中断屏蔽寄存器424TS_IMR[Cx]比特和它相应的热传感器中断状态寄存器422状态比特(TS_ISR[Gx])都设置为‘1’时,TMCU 402产生热管理中断。另外,当热传感器中断屏蔽寄存器424的TS_IMR[Cgb]和热传感器中断状态寄存器422的TS_ISR[Gb]都设置为‘1’时,TMCU 402将热管理中断提交给PPE。
调节逻辑418中的动态热管理寄存器包含用于控制PPE或SPE的执行调节的参数。动态热管理寄存器是一组寄存器,包括热管理控制寄存器430(TM_CR1和TM_CR2)、热管理调节点寄存器432(TM_TPR)、热管理停止时间寄存器434(TM_STR1和TM_STR2)、热管理调节比例寄存器436(TM_TSR)和热管理系统中断屏蔽寄存器438(TM_SIMR)。
热管理调节点寄存器432设置传感器的调节温度点。可以在热管理调节点寄存器432中设置两个独立的调节温度点,即ThrottlePPE和ThrottleSPE,一个用于PPE并且另一个用于SPE。该寄存器中还包含用于禁用调节和停止PPE或SPE的温度点。PPE或SPE的执行调节在温度等于或高于调节点时开始。调节在温度下降到用以禁用调节的温度(TM_TPR[EndThrottlePPE/EndThrottleSPE])以下时停止。如果温度达到全面调节温度或停止温度(TM_TPR[FullThrottlePPE/FullThrottleSPE]),则TMCU 402停止PPE或SPE的执行。热管理控制寄存器430控制调节行为。
热管理停止时间寄存器434和热管理调节比例寄存器436控制调节频率和调节量。当温度达到调节点时,TMCU 402将相应的PPE或SPE停止一定时钟数,该时钟数由热管理停止时间寄存器434中的相应值中的停止时间乘以热管理调节比例寄存器436中的相应比例值来指定。然后TMCU 402使PPE或SPE能够运行一定的时钟数,该时钟数由运行时间乘以相应的比例值来指定,其中运行时间是依赖于实现方式的固定时间量减去停止时间之间的差值。热管理调节比例寄存器436中的可编程的比例值是停止时间和运行时间的乘数。一个示例可以是(Stop×Scale)/(Run×Scale)((停止时间×比例)/(运行时间×比例))。内核停止的时间百分比保持相同,但是周期增大或频率减小。该序列继续直到温度下降到禁用调节(TM_TPR[EndThrottlePPE/EndThrottleSPE])以下。
热管理系统中断屏蔽寄存器438选择哪个PPE中断将使TMCU 402禁用调节。当这些中断仍然未决并且屏蔽仍然选择未决中断时TMCU402将继续阻止调节。如果取消选定屏蔽或中断不再是未决的,则TMCU402将不再阻止中断。
热管理控制寄存器430独立地为每个PPE或SPE设置调节模式。在两个寄存器之间拆分控制比特。下面是可以独立地为每个PPE或SPE设置的五个不同的模式:
禁用动态调节(包括内核停止安全性);
正常操作(启用动态调节和内核停止安全性);
始终调节PPE或SPE(启用内核停止安全性);
禁用内核停止安全性(启用动态调节并且禁用内核停止安全性);
始终调节PPE或SPE并且禁用内核停止安全性。
特权软件应当针对运行应用或操作系统的PPE或SPE而将控制比例设置为正常操作。如果PPE或SPE没有运行应用代码,则特权软件应当将控制比特设置为禁用。“始终调节PPE或SPE”模式拟用于应用开发。这些模式对确定应用是否能够在极限调节条件下运行是有用的。应当只在特权软件主动地管理热事件时才使PPE或SPE能够在禁用动态调节或内核停止安全性的情况下执行。
热管理系统中断屏蔽寄存器438控制哪个PPE中断使热管理逻辑暂时停止调节PPE。TMCU 402在中断未决的同时暂时挂起对这两个线程的调节,而不管中断所指向的线程。当中断不再未决时,只要调节条件仍然存在调节就可以继续。从不基于系统中断条件而禁用对SPE的调节。可以优先于调节条件的PPE中断条件如下:
外部
减量器
管理程序(Hypervisor)减量器
系统错误
热管理
热管理调节点寄存器432包含PPE或SPE的执行调节开始和结束时的已编码温度点。该寄存器还包含PPE或SPE的执行被全面调节时的已编码温度点。
软件使用热管理调节点寄存器中的值来设置用于在三个热管理状态之间改变的三个温度点,这三个状态是:正常运行(N)、调节PPE或SPE(T)以及停止PPE或SPE(S)。TMCU 402支持针对PPE和SPE的独立温度点。
当热传感器当前温度状态寄存器412中的已编码的传感器当前温度等于或大于调节温度(ThrottlePPE/ThrottleSPE)时,如果已经启用,那么相应的PPE或SPE的执行调节就会开始。执行调节继续到相应的传感器的已编码当前温度小于结束调节(EndThrottlePPE/EndThrottleSPE)的已编码温度为止。作为一种安全措施,如果已编码的当前温度等于或大于全面调节点(FullThrottlePPE/FullThrottleSPE),那么TMCU 402停止相应的PPE或SPE。
热管理停止时间寄存器434控制在热管理调节状态下应用于特定PPE或SPE的调节量。热管理停止时间寄存器434中由软件设置的值表示内核将停止的时间量相对于允许内核运行的时间量的比值(stop/run)或者内核停止的时间百分比。热管理调节比例寄存器436控制PPE或SPE停止和运行的实际时钟数(NClks)。
热管理调节比例寄存器436控制PPE或SPE在热管理调节状态期间停止和运行的实际周期数。该寄存器中的值是配置环设置TM_config[MinStopSPE]的倍数。下面的等式计算实际的停止和运行周期数:
SPE运行和停止时间:
  SPE_StopTime=(TM_STRl[StopCore(x)]*
       TM_Config[MinStopSPE])*TM_TSR[ScaleSPE]
  SPE_RunTime=(32-TM_STR1[StopCore(x)])*
       TM_Config[MinStopSPE])*TM_TSR[ScaleSPE]
Power
Figure C20071010464700241
单元运行和停止时间:
    PPE_StopTime=(TM_STR2[StopCore(8)]*
      TM_Config[MinStopPPE])*TM_TSR[ScalePPE]
    PPE_RunTime=(32-TM_STR2[StopCore(8)])*
      TM_Config[MinStopPPE])*TM_TSR[ScalePPE]
运行和停止时间可以通过中断和对各种热管理寄存器进行写入的特权软件来改变。
片上性能监控器466可以提供可以跟踪由诸如DTS 404、406、408和410之类的温度感应设备提供的热数据的性能监控。可以将热数据存储在存储器470中或者写到诸如图2的主存储器208之类的片外设备472或写到诸如图2的南桥和输入/输出(I/O)控制器中心(ICH)204之类的片外I/O设备474。位于性能监控器466中的控制器468控制确定将热数据发送到哪里。
尽管以下描述针对一个指令流和一个处理器,但是该指令流可以是一组指令流并且该处理器可以是一组处理器。也就是说,一组可以是单个指令流和单个处理器或者两个或更多指令流和处理器。
利用上述体系结构,针对Cell BE芯片的热管理和热调节进行了很多改进并添加了可编程性。这些改进和所添加的可编程性中的一些使得可以实现关键特征而另一些增强了可用性。
图6描述了根据说明性实施例的用于记录最大温度的操作的流程图。随着操作开始,包含诸如图3的Cell BE芯片300之类的Cell Be芯片的计算机系统启动或重启(步骤602)。如以前所述,Cell BE芯片包括通过图3的普适逻辑单元351提供的热管理系统。对于诸如图4的DTS 404、406、408和410之类的每个DTS,该热管理系统包括一组最大温度状态寄存器和一组当前温度状态寄存器,诸如图4的最大温度状态寄存器414和当前温度状态寄存器412。当前温度状态寄存器存储它的目标DTS自诸如图4的热管理控制状态机458之类的热管理控制状态机最后一次感应DTS之后的当前温度。最大温度状态寄存器存储它的目标DTS自计算机系统最后一次读取最大温度状态寄存器或计算机系统重启之后的最大温度。可以使用任意数量的诸如处理器、集成电路之类的设备或通过使用串行外围接口(SPI)端口或联合测试行动小组(JTAG)端口的设备来读取最大温度状态寄存器。但是,通过JTAG端口读取寄存器不会导致重启。
说明性地将以下讨论限于一个DTS,计算机系统启动或重启(步骤602)之后的最大温度是零。一旦热管理控制状态机感应到DTS的温度,该热管理控制状态机就将感应的DTS的温度发送到诸如图4的比较器454之类的比较器(步骤604)。该比较器将感应温度与最大温度状态寄存器中存储的针对该DTS的当前最大温度进行比较(步骤606)。如果在步骤606感应温度高于最大温度状态寄存器中存储的当前最大温度,那么感应温度变成新的最大温度并且热管理控制状态机将新的最大温度记录到最大温度状态寄存器中(步骤608)。也就是说,热管理控制状态机覆盖或替换最大温度状态寄存器中存储的当前最大温度。如果在步骤606感应温度低于或等于最大温度状态寄存器中存储的当前最大温度,那么最大温度状态寄存器保持最大温度状态寄存器中现有的当前最大温度(步骤610)。
最大温度状态寄存器中的当前最大温度停留在最大温度直到计算机系统以读取请求的形式读取最大温度状态寄存器(步骤612)或计算机系统重启为止。如果没有读取当前最大温度,那么操作返回到步骤604。如果在步骤612计算机系统读取当前最大温度,那么热管理控制状态机将当前最大温度重置为当前温度状态寄存器中的当前温度(步骤614),然后操作返回到步骤604。
对于该操作的一个示例,如果诸如处理器内核或处理器本身之类的特定单元的DTS在一段时间上要感应67℃、70℃、75℃、72℃和74℃的温度,那么最大温度状态寄存器中的最大温度将是75℃。如果在对DTS的第四次感应之后,计算机系统发出读取请求,那么返回的最大温度将是75℃。但是,此时热管理控制状态机将最大温度重置为当前温度,并且在由DTS执行的最后一次感应之后,最大温度状态寄存器中的最大温度将是74℃。
这样,最大温度状态寄存器的目的是记录DTS自最大温度寄存器最后一次被读取之后达到的最大温度。该最大温度信息帮助操作系统在不用连续轮询当前温度寄存器的情况下确定DTS在应用或程序执行期间达到的最大温度。连续轮询将影响系统的性能,因此可能影响最大温度。另外,轮询当前温度不能保证读取到最大温度。如果最大温度发生在对当前温度的多次读取之间,就属于这种情况。
图7描述了根据另一个说明性实施例的用于通过性能监控来跟踪热数据的操作的流程图。如前所述,Cell BE芯片包括通过图3的普适逻辑单元351提供的热管理系统。可以通过诸如图4的性能监控器466之类的性能监控器提供性能监控。性能监控可以跟踪由诸如图4的DTS404、406、408和410之类的温度感应设备提供的在诸如图4的存储器470之类的其内部存储器中的热数据,写到诸如图2的主存储器208之类的主存储器或图4的片外设备472,或写到诸如图2的南桥和输入/输出(I/O)控制器中心(ICH)204或图4的片外I/O设备474之类的I/O设备。
性能监控支持两种主要的跟踪模式:跟踪固定时间段和持续跟踪。对热性能的跟踪可以是诸如图5的跟踪500之类的跟踪。性能监控还可以规定采样频率的配置以控制两个连续的采样之间的时间段。此外,可以使用热信息压缩来增大采样间隔。一种压缩技术是只在发生变化时存储热信息。对相同的热采样的数量的计数还可以与热信息一起存储。因为热信息典型地变化缓慢,所以这是一种有用的技术。
随着用于通过性能监控器来跟踪热数据的操作开始,诸如图4的热管理控制状态机458之类的热管理控制状态机将性能监控器设置为跟踪模式(步骤702)。说明性地将以下讨论限于一个DTS,热管理控制状态机感应DTS的温度(步骤704)并将感应到的DTS的温度发送到当前温度状态寄存器和/或其他数据结构以进行存储(步骤706)。此时热管理控制状态机确定性能监控器是否还在运行(步骤708)。一旦性能监控器在步骤702中启动,则该性能监控器将运行用户指定的时间段或运行到由用户通过用户输入而停止。但是,性能监控器还可以基于特定的热状况而停止。该特定的热状况称为触发器,诸如在一组信号上寻找特定条件的逻辑分析器。触发器的使用在软件调试中很有用。例如,用户可以将性能监控器设置为在达到热状况时停止或检停(checkstop)系统。这可以使用户能够准确地确定哪条代码或代码组合在引发热状况。如果性能监控器在步骤708仍然在运行,则操作返回到步骤704。
返回到步骤708,如果性能监控器不再运行,则热管理控制状态机读取存储在存储器中的温度信息并以图形形式为用户显示所存储的信息(步骤710),之后操作结束。在步骤706发送到当前温度状态寄存器和/或其他数据结构的感应温度还可以在操作仍然在箭头712所表明的处理(步骤710)中时同时显示,而不是等待跟踪结束。
这样,性能监控器跟踪由DTS提供的热数据。自动跟踪热数据消除了对软件持续轮询当前温度寄存器的需要。性能监控对于收集工作负载的热数据很重要,原因是性能监控不需要插入附加代码来轮询热数据,这种插入可能会改变工作负载的行为。换句话说,性能监控提供非侵入的方法来实时跟踪软件应用的热特征数据。将热信息发送到性能监控器的另外的好处是能够触发或停止对预先指定的热状况上的热信息的记录。另外,性能监控器还可以用于在满足热状况时停止系统(或检停)。这样做使用户能够确定哪个代码段或代码段组合正在产生热状况。然后用户可以重写代码段或避免特定的组合,从而避免了热事件。
图8A和图8B描述了根据另外的说明性实施例的针对高级热中断产生的操作的流程图。如前所述,Cell BE芯片包括通过图3的普适逻辑单元351提供的热管理系统。高级热中断产生是帮助操作系统处理热事件的另一个特征。高级热中断逻辑是诸如图4的TMCU 402之类的热管理控制单元的一部分。当有热状况时(也就是芯片温度上升到一定的门限以上),热中断警告操作系统。在这种情况下,操作系统应当采取正确措施来降低芯片温度。正确措施可以由软件中断处理程序处理,软件中断处理程序是一条处理热状况并初始化正确措施的代码。然后操作系统等待热状况在继续正常操作之前消失。这通常需要操作系统等待特定的时间量,然后轮询处理器的温度以确定继续正常操作是否安全。使用高级热中断产生,操作系统可以设置中断以检测温度何时下降到一定的门限以下,从而消除了对轮询当前温度寄存器的需要。图4的热传感器中断屏蔽寄存器424(TS_IMR)和热传感器中断状态寄存器422(TS_ISR)的组合使操作系统处理热事件更加容易。
高级热中断产生可以在局部级别或全局级别上执行。也就是说,高级热中断产生可以单独地(局部)在特定DTS上执行或在诸如图4的DTS 404、406、408和410之类的所有(全局)DTS上执行。热传感器中断屏蔽寄存器的方向比特是BG和BX。中断方向定义了产生中断的条件。中断可以在温度从低于中断温度变到等于或高于中断温度时,或在温度从高于或等于中断温度变到低于中断温度时产生。热管理控制状态机用中断屏蔽寄存器中的方向比特BG和BX来标识条件。BG是全局方向比特。当BG设置为‘0’时,热管理控制状态机在任意DTS的温度大于或等于全局中断温度时产生中断。当BG设置为‘1’时,热管理控制状态机在所有DTS的温度都低于全局中断温度时产生中断。BX是局部方向比特,其中X是单独关联的DTS的数量。当BX设置为‘0’时,热管理控制状态机在单独DTS的温度大于或等于DTS中断温度时产生中断。当BX设置为‘1’时,热管理控制状态机在单独DTS的温度低于DTS中断温度时产生中断。热中断状态寄存器(TS_ISR)记录哪个传感器引起了高级热中断。软件读取该寄存器以确定发生了哪种状况以及哪个传感器或哪些传感器引起了中断。一旦被软件读取,热管理控制状态机就重置热中断状态寄存器中的状态比特。
因此,针对高级热中断产生的操作可以从全局和局部角度示出。图8A描述了全局高级热中断产生,图8B描述了局部高级热中断产生。随着操作在图8A的全局高级热中断产生中开始,热管理控制状态机将全局中断温度T设置为温度T1并将全局中断方向BG设置为‘0’(步骤802)。热管理控制状态机感应DTS的温度(步骤804)。热管理控制状态机确定是否有任意从DTS感应的温度大于或等于温度T1(步骤806)。如果没有感应温度大于或等于温度T1,那么操作返回到步骤804。如果在步骤806任意一个感应温度大于或等于温度T1,那么热管理控制状态机产生中断并设置热中断状态寄存器中的相应状态比特以记录哪个传感器或哪些传感器引起了中断(步骤808)。然后操作系统将为中断提供服务并且可以减缓处理器上的工作负载或将处理器的部分工作负载卸载到系统中的另一个处理器。
在产生中断之后,热管理控制状态机将全局中断温度T设置为温度T2并将全局中断方向BG设置为‘1’(步骤810)。温度T2应当设置为小于或等于温度T1。热管理控制状态机再次感应DTS的温度(步骤812)。热管理控制状态机确定是否所有从DTS感应的温度都低于温度T2(步骤814)。如果没有感应温度低于温度T2,那么操作返回到步骤812。如果在步骤814所有感应温度都低于温度T2,那么热管理控制状态机产生中断并设置热中断状态寄存器中的相应状态比特以记录哪个传感器或哪些传感器引起了中断(步骤816)。此时,操作系统继续正常操作现在是安全的。然后操作系统将为中断提供服务并且将系统恢复到正常操作。下一步,操作返回到步骤802,其中全局中断温度T设置为温度T1并且全局中断方向BG设置为‘0’。
该操作的一个示例是所有DTS都具有全局中断温度80℃和全局中断方向‘0’。一旦诸如处理器内核或处理器本身之类的关联的单元的任意DTS感应到大于或等于80℃的温度,热管理控制状态机就产生中断并设置热中断状态寄存器中的相应状态比特以记录哪个传感器或哪些传感器引起了中断。然后操作系统将为中断提供服务并且可以减缓处理器上的工作负载或将处理器的部分工作负载卸载到系统中的另一个处理器。同样,此时热管理控制状态机可以将全局中断温度重置为示例性的77℃并将全局中断方向设置为‘1’。工作负载将继续在慢模式下操作或保持不被处理器处理直到DTS感应到对于所有DTS都低于77℃的温度。一旦热管理控制状态机确定感应温度低于77℃,该热管理控制状态机就产生另一个中断。热管理控制状态机将全局中断温度设置为80℃,将全局中断方向设置为‘0’,然后操作系统继续对工作负载的正常操作。
转到图8B,将说明性实施例限于一个DTS,但该说明性实施例对于每个DTS都是相同的。随着针对局部高级热中断产生的操作开始,热管理控制状态机将局部中断温度T设置为温度T3并将局部中断方向BX设置为‘0’(步骤852)。热管理控制状态机感应DTS的温度(步骤854)。热管理控制状态机确定从DTS感应的温度是否大于或等于温度T3(步骤856)。如果感应温度并不大于或等于温度T3,那么操作返回到步骤854。如果感应温度大于或等于温度T3,那么热管理控制状态机产生中断并设置热中断状态寄存器中的相应状态比特以记录哪个传感器或哪些传感器引起了中断(步骤858)。然后操作系统将为中断提供服务并且可以减缓处理器上的工作负载或将处理器的部分工作负载卸载到处理器内其他单元或卸载到系统中的另一个处理器。
在热管理控制状态机产生中断之后,热管理控制状态机将局部中断温度T设置为温度T4并将全局中断方向BX设置为‘1’(步骤860)。温度T4应当设置为小于或等于温度T3。热管理控制状态机再次感应DTS的温度(步骤862)。热管理控制状态机确定从DTS感应的温度是否低于温度T4(步骤864)。如果感应温度不低于温度T4,那么操作返回到步骤862。如果感应温度低于温度T4,那么热管理控制状态机产生中断并设置热中断状态寄存器中的相应状态比特以记录哪个传感器或哪些传感器引起了中断(步骤866)。此时,操作系统继续正常操作现在是安全的。然后操作系统将为中断提供服务并且将系统恢复到正常操作。下一步,操作返回到步骤852,其中热管理控制状态机将全局中断温度T设置为温度T3并且全局中断方向BX设置为‘0’。
该操作的一个示例是给定的DTS具有局部中断温度80℃和局部中断方向‘0’。一旦关联的单元的DTS感应到大于或等于80℃的温度,热管理控制状态机就产生中断并设置热中断状态寄存器中的相应状态比特以记录哪个传感器或哪些传感器引起了中断。然后操作系统将为中断提供服务并且可以减缓处理器上的工作负载或将处理器的部分工作负载卸载到系统中的另一个处理器。同样,此时热管理控制状态机可以将局部中断温度重置为示例性的77℃并将局部中断方向设置为‘1’。工作负载将继续在慢模式下运行或保持在处理器单元之外直到DTS感应到低于77℃的温度。一旦热管理控制状态机确定感应温度低于77℃,该热管理控制状态机就产生另一个中断。热管理控制状态机将局部中断温度设置为80℃,将局部中断方向设置为‘0’,然后操作系统继续对工作负载的正常操作。
这样,高级热中断产生使操作系统能够对中断产生进行编程以跟随温度变化的方向,并且消除了对中断处理程序的需要以在热中断的情况下持续轮询当前温度。
图9描述了根据另外的说明性实施例的用于在热管理系统中支持深度节能模式和部分良好的操作的流程图。如前所述,Cell BE芯片包括通过图3的普适逻辑单元351提供的热管理系统。在图3的Cell BE芯片300中,存在多种节能模式。根据每种节能模式的实现方式,一些节能模式可以限制诸如图4的DTS 404、406、408和410之类的DTS的可访问性。例如,如果诸如图3的SPU 310、311和312之类的SPU处于时钟关闭的节能模式,也就是说诸如图4的解串器462之类的解串器被禁用,那么诸如图4的串行器456之类的串行器与诸如图4的DTS 404之类的DTS之间的路径不起作用。节能模式的另一个示例可以是电源关闭的情况。在这种情况下,实际的DTS可能被禁用。另一个示例是热管理控制状态机确定处理器内的传感器或单元在制造测试期间是否坏掉的情况。如果传感器或单元是多余的,制造商可以将该传感器或单元标记为不合格,从而产生将只有有限数量的单元或传感器起作用的部分良好的处理器。在任一情况下,诸如图4的热管理控制状态机458之类的热管理控制状态机需要监控这些电源模式的状态并屏蔽掉不起作用的DTS使其不能参与热管理任务(调节、中断等)。
返回到图9,其描述了用于在热感应和热管理系统中支持深度节能模式和部分良好的操作的流程图。随着操作开始,热管理控制状态机使用来自各DTS的数据跟踪DTS的状态(步骤902)。热管理控制状态机将这些数据存储到内部校准存储器中,诸如图4的内部校准存储器428中。如前所述,节能模式、不合格的DTS或通过诸如图4的数据流460之类的数据流与热管理控制状态机通信的SPU可以禁止特定DTS的操作。由制造工艺报告的部分良好状况的效果与节能模式类似,只不过部分良好是永久条件并且应当永久地屏蔽掉DTS。在SPU被标记为不合格的情况下,热管理控制状态机关闭整个SPU,并禁用串行器。在DTS被标记为不合格的情况下,热管理控制状态机屏蔽掉该DTS。热管理控制状态机确定DTS或SPU是不合格还是在起作用(步骤904)。如果DTS或SPU不合格,则热管理控制状态机屏蔽掉DTS(步骤906),之后操作结束。
为了屏蔽掉处于电源管理状态的DTS,热管理控制状态机将诸如图4的当前温度状态寄存器412之类的当前温度状态寄存器中的相关的当前温度状态寄存器重置为0×0,0×0是最低温度设置。另一种方法还可以是通过设置状态比特来分配相关的当前温度状态寄存器的编码,以表明DTS被屏蔽,这可以比只重置传感器读数更加精确。然后热管理控制状态机从当前温度状态寄存器停止去往和来自DTS的通信。停止通信是一个可选步骤,主要用于节能和不执行无用的开销工作。然后热管理控制状态机产生表明DTS现在被屏蔽并且不应当参与热管理任务的信号。最后,热管理控制状态机重置DTS的状态。当诸如处理器内核或处理器本身之类的与DTS相关的单元退出节能模式时,热管理控制状态机继续与DTS通信,继续对当前温度状态寄存器进行更新,并发送DTS可以参与热管理任务的信号。
返回步骤904,如果DTS和SPU都起作用,则热管理控制状态机开始与DTS通信(步骤908)。热管理控制状态机监控SPU的电源管理状态以确定SPU何时进入节能模式(步骤910)。在SPU进入节能模式之前,操作返回到步骤908。如果SPU进入节能模式并且DTS被禁用,那么热管理控制状态机用上面结合步骤906而讨论的方法屏蔽掉DTS(步骤912)。由于表明了DTS是禁用还是在起作用,热管理控制状态机继续监控SPU的电源管理状态(步骤914)。在SPU退出节能模式之前,操作返回到步骤912。当SPU退出节能模式并且DTS不再被禁用时,热管理控制状态机开始与DTS通信,继续对当前温度状态寄存器进行更新,并发送DTS可以参与热管理任务的信号(步骤916),然后操作返回到步骤908。
这样,对部分良好、不合格或处于节能模式的DTS的温度读数的屏蔽隔离了不工作的或禁用的DTS使其不能参与热管理任务。
图10描述了根据另外的说明性实施例的针对使热感知软件应用的实时测试能够与温度相独立的热调节控制特征的操作的流程图。如前所述,Cell BE芯片包括通过图3的普适逻辑单元351提供的热管理系统。诸如图4的热管理控制寄存器430之类的热管理控制寄存器为各种热调节控制特征提供访问和配置。将热调节设计为通过在使用调节的热事件的情况下消减性能来降低温度。
诸如图4的热管理停止时间寄存器434之类的热管理停止时间寄存器,和诸如图4的热管理调节比例寄存器436之类的热管理调节比例寄存器一起设置调节量和调节行为。在实时系统中,需要保证实时期限。软件开发者和质量保证团队知道并测试最大调节量很重要,最大调节量是程序或代码段能够容忍并仍然保证实时系统的实时期限的热管理停止时间寄存器和热管理调节比例寄存器的最大设置。作为对调节硬件的实际温度以引发热事件并且因此触发调节条件的替代,热管理控制状态机提供了不管温度如何都始终提供调节的模式。热管理控制状态机在热管理控制寄存器中设置该模式,这将芯片设置为恒定调节状态。该特征帮助软件开发者进行测试并确保他们的代码满足实时标准。
随着操作开始,接收热管理停止时间寄存器和热管理调节比例寄存器的热控制设置(步骤1002)。热管理控制状态机使用热管理停止时间寄存器和热管理调节比例寄存器的设置来确定如何执行调节。然后,热管理控制状态机设置测试模式并将热管理控制寄存器设置为始终调节设置(步骤1004)。然后程序运行以进行实时确认,即软件或程序将在热管理停止时间寄存器和热管理调节比例寄存器的热控制设置下满足实时期限(1006)。测试模式可以是任意类型的调节模式,诸如始终调节或随机调节。然后热管理控制状态机确定是否满足实时期限(步骤1008)。如果不满足实时期限,则热管理控制状态机将当前热管理停止时间寄存器和热管理调节比例寄存器的热控制设置记录为失败(步骤1010)。然后热管理控制状态机确定是否有将降低调节量的任意新的热管理停止时间寄存器和热管理调节比例寄存器的热控制设置(步骤1012)。如果有新的热管理停止时间寄存器和热管理调节比例寄存器的热控制设置,则操作返回到步骤1002。如果在步骤1002没有任何新的热管理停止时间寄存器和热管理调节比例寄存器的热控制设置,则操作结束。
返回到步骤1008,如果满足实时期限,则热管理控制状态机将当前热管理停止时间寄存器和热管理调节比例寄存器的热控制设置记录为通过(步骤1014)。热管理控制状态机确定是否有将增加调节量的任意新的热管理停止时间寄存器和热管理调节比例寄存器的热控制设置(步骤1016)。如果有新的热管理停止时间寄存器和热管理调节比例寄存器的热控制设置,则操作返回到步骤1002。如果在步骤1016没有任何新的热管理停止时间寄存器和热管理调节比例寄存器的热控制设置,则操作结束。
这样,提供始终调节的操作模式帮助软件开发者进行测试并确保他们的代码在最坏情况的热状况下也能满足实时期限。软件开发者和质量保证团队可以使用该特征来确定程序或代码段能够容许并仍然保证满足实时系统的实时期限的最大调节量。一旦热管理控制状态机确定并确认了最大调节量,软件就可以将中断设置为在全面调节发生的状况下发生。如果热管理控制状态机总是产生该中断,那么热管理控制状态机通知应用可能存在违反或不满足实时保证的情况。
除了始终调节控制设置,实现方式还可以提供注入随机热事件或定向随机热事件的模式以对调节与软件执行的更具有真实感的交互进行仿真。该技术类似于在总线上随机注入错误以测试错误恢复代码。
图11描述了根据另外的说明性实施例的用于实现对中断等待时间影响最小的热调节控制的操作的流程图。如前所述,Cell BE芯片包括通过图3的普适逻辑单元351提供的热管理系统。当计算机系统的任意部分被放置在调节条件下,该调节条件会降低整个系统的性能。性能的降低会根据要多久才能为该中断提供服务以及将为该中断提供多久的服务而增加中断等待时间。中断等待时间的增加在总体上对系统有严重的影响,因此期望并且有必要最小化热调节对中断等待时间的影响。最小化热调节因中断等待时间而产生的影响是针对诸如由图3的PPU 308进行的PPU调节控制的特征。诸如图3的SPU 310、311和312之类的SPU不会获得中断,因此不会被该特征影响。
随着操作开始,诸如图4的热管理控制状态机458之类的热管理控制状态机监控所有的PPU中断状态比特和热管理系统中断屏蔽寄存器,诸如图4的热管理系统中断屏蔽寄存器438(步骤1102)。热管理系统中断屏蔽寄存器控制对中断的屏蔽。热管理控制状态机确定是否有任意未屏蔽的未决中断(步骤1104)。如果没有未决中断或者有未决中断但是被屏蔽了,则操作返回到步骤1102。
如果在步骤1104有未屏蔽的未决中断,则热管理控制状态机暂时禁用任何调节模式,不管是部分调节还是全面调节状态(步骤1106)。禁用调节模式使PPU能够在没有热调节效果引起的任何延迟的情况下暂时以全性能运行并处理任意未决中断。同样,热管理控制状态机监控所有的PPU中断状态和热管理系统中断屏蔽寄存器(步骤1108)。热管理控制状态机确定是否有任意未屏蔽的未决中断(步骤1110)。如果没有未决中断或者有未决中断但是被屏蔽了,则操作返回到步骤1108。当在步骤1110中断状态清除时,热管理控制状态机将PPU恢复到初始调节模式(步骤1112),并且操作返回到步骤1102。
中断处理程序可以选择在中断处理程序例程的开头或结尾清除中断状态比特。中断处理程序可以位于诸如图3的Power处理器单元301之类的Power处理器单元或由Power处理器单元执行的软件中。如果中断处理程序选择在开头清除中断状态比特并且还希望避免PPU的任意性能降低,则中断处理程序可以在清除中断状态比特之前禁用热调节。也就是说,中断不引发控制寄存器中的变化。因此,调节仍然是启用的,但是在出现未屏蔽中断时由诸如图4的TMCU 402之类的热管理控制单元挂起。如果中断处理程序应当在对中断进行处理之前重置中断状态,则该处理程序应当将控制寄存器设置为禁用调节(或将调节量减小到可接受的级别),重置中断,为中断提供服务,然后重新启用调节或将调节量设回以前的级别。可以通过将诸如图4的热管理控制寄存器430之类的热管理控制寄存器设置为0XX来执行对热调节的示例性禁用,其中X是“无关位”(does not care)。在中断例程的结尾,中断处理程序应当将热管理控制寄存器设回它的初始值。如果中断处理程序在中断例程结尾清除中断状态比特,那么就不需要额外的工作,并且只要中断状态比特是激活的,热管理控制状态机就会将PPU保持在调节模式之外。
图12描述了根据另外的说明性实施例的用于热调节中的滞后的操作的流程图。如前所述,Cell BE芯片包括通过图3的普适逻辑单元351提供的热管理系统。热调节中的滞后是做出诸如调节或结束调节之类的改变与该变化的响应或效果之间的迟滞。例如,如果将调节点设置为75℃并将结束调节点设置为72℃,那么滞后范围是从75℃到72℃。图5描述了热调节滞后。
诸如图4的热管理调节点寄存器432之类的热管理调节点寄存器提供两个温度设置:调节温度和结束调节温度。调节温度应当设置为高于结束调节温度。温度差异定义了调节温度和结束调节温度之间的滞后量,从而提供了可编程的滞后量。
说明性地将以下讨论限于一个DTS,随着滞后热调节的操作开始,热管理控制状态机设置热管理调节点寄存器中的调节温度和结束调节温度(步骤1202)。热管理控制状态机感应DTS的温度(步骤1204)。热管理控制状态机确定从DTS感应的温度是否大于或等于调节温度(步骤1206)。如果感应温度并不大于或等于调节温度,则操作返回步骤1204。如果在步骤1206感应温度大于或等于调节温度,则热管理控制状态机初始化调节模式(步骤1208)。
同样,热管理控制状态机感应DTS的温度(步骤1210)。热管理控制状态机确定从DTS感应的温度是否大于或等于结束调节温度(步骤1212)。如果感应温度不小于结束调节温度,则操作返回步骤1210。如果在步骤1212感应温度小于结束调节温度,则热管理控制状态机禁用调节模式(步骤1214),操作返回到步骤1204。
这样,假定正确配置了热管理控制寄存器以允许调节模式,当温度上升到等于或高于调节温度时,热管理控制状态机使单元进入调节模式。热管理控制状态机将单元保持在调节模式下直到温度下降到结束调节温度以下。如果结束调节温度小于调节温度,那么所标识的滞后使单元能够在禁用调节模式之前充分冷却。没有滞后,单元可能会很频繁地进入和退出调节模式并降低调节的整体效率和处理器的效率。
可以通过阻断指令的分派来完成示例性处理器调节方法。如果调节被频繁地启动和禁用,那么可能会经常刷新处理器的流水线,从而降低处理能力。另一个示例性处理器调节方法可以通过减缓时钟频率来完成。
图13描述了根据另外的说明性实施例的用于实现热调节逻辑的操作的流程图。图13表示一个如以上附图所述的完整的热管理解决方案。如前所述,Cell BE芯片包括通过图3的普适逻辑单元351提供的热管理系统。诸如图4的TMCU 402之类的TMCU包括多个动态热管理寄存器。动态热管理寄存器是热管理控制寄存器、热管理调节点寄存器、热管理停止时间寄存器、热管理调节比例寄存器和热管理系统中断屏蔽寄存器,诸如图4的热管理控制寄存器430(TM_CR1和TM_CR2)、热管理调节点寄存器432(TM_TPR)、热管理停止时间寄存器434(TM_STR1和TM_STR2)、热管理调节比例寄存器436(TM_TSR)和热管理系统中断屏蔽寄存器438(TM_SIMR)。
热管理调节点寄存器设置针对DTS的调节点。可以在热管理调节点寄存器中设置两个独立的调节点,一个针对PPE,一个针对SPE。该寄存器中还包含用于启用调节和禁用调节或者停止PPE或SPE的温度点。当温度等于或关于调节点时开始对PPE或SPE的执行调节。当温度下降到禁用调节的温度以下时调节停止。如果温度达到全面调节温度或停止温度,则停止对PPE或SPE的执行。
热管理控制状态机使用热管理停止时间寄存器和热管理调节比例寄存器来控制调节频率和调节量。当温度达到调节点时,热管理控制状态机将相应的PPE或SPE停止由在热管理调节比例寄存器中的相应比例值指定的时钟数。然后热管理控制状态机使PPE或SPE能够运行由在热管理停止时间寄存器中的运行值乘以相应的比例值所指定的时钟数。该序列持续到温度下降到禁用调节以下。
热管理控制状态机使用热管理系统中断屏蔽寄存器来选择哪些中断在中断未决的同时禁用对PPE的调节。
热管理控制寄存器独立地为每个PPE或SPE设置调节模式。下面是可以独立地为每个PPE或SPE设置的五种不同的模式:
禁用动态调节(包括内核停止安全性);
正常操作(启用动态调节和内核停止安全性);
始终调节PPE或SPE(启用内核停止安全性);
禁用内核停止安全性(启用动态调节并且禁用内核停止安全性);
始终调节PPE或SPE并且禁用内核停止安全性。
作为用于实现热调节逻辑的操作,热管理控制状态机设置热管理调节点寄存器中的调节温度和结束调节温度(步骤1302)。热管理控制状态机感应DTS的温度(步骤1304)。热管理控制状态机确定从DTS感应的温度是否大于或等于调节温度(步骤1306)。如果感应温度并不大于或等于调节温度,则操作返回步骤1304。如果感应温度大于或等于调节温度,则热管理控制状态机初始化调节模式(步骤1308)。
然后,热管理控制状态机通过如热管理控制寄存器中所表明的值所表示的调节类型来控制调节(步骤1310)。一旦表明了调节模式,热管理控制状态机就通过在热管理停止时间寄存器中所表明的调节量来限制调节(步骤1312)。停止时间寄存器设置处理器将停止的时间与将允许处理器运行的时间之间的比值或调节百分比。最后,热管理控制状态机通过在热管理比例寄存器中指定的值来缩放停止的持续时间和运行时间(步骤1314)。此时操作分为并发的操作,即步骤1316和步骤1322。在步骤1316,热管理控制状态机感应DTS的温度。热管理控制状态机确定从DTS感应的温度是否小于调节温度(步骤1318)。如果感应温度不小于结束调节温度,则操作返回步骤1316。如果DTS小于结束调节温度,则热管理控制状态机禁用调节模式(步骤1320),操作返回到步骤1304。
返回到步骤1314,在实现最终的调节限制之后,热管理控制状态机并发地监控任意未决中断的所有PPU中断状态(步骤1322)。如果在实现调节时遇到中断,则热管理控制状态机暂时禁用任何调节模式直到中断已被处理,于是不管是部分调节状态还是全面调节状态都启用调节并且操作返回到步骤1308。参考图11进行对监控中断状态的深入讨论。
这样,Cell BE芯片所包括的热管理系统的热中断逻辑提供了一种动态手段来管理Cell BE芯片的热状态和保护Cell BE芯片及它的组件。
说明性实施例可以采取全硬件实施例、全软件实施例或既包含硬件单元又包含软件单元的实施例的形式。说明性实施例在软件中实现,该软件包括但不限于固件、驻留软件、微代码等。
此外,说明性实施例可以采取可以从计算机可用或计算机可读的介质访问的计算机程序产品的形式,该计算机程序产品提供程序代码以供计算机或任意指令执行系统使用或结合计算机或任意指令执行系统而使用。为了该描述的目的,计算机可用或计算机可读的介质可以是任意能够包含、存储、传送、传播或传输程序以供指令执行系统、设备或装置使用或结合指令执行系统、设备或装置而使用的有形设备。
介质可以是电子、磁、光、电磁、红外线或半导体系统(或者设备或装置)或传播媒介。计算机可读介质的示例包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前示例包括压缩光盘-只读存储器(CD-ROM)、光盘-读/写(CD-R/W)和DVD。
适合于存储和/或执行程序代码的数据处理系统将包括至少一个直接地或通过系统总线间接地与存储单元连接的处理器。存储单元可以包括在程序代码的实际执行期间使用的本地存储器、大容量存储器和高速缓冲存储器,为了减小在执行期间从大容量存储器获取代码的次数,高速缓冲存储器提供对至少一部分程序代码的临时存储。
输入/输出或I/O设备(包括但不限于键盘、显示器、指示设备等等)能够直接地或通过中间I/O控制器与系统连接。
网络适配器也可以与系统连接以使数据处理系统能够通过中间专用网络或公共网络与其他数据处理系统或者远程打印机或存储设备连接。调制解调器、电缆调制解调器和以太网卡正是几种当前可用类型的网络适配器。
已经为了说明和描述的目的而提出了对说明性实施例的描述,并且该描述并非旨在穷举或将本发明限制为所公开形式的说明性实施例。很多修改和变更对本领域的普通技术人员来说将是很明显的。选择和描述实施例是为了最好地说明说明性实施例的原理、实际应用并使本领域的普通技术人员能够针对具有适合于所考虑的特定用途的各种修改的各种实施例来理解说明性实施例。

Claims (17)

1.一种用于在集成电路中实现热调节逻辑的计算机实现的方法,包括:
从至少一个数字热传感器接收感应温度值,所述感应温度值表示所述集成电路中与所述数字热传感器关联的至少一个单元的当前温度;
报告所述感应温度,作为状态寄存器中的当前温度;以及
作为对所述当前温度超过第一预定值的响应,调节所述集成电路中的所述至少一个单元。
2.根据权利要求1所述的方法,其中所述接收步骤、报告步骤和调节步骤由驻留在所述集成电路内的热管理控制状态机执行。
3.根据权利要求1所述的方法,其中所述第一预定值是对调节温度的设置。
4.根据权利要求1所述的方法,进一步包括:
从所述数字热传感器接收新的感应温度;
确定所述新的感应温度是否小于第二预定值;以及
作为对所述新的感应温度达到所述第二预定值的响应,在所述集成电路中禁用调节模式。
5.根据权利要求4所述的方法,其中所述第二预定值是对禁用调节温度的设置。
6.根据权利要求4所述的方法,其中所述调节模式包括初始调节模式类型、初始调节量和初始调节模式持续时间。
7.根据权利要求6所述的方法,其中所述调节模式类型是以下至少一种:禁用动态调节、正常操作、始终调节Power处理器单元或协处理器单元、禁用内核停止安全性、或始终调节Power处理器单元或协处理器单元并且禁用内核停止安全性。
8.根据权利要求6所述的方法,其中所述初始调节量是停止所述至少一个单元的时间相对于运行所述至少一个单元的时间的百分比。
9.根据权利要求6所述的方法,其中所述初始调节模式持续时间是所述至少一个单元停止和运行的实际时钟周期数。
10.根据权利要求1所述的方法,进一步包括:
监控中断的发生;
禁用所述调节模式使得可以处理所述中断;以及
作为对正在处理的所述中断的响应,启用所述调节模式。
11.根据权利要求1所述的方法,其中所述集成电路是异质多内核处理器。
12.根据权利要求11所述的方法,其中所述数字热传感器驻留在所述异质多内核处理器中的一个内核内。
13.根据权利要求11所述的方法,其中所述数字热传感器驻留在所述异质多内核处理器内,但不是在内核内。
14.一种用于在集成电路中实现热调节逻辑的数据处理系统,包括:
用于从至少一个数字热传感器接收感应温度值的装置,所述感应温度值表示所述集成电路中与所述数字热传感器关联的至少一个单元的当前温度;
用于报告所述感应温度,作为状态寄存器中的当前温度的装置;以及
用于作为对所述当前温度超过第一预定值的响应,调节所述集成电路中的所述至少一个单元的装置。
15.根据权利要求14所述的系统,还包括:
用于从所述数字热传感器接收新的感应温度的装置;
用于确定所述新的感应温度是否小于第二预定值的装置;以及
用于作为对所述新的感应温度达到所述第二预定值的响应,在所述集成电路中禁用调节模式的装置。
16.根据权利要求15所述的系统,其中所述第一预定值是对调节温度的设置并且其中所述第二预定值是对禁用调节温度的设置。
17.根据权利要求14所述的系统,还包括:
用于监控中断的发生的装置;
用于禁用所述调节模式使得可以处理所述中断的装置;以及
用于作为对正在处理的所述中断的响应,启用所述调节模式的装置。
CNB2007101046479A 2006-06-21 2007-05-18 实现热调节逻辑的数据处理系统和方法 Active CN100517176C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/425,472 US7721128B2 (en) 2005-11-29 2006-06-21 Implementation of thermal throttling logic
US11/425,472 2006-06-21

Publications (2)

Publication Number Publication Date
CN101093412A CN101093412A (zh) 2007-12-26
CN100517176C true CN100517176C (zh) 2009-07-22

Family

ID=38991697

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007101046479A Active CN100517176C (zh) 2006-06-21 2007-05-18 实现热调节逻辑的数据处理系统和方法

Country Status (2)

Country Link
JP (1) JP4884311B2 (zh)
CN (1) CN100517176C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108292161A (zh) * 2015-12-18 2018-07-17 英特尔公司 具有工作负载适配的热传感器最大温度的集成电路热节流

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7757233B2 (en) 2008-07-10 2010-07-13 International Business Machines Corporation Controlling a computer system having a processor including a plurality of cores
JP5299161B2 (ja) 2008-08-22 2013-09-25 富士通株式会社 計算機装置および消費電力のサンプリング方法
US8356194B2 (en) 2010-01-28 2013-01-15 Cavium, Inc. Method and apparatus for estimating overshoot power after estimating power of executing events
US9261949B2 (en) 2010-10-29 2016-02-16 Advanced Micro Devices, Inc. Method for adaptive performance optimization of the soc
US8793512B2 (en) * 2010-10-29 2014-07-29 Advanced Micro Devices, Inc. Method and apparatus for thermal control of processing nodes
US9671844B2 (en) 2013-09-26 2017-06-06 Cavium, Inc. Method and apparatus for managing global chip power on a multicore system on chip
CN105094251B (zh) * 2014-05-23 2020-03-27 西安中兴新软件有限责任公司 一种智能温控装置、方法及终端
US10481014B2 (en) * 2017-06-15 2019-11-19 Micron Technology, Inc. Adaptive throttling
US10909054B2 (en) * 2019-04-26 2021-02-02 Samsung Electronics Co., Ltd. Method for status monitoring of acceleration kernels in a storage device and storage device employing the same

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6029006A (en) * 1996-12-23 2000-02-22 Motorola, Inc. Data processor with circuit for regulating instruction throughput while powered and method of operation
JPH11161378A (ja) * 1997-12-01 1999-06-18 Nec Niigata Ltd Cpu温度制御回路
JP3362649B2 (ja) * 1997-12-04 2003-01-07 松下電器産業株式会社 Cpu発熱制御装置および制御方法および制御方法を格納した媒体
US6415388B1 (en) * 1998-10-30 2002-07-02 Intel Corporation Method and apparatus for power throttling in a microprocessor using a closed loop feedback system
JP3781758B2 (ja) * 2004-06-04 2006-05-31 株式会社ソニー・コンピュータエンタテインメント プロセッサ、プロセッサシステム、温度推定装置、情報処理装置および温度推定方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108292161A (zh) * 2015-12-18 2018-07-17 英特尔公司 具有工作负载适配的热传感器最大温度的集成电路热节流

Also Published As

Publication number Publication date
CN101093412A (zh) 2007-12-26
JP4884311B2 (ja) 2012-02-29
JP2008004094A (ja) 2008-01-10

Similar Documents

Publication Publication Date Title
CN101356486B (zh) 集成电路热管理系统
CN100517176C (zh) 实现热调节逻辑的数据处理系统和方法
CN1975628B (zh) 生成一组处理器的硬件热分布的方法和系统
US9015501B2 (en) Structure for asymmetrical performance multi-processors
US7721128B2 (en) Implementation of thermal throttling logic
US7376532B2 (en) Maximal temperature logging
US9097590B2 (en) Tracing thermal data via performance monitoring
US9261935B2 (en) Allocating power to compute units based on energy efficiency
CN100533344C (zh) 用于测试实时软件的热调节控制的方法、系统和处理器
US7480585B2 (en) Tracing thermal data via performance monitoring
US7512513B2 (en) Thermal throttling control for testing of real-time software
KR102151628B1 (ko) 시스템 레벨의 열 관리를 주도하는 솔리드 스테이트 드라이브
TW200817877A (en) Selection of processor cores for optimal thermal performance
CN101027640A (zh) 为与虚拟机监控程序相关联的定时器提供支持
JP2007193775A (ja) ソフトウェア熱プロファイルおよびハードウェア熱プロファイルを使用してスケジューリングする、コンピュータによって実施する方法、データ処理システム、およびコンピュータ・プログラム
US7603576B2 (en) Hysteresis in thermal throttling
US7681053B2 (en) Thermal throttle control with minimal impact to interrupt latency
JP2007183925A (ja) ソフトウェア熱プロファイルの分析生成のコンピュータによって実施する方法、データ処理システム、およびコンピュータ・プログラム
JP2007200285A (ja) シミュレートされた環境でのアプリケーション用のソフトウェア熱プロファイル生成のコンピュータによって実施する方法、データ処理システム、およびコンピュータ・プログラム
CN100543645C (zh) 对中断等待影响最小的热调节控制方法、系统
CN100520680C (zh) 用于热调节中的滞后的方法、系统和处理器
WO2014031384A1 (en) Power management of multiple compute units sharing a cache
WO2021126690A1 (en) Arbitration scheme for coherent and non-coherent memory requests
CN116521473A (zh) 一种确定cpu温度异常的方法和计算设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant