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

文档序号:9816392阅读:来源:国知局
。因此,在应用(182)内安装性能测量功能可能需要改变现有程序的代码。还要牢记的是,计算机中加速器存在的全部意义在于,它比处理器快得多;因此,实现饱和的性能,尤其是针对相对小的任务,可能在处理器可以以使加速器饱和的速率提交任务之前需要在多个处理器上运行的应用的多个实例。与此同时,加速器性能的这种性能测量仍然只需要性能测量程序的一个实例,因此在应用的每个实例内具有单独的性能测量功能将有可能不是对资源的最佳利用。
[0015]也存储在RAM(168)中的是操作系统(154)。操作系统是负责应用程序的执行并负责代表应用程序管理对计算机资源、存储器、处理器时间和I/O功能的访问的计算机软件组件。对根据本发明实施例的硬件加速器的性能测量有用的操作系统包括UNIX?、LinUX?、微软XP?、AIX?、IBM的i5/0S?,以及本领域技术人员将想到的其它操作系统。图1的示例中的操作系统(154)、应用(182)、性能测量程序(184)以及控制块(210)被示出在RAM(168)中,但是许多这样的组件通常也被存储在非易失性存储器中,诸如被存储在盘驱动器(170)上或闪速存储器(188)中。
[0016]图1的计算机(152)包括通过扩展总线(160)和总线适配器(158)耦接到处理器(156)和计算机(152)的其它组件的盘驱动器适配器(172)。盘驱动器适配器(172)以盘驱动器(170)的形式将非易失性数据存储连接到计算机(152)。计算机中对根据本发明实施例的硬件加速器的性能测试有用的盘驱动器适配器包括集成驱动电子设备(“IDE”)适配器、小型计算机系统接口( “SCSI”)适配器,以及本领域技术人员将想到的其它适配器。非易失性计算机存储器还可以被实现为光盘驱动器、电可擦除可编程只读存储器(所谓的“EEPROM”或“闪速”存储器)、RAM驱动器等,如本领域技术人员将想到的那样。
[0017]图1的示例计算机(152)包括一个或多个输入/输出(‘I/O’)适配器(178)。1/0适配器例如通过用于控制到诸如计算机显示屏幕之类的显示设备的输出以及来自诸如键盘和鼠标之类的用户输入设备(181)的用户输入的软件驱动器和计算机硬件,来实现面向用户的输入/输出。图1的示例计算机(152)包括视频适配器(209),其是针对到诸如显示屏或计算机监视器之类的显示设备(180)的图形输出而专门设计的I/O适配器的示例。视频适配器
(209)通过高速视频总线(164)、总线适配器(158)和也是高速总线的前侧总线(162)连接到处理器(156)。
[0018]图1的示例计算机(152)包括用于与其它计算机(182)进行数据通信以及用于与数据通信网络(100)进行数据通信的通信适配器(167)。这样的数据通信可以通过RS-232连接、通过诸如通用串行总线(‘USB’)之类的外部总线、通过诸如IP数据通信网络之类的数据通信网络、以及以本领域技术人员将想到的其它方式,被串行地执行。通信适配器实现硬件级的数据通信,通过该通信适配器,一台计算机直接地或通过数据通信网络向另一台计算机发送数据通信。对根据本发明实施例的硬件加速器的性能测量有用的通信适配器的示例包括用于有线拨号通信的调制解调器、用于有线数据通信网络通信的以太网(IEEE 802.3)适配器,以及用于无线数据通信网络通信的802.11适配器。
[0019]为进一步解释,图2阐述了示出根据本发明实施例的硬件加速器的性能测量的示例方法的流程图。图2的方法被实施在与上面参考图1描述的计算机类似的计算机上,包括可操作地耦接到至少一个硬件加速器(157)的一个或多个计算机处理器(156)的计算机。在图2的方法中,处理器操作处于饱和状态的加速器,即通过以使加速器的数据处理资源饱和的速率向加速器提交数据处理任务(208),使得加速器拒绝(216)所提交的任务中的至少一些。如前面所提到的那样,数据处理任务(208)的提交可以由在处理器(156)中的一个或多个上执行的应用程序(182)的一个或多个实例执行,并且进行(206)实际测量的过程可以由单独的性能测量程序(184)执行。
[0020]在图2的示例中,操作(202)处于饱和状态的加速器包括初始化(204)针对提交给加速器的每个任务的控制块(210)。如前面所提到的那样,每个控制块是描述提交给加速器的任务的结构。每个控制块包括,例如,输入缓冲区地址、输入缓冲区尺寸、输出缓冲区地址、输出缓冲区尺寸,以及状态指示符-其中对状态的指示包括RETRY指示符(211),诸如当被设置时指示加速器已经拒绝该控制块所代表的任务的标志或存储器位,其中RETRY标志被设置为TRUE。即,在图2的示例方法中,在饱和状态下运行的加速器(157)拒绝所提交的任务(208)中的至少一些任务,并且加速器可以通过针对每个被拒绝任务在对应的控制块
(210)中设置RETRY标志(211),来指示(220)哪些任务被拒绝。作为在图2的示例中对RETRY指示符(211)的使用(220)的替代,加速器(157)可以通过在处理器上的状态寄存器(214)中设置BUSY位(212)来指示(218)它已经拒绝所提交的任务。
[0021]图2的方法还包括在加速器以饱和状态操作的同时,由处理器根据加速器接受多个提交的任务所经历的时间段来测量(206)加速器性能。作为操作(202)处于饱和状态的加速器、提交任务(208)等等的一部分,处理器读取系统时钟(215)并且在一些或甚至全部控制块中记录它们对应的任务被提交的时间(217)。通过知道N个任务(208)要被提交,处理器只需要记录第一个任务和最后一个任务的提交时间,以建立加速器接受多个提交的任务所经历的时间段-而不用将每个任务的提交时间写入到N个控制块当中的每一个。
[0022]而且,在图2的方法中,测量(206)加速器性能可选地包括将加速器接受多个提交的任务所经历的时间段作为加速器完成所接受的任务所需的时间段(222)。将接受时间作为完成时间是可行的,因为当在饱和状态下运行时,加速器必须完成一个任务以便能够接受下一个任务。以这种方式,接受时间追踪完成时间。
[0023]而且,在图2的方法中,测量加速器性能(206)可选地包括根据T = NAt1,)测量加速器性能(224),其中T代表以每秒所接受的任务表示的吞吐量;N是在时间to与^之间由加速器接受的所提交任务的数量;to是在加速器的饱和操作开始之后所接受的第一个提交任务的接受时间;而^是第N个提交任务的接受时间。
[0024]而且,在图2的方法中,测量加速器性能(206)可选地包括根据扮=!'*〗来测量加速器性能,其中B1代表以每秒的字节数表示的输入带宽;T代表以每秒所接受的任务表示的吞吐量;并且I代表每个接受的任务处理的输入数据字节的平均数。
[0025]而且,在图2的方法中,测量加速器性能(206)可选地包括根据Βο = Τ*0来测量加速器性能,其中Bo代表以每秒字节数表示的输出带宽;T代表以每秒所接受的任务表示的吞吐量;并且O代表每个接受的任务处理的输出数据字节的平均数。
[0026]为进一步解释,图3阐述了用于根据本发明实施例的硬件加速器的性能测量的另一示例方法的时序图。在图3的这个示例中,一个或多个计算机处理器(156)足够快地向加速器(157)提交(302)若干个数据处理任务,以便使加速器饱和。在图3中,已提交的任务用黑点表示,被拒绝的任务用交叉影线灰点表示,而已完成的任务用交叉影线白点表示。为了能够快速进行提交,应用可能必须针对许多任务提前准备所有必要的控制块,然后在紧凑循环中向加速器进行提交。为了能够足够快地进行提交以便使加速器饱和,应用的多个实例可能需要在多于一个处理器上运行。
[0027]在一些任务被接受之后,加速器不能承担更多的工作,因为它的资源(诸如内部任务队列或输入缓冲区)已满。在那时,加速器通过例如在处理器寄存器中设置BUSY位或在控制块中设置RETRY标志,来拒绝(304)所提交的任务。这种反馈是默认需要的,以用于让进行提交的应用知道其提交的任务是否被正确接受。应用还使用这种响应来识别加速器可能已经达到其性能极限。即,在这个时间点(304),加速器开始饱和操作。在这个点(304)之后,当下一个任务被成功接受(306)之后,在应用控制下,处理器记下来自定时器寄存器,即来自系统时钟的时间t ο。在处理器已经成功提交一定数量的N个任务之后,再次记下时间t i(308)。^与如之间的差代表加速器在处于饱和状态下操作(310)时
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1