第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 具有分布式时钟的集成电路的高效性能监控的制作方法

具有分布式时钟的集成电路的高效性能监控的制作方法

时间:2019-06-19 20:42:05

相关推荐

具有分布式时钟的集成电路的高效性能监控的制作方法

相关申请的交叉引用

本申请要求35u.s.c.119(e)下于8月10日提交的、序列号为62/717,545的美国申请的优先权和权益,其全部内容通过引用并入本文中。

背景技术:

在一个或更多个集成电路装置的性能监视期间,一个或更多个设备的性能监视器通常以计数的形式生成性能度量,例如,处理的数据的字节数或执行的指令数。保存或读取计数,然后使用称为触发信号的信号重置。性能监视器可以存在于一个或更多个设备上的不同位置,其在不同的时钟频率(不同的时钟域)下操作。将在不同本地时钟频率下操作的性能监视器分开,时钟频率可能随时间漂移。因此,关联来自不同性能监视器的性能度量变得具有挑战性。

该问题的一个解决方案是将所有性能度量放置到单个时钟域中,并向所有空间上分离的性能监视器广播参考时钟。然而,这种解决方案需要在整个集成电路装置中具有昂贵的数据和控制总线以及发射器和接收器的实现。

附图的几个视图的简要说明

为了容易地识别对任何特定元素或动作的讨论,参考数字中的一个或更多个最高有效位指代首先引入该元素的图号。

图1是根据本发明的实施例的示例性主机设备100的框图。

图2是根据本发明的实施例的示例性片上系统200的框图。

图3是根据本发明的实施例的示例性过程300。

图4是根据本发明的实施例的示例性序列图400。

详细描述

本文公开了系统和技术的实施例,以使一个或更多个集成电路装置上的不同时钟域中的性能监视器的输出相关。时钟域指的是响应于时钟信号而操作的设备中的一组逻辑(例如,集成电路装置的一个或更多个计算单元)。因此,不同时钟域中的逻辑响应不同的时钟信号。例如,时钟信号可能不同,因为它们以不同的频率振荡,或者彼此异相。

在一个实施例中,性能监视器分布在集成电路装置的各个时钟域中。此外,中央调度器放置在可访问参考时钟的时钟域中的集成电路中。在一个实施例中,例如取决于集成电路装置的尺寸,可以存在多于一个中央调度器。中央调度器可以但不是必须在参考时钟域中操作。在一个实现中,中央调度器在不是参考时钟的时钟域中操作。中央调度器生成到分布在集成电路装置周围的性能监视器的触发信号。触发信号可以是简单的边沿触发信号或电平触发信号,其需要最小的分布架构(例如,单条线并且没有编码或协议收发器)。调度器的核心方面是指中央调度器充当向各种性能监视器广播的触发信号的共同起源点的观念。中央调度器不需要物理地集中放置在性能监视器中。

性能监视器通过形成返回分组来响应触发信号,该返回分组可以存储在存储器中。

另外,当中央调度器向一个或更多个性能监视器广播触发信号时,中央调度器可以形成参考分组(其也可以存储在存储器中)。参考分组包括与参考时钟相关联的值(例如,“时间”或计数)和用于触发信号的中央调度器的标识符。标识符可以是每当中央调度器广播触发信号时递增的计数值。例如,参考分组<5,501200>将指示第五触发信号是中央调度器在距参考时钟的预定时期(epoch)501200纳秒或大约501200纳秒处广播的。当中央调度器在与参考时钟不同的时钟域中操作时,参考分组还可以包括中央调度器在其中操作的域的本地时钟的值。

每个性能监视器通过生成将触发信号与本地性能计数、本地时钟值和本地触发信号标识符中的一个或更多个相关联的返回分组来对来自中央调度器的触发信号作出反应。本地触发信号标识符是性能监视器与从中央调度器接收的每个触发信号相关联的标识符。优选地,本地触发标识符由性能监视器以与中央调度器生成其触发标识符相同的方式生成,使得中央调度器和性能监视器将相同的标识符值与每个触发信号相关联。例如,来自性能监视器的返回分组<5,25,30205>将指示在本地时钟时间值为30205处或附近和当本地性能计数器具有计数值25时从中央调度器接收的第五触发信号。本地性能计数值(25)可以是任何性能度量的计数,例如,由性能监视器监视的逻辑处理的数据的字节或执行的指令。

在一些实施例中,性能监视器可以针对所接收的单个触发信号引起多个返回分组的生成。例如,性能监视器可以引起返回分组的生成,所述返回分组仅关联触发器标识符和本地时钟值。然后,性能监视器可以使其自身和/或同一时钟域中的其他性能监视器生成仅将触发器标识符与性能计数相关联的返回分组。这种功能分配可以减少返回分组中提供的信息的总带宽,因为仅提供单个本地时钟值并且其与由同一时钟域中的多个性能监视器维护的多个性能计数相关联。

可以分析(例如,通过应用软件)生成并保存在存储器中的各个参考分组和返回分组,以将每个触发信号和性能计数与参考时钟相关联。换句话说,可以处理参考分组和返回分组以将所有本地性能计数置于参考时钟的公共时间轴中。

在一个实施例中,参考分组可以包括附加信息。例如,参考分组可以包括书签。书签是从中央调度器外部的源提供给中央调度器的值。这种外部源可以是中央调度器外部的寄存器或计算逻辑。外部源可以位于与中央调度器相同的设备上,或者位于不同的单独设备上。书签值可以由在设备上执行的软件生成,或者可以是由操作设备的用户输入的值。

在利用多个中央调度器的实施例中,参考分组可以包括生成参考分组的中央调度器的标识。在这样的实施例中,中央调度器标识可以从中央调度器外部的源提供给每个中央调度器。

图1是主机设备100的一个实施例的框图,其中可以实现本发明的一个或更多个方面。主机设备100包括系统数据总线132,cpu102,一个或更多个输入设备108,系统存储器104,图形处理系统106和一个或更多个显示设备110。在备选实施例中,cpu102,图形处理系统106的全部或一部分,系统数据总线132,系统存储器104或其任何组合可以集成到单个处理单元中。

如图所示,系统数据总线132连接cpu102、一个或更多个输入设备108、系统存储器104和图形处理系统106。在备选实施例中,系统存储器104可以直接连接到cpu102。cpu102从一个或更多个输入设备108接收用户输入,执行存储在系统存储器104中的编程指令,对存储在系统存储器104中的数据进行操作,并配置图形处理系统106以执行特定任务。系统存储器104通常包括用于存储编程指令和数据的动态随机存取存储器(dram),以供cpu102和图形处理系统106处理。图形处理系统106接收由cpu102发送的指令/命令并处理它们以执行各种图形和计算功能,例如,在显示设备110上渲染和显示图形或执行神经网络计算。

还如图所示,系统存储器104包括应用程序112、各种api114(应用程序编程接口)和图形处理单元驱动器116(gpu驱动器)的一部分或全部。尽管未在图中示出,但系统存储器104还包括操作系统的一部分或全部。api114中的一些为应用程序112提供接口以对操作系统进行调用。存储在系统存储器104中的指令(例如,应用程序112、api114、操作系统和gpu驱动程序116的一部分)可以进行传输和在cpu102上执行。

图形处理系统106包括gpu118(图形处理单元),片上gpu存储器122,片上gpu数据总线136,gpu本地存储器120和gpu数据总线134。gpu118被配置成经由片上gpu数据总线136与片上gpu存储器122通信,和经由gpu数据总线134与gpu本地存储器120通信。gpu118可以接收由cpu102发送的指令/命令,处理它们,并将结果存储在gpu本地存储器120中。

gpu118包括性能监视器124和中央调度器138。下面结合图3和图4更全面地描述结合中央调度器138的每个性能监视器124的操作。

可以指示中央调度器138广播一个或更多个触发信号。例如,来自在cpu102上执行的应用程序112的指令可以使得来自操作系统的指令在cpu102上执行,从而使得来自gpu驱动程序116的指令在cpu102上执行。继续该示例,来自gpu驱动程序116的指令可以然后使某些gpu编程代码128存储在片上gpu存储器122上,并使gpu118执行gpu编程代码128。gpu118执行gpu编程代码128然后可以使中央调度器138发送一个或更多个触发信号到性能监视器124。到性能监视器124的一个或更多个触发信号可以作为二进制电平或边沿触发器广播。在一些实施例中,性能监视器可以通过单条线接收每个性能监视器的触发信号,因此需要跨集成电路的最小通信基础设施。每个性能监视器124可以配置成响应来自中央调度器138的触发信号或忽略它。在一些情况下,中央调度器138可以配置成定期或基于gpu118接收的中断来广播触发信号。

中央调度器138示出为gpu118的一部分,但是这种情况并不存在于所有实施例中。中央调度器138可以在gpu118的外部,并且可以包括在任何其他集成电路装置中。另外,性能监视器124还可以包括在任何其他集成电路装置中。如上所述,本文公开的技术适用于包括在不同时钟域中操作的多个处理区域的任何设备或电路。

gpu118可以装备有任何数量的片上gpu存储器122和gpu本地存储器120,包括没有,并且可以以任何组合采用片上gpu存储器122,gpu本地存储器120或系统存储器104以用于存储器操作。

片上gpu存储器122配置成包括gpu编程代码128和片上缓冲器130。gpu编程代码128可以经由系统数据总线132从图形处理单元驱动器116传输到片上gpu存储器122。片上缓冲器130通常用于存储需要快速访问的数据,以减少在gpu上执行指令时的等待时间。

gpu本地存储器120通常包括片外动态随机存取存储器(dram),并且还用于存储gpu118使用的数据和指令。如图所示,gpu本地存储器120包括帧缓冲器126。帧缓冲器126存储可用于驱动显示设备110的数据。通常,帧缓冲器126可以存储输入到gpu118或由gpu118输出的数据。在一个示例中,帧缓冲器126存储由gpu118渲染的一个或更多个图形图像。

一个或更多个显示设备110是能够发出与输入数据信号对应的视觉图像的一个或更多个输出设备。例如,显示设备可以是阴极射线管(crt)监视器,液晶显示器或任何其他合适的显示系统。通常通过扫描出存储在帧缓冲器126中的一个或更多个图形图像的内容来生成到显示设备110的输入数据信号。

图2示出了根据本发明一个实施例的示例性片上系统200。片上系统200包括cpu102,gpu118,参考时钟214和可选的主路由器212。gpu118包括中央调度器138,性能监视器124和路由器208。cpu102包括中央调度器206,性能监视器204和路由器210。

每个中央调度器从参考时钟214接收参考时钟值。参考时钟214的位置是设计选择。通常,参考时钟214不需要与中央调度器处于相同的时钟域中,尽管它可以如此。

路由器208从gpu118的性能监视器124接收返回分组。路由器208可以通过将单独的返回分组的性能计数聚合在一起来将一个或更多个返回分组(诸如源自公共时钟域中的一个或更多个性能监视器的那些)合并成单个返回分组(也称为聚合返回分组)。这种合并可以使主机设备的返回分组带宽显著减少。

路由器208还可以向返回分组添加附加信息,例如,标识与结果分组相关联的一个或更多个时钟域或一个或更多个计算单元的信息。中央调度器206和路由器210为cpu102的性能监视器204提供类似的功能。

主路由器212是可选的,并且可以对返回分组执行附加数据减少和流控制。

图3提供了根据本发明实施例的示例性过程300。过程300可以用在包括中央调度器和多个性能监视器的系统(包括其中一些性能监视器在不同的本地时钟域中操作的系统)中。

在框302处,中央调度器从主机设备接收命令(例如,作为在主机设备上执行软件的结果)。在一个实施例中,中央调度器可以接收不同的命令。例如,这样的一个命令可以指示中央调度器应该向一个或更多个性能监视器广播触发信号。另一个命令可以指示中央调度器应该开始向一个或更多个性能监视器定期广播触发信号。另一个命令可以指示中央调度器应该停止向一个或更多个性能监视器定期广播触发信号。中央调度器还可以从主机设备接收附加信息,例如,应该执行定期广播的频率,一个或更多个书签,以及应该接收一个或更多个触发信号的一个或更多个性能监视器的标识。如上所述,中央调度器和性能监视器可以体现在主机设备本身上或者在与主机设备分开的一个或更多个其他设备上。

主机设备可以使得一个或更多个命令被发送到中央调度器,以描绘工作单元并执行工作单元的性能监视。例如,在代码段执行之前,主机设备可以向中央调度器发出命令以开始定期广播触发信号。一旦执行了代码段,主机可以向中央调度器发出命令以停止定期广播。

在一个实施例中,主机设备还可以使得书签被发送到中央调度器,以使得在性能监视期间用书签标记一个或更多个返回分组。

在框304处,中央调度器(在从主机接收到命令时)向一个或更多个性能监视器广播来自中央调度器的触发信号。在一个实施例中,中央调度器在参考时钟的时钟域中操作,并且一个或更多个性能监视器中的每一个在不同的时钟域中操作,每个域具有对应的本地时钟。在其他实施例中,中央调度器不在参考时钟的时钟域中操作,而是访问由参考时钟生成的值。

在框310处,中央调度器生成参考分组,该参考分组包括在框304处广播的触发信号的标识和参考时钟值。参考分组还可以包括其他信息,例如,中央调度器的唯一标识符和书签。将参考分组传送到存储器以进行存储。

在框306处,接收触发信号的每个性能监视器生成返回分组,然后将其存储在存储器中。在框310处,可以与参考分组的生成并行地发生。在一个实施例中,每个返回分组包括本地时钟值、触发信号的标识和本地性能计数。返回分组还可以包括其他信息,例如,生成返回分组的性能监视器的标识符。另外,在框306处,每个性能监视器重置其本地性能计数,例如通过将其性能计数器设置为零。优选地,本地时钟值继续前进,并且在生成返回分组时不重置。

在框310中生成参考分组与在框306中生成一个或更多个返回分组之间的间隔t1足够小,以确保参考分组中的参考时钟值可以与对应的返回分组相关联。在一个示例中,当来自中央调度器的触发被编程为以固定的周期性速率发生时,足够小的间隔t1可以大约是触发之间的周期的1%。可接受的间隔t1将根据实现方式而变化。通常,可接受的间隔t1与中央调度器的触发率成比例。

在一个实施例中,中央调度器可以延迟到存储器的参考分组的生成,以引起到本地性能监视器的触发信号的传播延迟,从而减小t1的值。

在框308和框312处,返回分组和参考分组到达存储器。可以在性能监视器接收到触发信号之前、之后或同时将参考分组存储到存储器,并生成返回分组。通常,这些框是并行的和异步的,并且参考分组和返回分组可以同时或在不同时间传送到存储器。只要间隔t1足够小以使得参考分组能够与相应的返回分组相关联,则参考分组和相应的返回分组到达存储器之间的间隔t2不是重要因素。

图4示出了根据本发明实施例的性能监视器过程400的时序图。参考时钟402向中央调度器138提供参考时钟值406,每个性能监视器426(仅示出一个)从对应的本地时钟404接收本地时钟值408。相对于性能监视器使用的本地时钟,参考时钟402可以包括低漂移、高精度的振荡器,并且在某些情况下可以与cpu102使用的时钟同步。在某些情况下,可以从相同的本地时钟操作多个性能监视器。

应用程序112使得第一书签410和命令被提供给中央调度器138,并且中央调度器138存储第一书签410以供后续使用。该命令指示中央调度器138向一个或更多个性能监视器广播触发信号。

响应于该命令,中央调度器138使得触发信号412几乎同时地(考虑到信号传播延迟的微小差异)被发送到每个性能监视器426,并发送参考分组414以存储在系统存储器104中。参考分组414包括触发信号412的标识、参考时钟值406和第一书签。

响应于接收到触发信号412,性能监视器426将返回分组416发送到系统存储器104。返回分组416包括本地时钟值408和触发信号412的标识,以及表示与性能监视器426正在监视的逻辑相关联的性能度量的一个或更多个值。性能度量包括自性能监视器426接收到先前触发信号(在触发信号412之前)以来由性能监视器426获得的度量。

在该示例中,中央调度器138将后续触发信号418发送到性能监视器426,并将另一个对应的参考分组420发送到系统存储器104。可以将触发信号418称为从中央调度器138内部生成的触发信号。在一些实现中,内部生成的触发信号可以由中央调度器138周期性地生成。性能监视器426通过将另一个相应的返回分组422发送到系统存储器104来响应触发信号418。

此时,在该示例中,应用程序112向中央调度器138发送第二书签424和命令。中央调度器138将另一个触发信号428发送到性能监视器426,并将另一个参考分组430发送到系统存储器104。参考分组430现在包括第二书签424而不是第一书签410。性能监视器426通过将返回分组432发送到系统存储器104来响应触发信号428,等等。

本文使用的术语应当符合相关领域中的普通含义或者在上下文中由它们的用途所指示的含义。

技术特征:

1.一种集成电路装置,包括:

多个时钟域,每个所述时钟域具有相应的本地时钟;

多个性能监视器,每个所述性能监视器都在不同的时钟域中操作;和

中央调度器,耦合到参考时钟,所述中央调度器被配置为:

向所述多个性能监视器广播触发信号;

形成参考分组,所述参考分组包括所述触发信号的第一标识和来自所述参考时钟的参考时钟值;和

将所述参考分组保存在存储器中,

其中每个所述性能监视器适用于:

通过形成要保存在所述存储器中的返回分组来响应所述触发信号;以及

通过重置一个或更多个本地性能计数来响应所述触发信号。

2.根据权利要求1所述的集成电路装置,还包括:路由器,所述路由器被配置为:

对来自所述性能监视器的所述返回分组执行数据减少,以形成至少一个聚合返回分组,以及

将所述至少一个聚合返回分组保存在所述存储器中。

3.根据权利要求1所述的集成电路装置,其中每个所述返回分组包括:

基于所述相应的本地时钟的本地时钟值;

所述触发信号的第二标识;和

本地性能计数。

4.根据权利要求3所述的集成电路装置,其中所述第一标识和所述第二标识相同,所述第一标识由所述中央调度器生成,并且所述第二标识由所述性能监视器中的至少一个生成。

5.根据权利要求1所述的集成电路装置,其中所述中央调度器被配置为接收命令。

6.根据权利要求5所述的集成电路装置,其中所述命令是广播触发信号的命令、开始定期广播触发信号的命令或停止定期广播触发信号的命令中的一个。

7.根据权利要求1所述的集成电路装置,其中所述触发信号的所述第一标识指示由所述中央调度器广播的触发信号的总数。

8.根据权利要求1所述的集成电路装置,其中所述参考分组还包括由所述中央调度器接收到的书签。

9.根据权利要求1所述的集成电路装置,其中所述参考分组还包括用于所述中央调度器的本地时钟值。

10.根据权利要求1所述的集成电路装置,其中所述触发信号包括能够在单条线上发送的二进制电平或边沿触发器。

11.根据权利要求1所述的集成电路装置,其中所述集成电路装置是图形处理单元。

12.一种方法,包括:

向多个性能监视器广播来自中央调度器的触发信号,所述中央调度器访问参考时钟,每个所述性能监视器在相应的本地时钟的域中操作;

将参考分组保存在存储器中,所述参考分组包括所述触发信号的第一标识和基于所述参考时钟的参考时钟值;以及

对于每个所述性能监视器,通过形成至所述存储器的返回分组来响应所述触发信号,并通过重置一个或更多个本地性能计数值来响应所述触发信号。

13.根据权利要求12所述的方法,其中每个所述返回分组包括:

基于所述相应的本地时钟的本地时钟值;

所述触发信号的第二标识;和

本地性能计数。

14.根据权利要求13所述的方法,其中所述第一标识和所述第二标识相同,所述第一标识由所述中央调度器生成,并且所述第二标识由所述性能监视器中的至少一个生成。

15.根据权利要求12所述的方法,还包括:

接收命令,其中所述命令是广播触发信号的命令、开始定期广播触发信号的命令或停止定期广播触发信号的命令中的一个。

16.根据权利要求12所述的方法,其中所述触发信号的所述第一标识指示广播触发信号的总数。

17.根据权利要求12所述的方法,其中所述参考分组还包括书签。

18.根据权利要求12所述的方法,其中所述参考分组还包括用于所述中央调度器的本地时钟值。

19.根据权利要求12所述的方法,其中所述触发信号包括能够在单条线上发送的二进制电平或边沿触发器。

20.根据权利要求12所述的方法,其中所述性能监视器位于中央处理单元中。

技术总结

本发明提供了一种具有分布式时钟的集成电路的高效性能监控。性能监视器设置在集成电路的不同时钟域中的计算单元上。中央调度器生成性能监视器的触发信号,以使性能监视器采用报告相关计算单元的本地性能计数的分组响应触发信号。分组中的数据被关联到单个时钟域中。通过应用触发和报告系统,所公开的方法可以同步不同时钟域中的各个计算单元的性能度量,而不必将复杂的全局时钟参考信号路由到所有性能监视器。

技术研发人员:R·艾伦;A·梅内塞斯;T·奥格特里;S·卡马拉普卡;A·罗纳德

受保护的技术使用者:辉达公司

技术研发日:.06.24

技术公布日:.02.21

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。