硬件加速器的性能测量的制作方法

文档序号:9816392阅读:252来源:国知局
硬件加速器的性能测量的制作方法
【技术领域】
[0001]本发明的领域是数据处理,或者更具体地,是用于硬件加速器的性能测量的方法、装置和产品。
【背景技术】
[0002]通用处理器在过去的几十年里已经是计算的主力,被用来构建单处理器系统、对称多处理器系统和芯片多处理器系统。虽然通用核心被设计成在工作负荷的集合上实现最好的“平均”表现,但是对于每个独立的工作负荷来说它们通常是次优的。在过去的几十年里,通用处理核心固有的低效(由于行业标准的约束和在广泛的工作负荷集合上的平均良好性能的设计目标引入的)通常被隐藏起来,这归因于每单位面积的指数级晶体管密度增长(Moore’s Law,摩尔定律)和每单位面积的恒定功率密度(Dennard Scaling,丹纳德缩放比例定律)。新的现实是,虽然摩尔定律继续提供每单位面积不断增加的晶体管数量,但丹纳德缩放比例定律已经显著地放缓。这意味着利用通用核心的性能增长只有在芯片和系统功率预算的超线性增长的情况下才是可能的。因此,未来的计算机器将被迫从通用计算机的能量低效向专门的特定于任务的处理器或加速器移动。针对特定的工作负荷使硬件核心专门化给出了显著的性能优势,以及每瓦特性能的优势。从通用处理器向特定于任务的加速器卸载某些任务可以导致执行的加速(在一些情况下,按照任务的数量级加速),而与在通用处理器上做同样的任务相比,消耗较少的功率。
[0003]测量加速器的性能被用来验证加速器设计。它对于理解设计瓶颈、引导芯片设计、系统设计和软件设计是有价值的工具。但是,对于准确地进行这种测量存在显著的挑战。通常,有两种测量加速器性能的方式。第一种涉及在加速器中对性能计数器(如果可用的话)编程。第二种方法使用软件测量工具来识别加速器对工作的完成,随后读取定时器寄存器。第二种方法是优选的方法-它更普遍(即使在特定的性能计数器不可用时也工作)、更可靠(无需依赖于可以对性能计数器高效地编程的库)、而且更简单(无需了解可用的性能计数器的错综复杂、它们的意思等等)。例如,在实验室系统提出期间,性能计数器常常不是现成可用的,至少它们不是测量工具可用的。甚至在性能计数器变得可用之后,也有需要解决的错误。同时,第二种方法继续工作。这就是说,第二方法依赖于对在通用核心上运行并与加速器通信的测量软件的使用。
[0004]这些现有技术方法存在问题。软件测量工具必须与-经由片上或片下互连附接的-相对远离的加速器通信(或者直接地或者经由存储器)。此外,软件必须执行至少少量的指令来测试加速器对工作的完成,执行该指令是要花时间的。而且,所有完成后的测量步骤都花时间,从而导致最佳情况下的测量粒度-即,软件测试任务完成所需的最短时间。这些现有技术在加速器处的任务完成速率与这种测量粒度相比较慢的时候起作用,但是加速器处的完成速率常常比在通用核心上运行的软件测量工具或应用可用的粒度高得多-毕竟,加速的全部意义就是比任何通用核心或处理器都进行得快。对于针对少量数据进行工作的加速器,诸如对小的以太网分组的加密,更是如此。在这种情况下,主要任务甚至在性能测量工具能够探测和识别出该任务被完成之前一个统计上显著的时间量的时候就可能已经在加速器处完成。

【发明内容】

[0005]描述了用于硬件加速器的性能测量的方法、装置和产品,其中一个或多个计算机处理器可操作地耦接到至少一个硬件加速器,并且计算机存储器可操作地耦接到该一个或多个计算机处理器,包括由一个或多个处理器操作处于饱和状态的加速器,由处理器以使得加速器的数据处理资源饱和的速率向加速器提交数据处理任务,从而使加速器拒绝所提交的任务中的至少一些;并且在加速器在饱和状态下操作的同时,由处理器根据加速器接受多个所提交的任务所经历的时间段来测量加速器性能。
[0006]根据以下如附图所示出的对本发明的示例实施例的更详细的描述,本发明的前述和其它目的、特征和优势将是显而易见的,其中相同的附图标记通常代表本发明的示例实施例中的相同部分。
【附图说明】
[0007]图1阐述了包括在硬件加速器的性能测量中有用的示例计算机的自动化计算机器的框图。
[0008]图2阐述了示出硬件加速器的性能测量的示例方法的流程图。
[0009]图3阐述了用于硬件加速器的性能测量的另一示例方法的时序图。
[0010]图4阐述了示出用于硬件加速器的性能测量的另一示例方法的流程图。
【具体实施方式】
[0011]从图1开始,参考附图来描述根据本发明的用于硬件加速器的性能测量的示例方法、装置和产品。根据本发明的硬件加速器的性能测量通常是利用计算机,即利用自动化的计算机器实现的。因此,图1阐述了包括在根据本发明实施例的硬件加速器的性能测量中有用的示例计算机(152)的自动化计算机器的框图。图1的计算机(152)包括一个或多个计算机处理器(156)以及随机存取存储器(168)(‘RAM’),随机存取存储器(168)通过高速存储器总线(166)和总线适配器(158)连接到处理器(156)和计算机(152)的其它组件。处理器(156)在这里被称为“一个或多个计算机处理器”,但是技术人员读者将理解,一些计算机可以只利用单个处理器测量加速器性能,而根据本发明的实施例来测量加速器性能的其它计算机将包含许多处理器、处理器当中的多个计算核心、多个处理器内的多个硬件执行线程等等。
[0012]图1的示例计算机还包括硬件加速器(157)。加速器或协处理器可以具有与通用处理器类似的能力。一些加速器可以从存储器中取出指令、执行程序流控制指令、进行输入/输出操作、管理存储器,等等。但是,加速器通常需要主机或主处理器、通用处理器,来获取加速器指令并且处理除加速功能之外的其它操作。在本说明书中为了清楚起见,通用处理器被称为“处理器”,并且专门的协处理器被称为“加速器”。适合于进行根据本发明实施例的性能测量的加速器包括浮点算术协处理器、图形引擎、视频适配器、数字信号处理器、高速I/o接口、加密加速器,等等。在图1的示例中,加速器(157)通过扩展总线(160)、总线适配器(158)和前侧总线(162)耦接到处理器(156),所有这些都仅仅是示例体系架构,用于解释而不是用于限制。读者将理解的是,一些加速器,例如数学协处理器,直接在与通用处理器相同的集成电路基底上实现,并通过片上互连耦接到处理器。视频适配器(209)是通过专用的高速视频总线(164)而不是扩展总线(160)连接到处理器(157)的视频加速器的示例。互连加速器和处理器的其它方式是本领域技术人员能够想到的,并且所有这些方式也都在本发明的范围之内。
[0013]在RAM(168)中存储的是操作处理器(156)的应用程序(182),以使得处理器向加速器(157)提交数据处理任务(208)。在应用控制下,处理器通过首先操作处于饱和状态的加速器,即,通过以使加速器的数据处理资源饱和的速率向加速器提交数据处理任务,来测量加速器性能,从而使得加速器拒绝所提交的任务中的至少一些任务。RAM还包含加速器控制块(210),其中每个控制块是代表和描述提交给加速器的任务的结构。每个控制块包括,例如,输入缓冲区地址、输入缓冲区尺寸、输出缓冲区地址、输出缓冲区尺寸,以及状态-包括RETRY指示符(211),诸如当被设置时指示加速器已经拒绝该控制块所代表的任务的标志或存储器位(memory bi t),其中RETRY标志被设置为TRUE。作为RETRY指示符(211)的替代,至少在一些实施例中,加速器可以通过在处理器中的一个或多个处理器本身上的状态寄存器(214)中设置BUSY位(212),来发信号通知它已经拒绝所提交的任务。实现拒绝所提交的任务的加速器指示的其它方式将是本领域技术人员能够想到的,并且所有这些方式都完全在本发明的范围之内。
[0014]也在图1的示例中的RAM(168)中的是性能测量程序(184),其在加速器在饱和状态下操作的同时操作处理器(156)中的至少一个,用以根据加速器(157)接受多个提交的任务
(208)所经历的时间段来测量加速器性能。技术人员读者会想知道性能测量程序(184)为何被实现为单独的程序,而不是将该加速器用于数据处理任务的加速器的应用(182)的组成部分。答案是它可以;性能测量程序可以被实现为应用(182)内的线程或子例程,但是在许多实施例中,它将被单独地实现,如本文所示的那样。应用(182)可以是标准应用程序、会计程序或计算机游戏,它对于测量加速器性能是有用的,这是因为它已经被设置为这样做
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1