硬件加速器及方法、中央处理单元、计算设备的制作方法

文档序号:6429691阅读:213来源:国知局
专利名称:硬件加速器及方法、中央处理单元、计算设备的制作方法
技术领域
本发明总体上涉及计算机技术,特别地,本发明涉及硬件加速器及方法、中央处理单元、计算设备。
背景技术
在现代的计算设备的中央处理单元(CPU)中,往往采用多线程架构以提高处理效率。在多线程架构中,为了进一步提高任务的处理速度,往往又采用加速器,其被用于从线程上卸载任务并执行,并将执行结果返回线程。由于加速器是一个处理速度远高于线程的硬件,这样就进一步提高了处理效率。 在大多数的多线程架构中,由于线程数量远多于加速器数量,导致多个硬件线程共用一个加速器。图I示出了一种常见的硬件加速器103和多个硬件线程101组成的架构。硬件加速器103包括总线接口 1031以及任务加速单元1032。硬件线程101以如图3所示的请求的形式将任务发布到硬件加速器103。在任务加速单元1032对该任务加速完毕后,结果被返回到与硬件线程关联的目标数据缓存1011中。图2示出了硬件加速器103的具体结构。任务加载器10321响应于新任务,将该任务加载到任务队列单元10322中排队。加速器引擎10323按排队的顺序,依次从任务队列单元10322中取出任务来处理。结果输出单元10324将处理的结果返回到发出请求的硬件线程中的目标数据缓存1011。图3是硬件线程1011向硬件加速器103发请求的帧格式。操作码301识别本次操作。加速器ID 302识别请求哪一个硬件加速器103用于加速。请求地址303识别发出请求的硬件线程101的地址。由于当前有任务在硬件加速器中执行的线程不知道由其他线程发布的任务的相关信息,也不知道硬件加速器中任务队列的状态,因此在硬件线程中引入同步机制或者异步机制以便等待任务执行完毕。同步机制一般是由轮询语句不断查询目标数据缓存1011的状态,或者是由总线102上的监测机制来检测目标数据缓存1011,一旦发现有更新的数据则通知硬件线程101。硬件线程101在向硬件加速器103发出请求和从目标数据缓存1011取得结果之间不执行其它任务,因此降低了资源利用率且提高了处理开销,但易于控制对时间敏感的应用的处理延时。在异步机制中,硬件线程101在向硬件加速器103发出请求和从目标数据缓存1011取得结果之间执行其它任务。在以后的某个时间点,硬件线程101被中断等唤醒,从目标数据缓存1011取回结果。这样,提高了资源利用率且降低了处理开销,但不易于控制对时间敏感的应用的处理延时。无论是同步机制还是异步机制,都需要监控目标数据缓存的开销(该开销是指监控目标数据缓存需要占用的资源、以及需要额外执行的动作)。另外,硬件线程不知道其得到处理结果需要等待的时间,因而不利于其任务规划。

发明内容
本发明的一方面解决的一个问题是,使硬件线程知道其得到处理结果需要等待的时间,因而有利于其任务规划。根据本发明的一方面,提供了一种硬件加速器,包括任务加速单元,被配置为响应于硬件线程的关于新任务的请求,加速处理该新任务并产生任务处理结果;任务时间预测单元,被配置为预测该新任务等待总时间以便返回到与该硬件线程关联的特定地址。根据本发明的一方面,提供了一种中央处理单元,包括上述硬件加速器;硬件线程,其针对特定任务,请求该硬件加速器加速执行该特定任务。根据本发明的一方面,提供了一种计算设备,包括上述中央处理单元。
根据本发明的一方面,提供了一种硬件加速方法,包括响应于硬件线程的关于新任务的请求,加速处理该新任务并产生任务处理结果;预测该新任务等待总时间以便返回到与该硬件线程关联的特定地址。本发明的一方面带来的一个有益效果是,使硬件线程知道其得到处理结果需要等待的时间,因而有利于其任务规划。


本申请中所参考的附图只用于示例本发明的典型实施例,不应该认为是对本发明范围的限制。图I示出了现有技术的硬件加速器的工作原理;图2示出了图I中任务加速单元的一种具体结构;图3为现有技术中硬件线程向硬件加速器发送的请求帧格式;图4示出了适于用来实现本发明实施方式的示例性计算系统的框图。图5为根据本公开的一个实施例的硬件加速器的工作原理示意图;图6示出了图4中任务时间预测单元的一种具体实施方式
;图7为根据本公开的一个实施例的硬件线程向硬件加速器发送的请求帧格式;图8示出了图4中任务时间预测单元的另一种具体实施方式
;图9为根据本公开的一个实施例的排队任务帧格式;图10示出了图4中任务时间预测单元的另一种具体实施方式
;以及图11是根据本公开的一个实施例的方法的流程图。
具体实施例方式下列讨论中,提供大量具体的细节以帮助彻底了解本发明。然而,很显然对于本领域技术人员来说,即使没有这些具体细节,并不影响对本发明的理解。并且应该认识到,使用如下的任何具体术语仅仅是为了方便描述,因此,本发明不应当局限于只用在这样的术语所表示和/或暗示的任何特定应用中。图4示出了适于用来实现本发明实施方式的示例性计算系统400的框图。如所示,计算机系统400可以包括CPU(中央处理单元)401、RAM(随机存取存储器)402、R0M(只读存储器)403、系统总线404、硬盘控制器405、键盘控制器406、串行接口控制器407、并行接口控制器408、显示控制器409、硬盘410、键盘411、串行外部设备412、并行外部设备413和显示器414。在这些设备中,与系统总线404耦合的有CPU 401、RAM 402、ROM 403、硬盘控制器405、键盘控制器406、串行控制器407、并行控制器408和显示控制器409。硬盘410与硬盘控制器405耦合,键盘411与键盘控制器406耦合,串行外部设备412与串行接口控制器407耦合,并行外部设备413与并行接口控制器408耦合,以及显示器414与显示控制器409耦合。应当理解,图4所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。图5的硬件加速器103和硬件线程101包含在图4的CPU中。如图5所示,相比于图1,本公开的一个实施例在硬件加速器103中增加了任务时间预测单元1035。硬件线程101以如图7所示的帧格式通过总线102向硬件加速器103发送请求。图7与图3的区别在于增加了定时器地址字段304,其指定预测时间返回到的定时器地址。任务时间预测单元1035响应于接收到新任务,预测该新任务等待总时间。新任务等待总时间即从硬件加速器接收到新任务请求到该新任务被执行完需要的时间,其等于该新任务本身的执行所需的 时间以及在接收到该新任务时在硬件加速器中还未执行完的那些任务执行完所需的时间。例如,硬件加速器新接收到任务E,此时硬件加速器尚未执行完的任务是A、B、C、D。执行完任务E需要2分钟,执行完A、B、C、D需要10分钟,因此新任务E的等待总时间是10分钟+2分钟=12分钟。对于硬件线程的决策来说,最有意义的是新任务等待总时间,新任务本身的执行所需的时间对硬件线程来说并不重要。因此,本发明的一个实施例向硬件线程返回的是新任务等待总时间。预测完该新任务等待总时间后,任务时间预测单元1035将该时间返回到与硬件线程关联的特定地址。在一个实施方式中,该特定地址是请求帧中指定的硬件线程内部的定时器地址。该定时器是硬件线程内部的一个寄存器。硬件线程查看该定时器,就可以知道得到处理结果需要等待的时间,以便于其任务规划。图5中的任务加速单元1032被配置为响应于硬件线程的关于新任务的请求,加速处理该新任务并产生任务处理结果。该单元与图I中的任务加速单元1032是类似的。可替换地,可以不采用图7所示的请求帧格式,而仍采用图3所示的请求帧格式。此时,与硬件线程关联的特定地址是预先定义的且位于硬件线程的内部。预测出的该新任务等待总时间返回到该预先定义的地址。这种情况省去了在请求中指定返回特定地址的麻烦,但一般只适用于如公司内部网等对返回到的地址可以有统一的约定的环境。可替换地,该硬件线程关联的特定地址可以不位于硬件线程内部。例如,其可以是硬件线程外部的存储器。当然,该存储器可以是预先定义的,也可以是由硬件线程例如通过类似与图7的请求帧格式指定并发送给硬件加速器、并由硬件加速器将结果返回到的。当然,该硬件线程关联的特定地址不限于上述方式。本领域技术人员可以在受益于上述方式的教导后对其作出多种不脱离本发明的主旨的变形。图6中示出了任务时间预测单元1035的一种实施方式,其中任务时间预测单元包括任务模型引擎10351和累加器10352。当新任务请求通过总线接口 1031进入任务加载器10321后,任务加载器10321将与新任务相关的信息发送到任务模型引擎10351。任务模型引擎10351基于任务模型计算该新任务的任务执行时间。任务模型引擎10351随后将计算出的任务执行时间返回任务加载器10321。任务加载器1032将该任务执行时间发送到累加器10352。累加器10352存储有前在任务加速单元中尚未执行完的任务全部执行完需要的时间。累加器10352将该任务执行时间累加到累加器存储的累加结果上以便将累加结果作为新任务等待总时间通知给硬件线程。累加器10352将该新任务等待总时间返回任务加载器10321。任务加载器10321通过总线接口 1031将该新任务等待总时间返回到与硬件线程关联的特定地址。将新任务等待总时间返回硬件线程的过程不必等待该新任务的处理,因此,硬件线程可以在发请求给任务加速单元之后很快得到该新任务等待总时间,便于其提前规划接下来要采取的行为。在还没有任何任务进入硬件加速器时,累加器10352中的累加结果初始化为O值,然后随上述过程不断更新。另一方面,任务在任务队列单元10322中排队,在加速器引擎10323中执行。可选地,结果输出单元10324将该任务的信息连同实际执行时间发送到任务模型引擎10351,然 后任务模型引擎10351根据该信息调整任务模型。这样做的好处是根据实际情况不断纠正任务模型,提高下次预测的准确性。当然,不将实际执行时间返回到任务模型引擎仍然能达到预测效果。任务模型引擎10351将预测的相应任务执行时间再发给结果输出单元10324。结果输出单元10324将其发至累加器10352。作为一种替换方式,任务模型引擎10351将预测的相应任务执行时间直接发给累加器10352。在累加器10352中将该预测的任务执行时间从当前累加结果中扣除。关于任务模型引擎的任务模型,目前有很多已知技术。在一个实施方式中,任务模型引擎可基于以下各项中的一项或多项计算任务的任务执行时间处理频率、输入数据大小、平均高速缓存命中率。但也可以采用其它任务模型。处理频率在处理内核中基本恒定。输入数据大小由任务本身决定,因此对于特定任务,也是恒定并容易计算的。平均高速缓存命中率是一个代表高速缓存随时间的状态的统计值。它可以在任务实际执行后根据结果输出单元10324反馈的实际执行时间调整。图8示出了任务时间预测单元1035的另一实施方式,其中任务时间预测单元1035包括任务模型引擎10351和任务成帧器10353。任务成帧器10353在任务加载器10321接收的新任务在任务队列单元10322中排队之前,将该任务的相关信息发给任务模型引擎10351。任务模型引擎10351基于任务模型计算出该新任务的任务执行时间802。任务成帧器10353将其作为一个新字段加到任务上,如图9所示。任务成帧器10353存储有目前在任务加速单元中尚未执行完的任务全部执行完需要的时间作为累加结果。任务成帧器10353将任务模型引擎计算出的任务执行时间累加到任务成帧器存储的累加结果上,以将累加结果作为新任务等待总时间通知给硬件线程。任务成帧器10353将新任务等待总时间发给任务加载器10321。任务加载器10321将其返回到与硬件线程关联的特定地址。在还没有任何任务进入硬件加速器时,任务成帧器10353中的累加结果初始化为O值,然后随上述过程不断更新。可选地,当有一加速任务结束时,结果输出单元10324将该任务的信息连同实际执行时间发送到任务成帧器10353。任务成帧器10353将其发送到任务模型引擎10351。由任务模型引擎10351根据实际执行时间调整任务模型。任务成帧器10353将相应任务执行时间字段中的任务执行时间从任务成帧器中存储的累加结果中扣除。图8的实施方式中的 其它部分与图6的实施方式类似。在图6的实施方式中,任务模型引擎计算出新任务的任务执行时间后该任务执行时间直接发送回了硬件线程。当任务加速执行后,结果输出单元10324并不知道该任务执行时间,也就不能送回累加器10352进行扣除操作。图8的实施方式在任务中加一个任务执行时间字段。结果输出单元10324通过参考该字段,不用询问任务模型引擎10351就可以知道该任务执行时间。图10示出了任务时间预测单元1035的另一实施方式,其中时间预测单元1035包括任务模型引擎10351、进入感测器10354和运算写入器10355。进入感测器10354感测进入任务加速单元的队列中的新任务。任务模型引擎10351响应于进入感测器10354感测到新任务,基于任务模型计算该新任务的任务执行时间。当进入感测器10354感测到新任务时,运算写入器10355基于任务模型引擎10351计算出的任务执行时间,为队列中的该新任务增加该任务的任务执行时间字段。运算写入器10355存储着目前在任务加速单元中尚未执行完的任务全部执行完需要的时间。运算写入器10355将任务模型引擎计算出的任务执行时间累加到运算写入器存储的累加结果上,以将累加结果作为新任务等待总时间通知给硬件线程。新任务等待总时间经任务队列单元10322、任务加载器10321、总线接口 1031返回到与硬件线程关联的特定地址。在还没有任何任务进入硬件加速器时,运算写入器10355中的累加结果初始化为O值,然后随上述过程不断更新。可选地,当有一加速任务结束时,加速器引擎10323将相关信息和实际执行时间通知运算写入器10355。运算写入器10355将实际执行时间通知任务模型引擎10351,任务模型引擎10351据此调整任务模块。运算写入器10355将相应任务执行时间字段中的任务执行时间从运算写入器中存储的累加结果中扣除。图10的实施方式中的其它部分与图6的实施方式类似。图10的实施例与图8的实施例的区别在于,图10的实施例中,进入感测器10354、任务模型引擎10351、运算写入器10355都设在任务加速单元1032的后端,不会对任务加速单元1032的正常运行造成影响。根据一个实施例,还提供了一种中央处理单元,包括上述硬件加速器;硬件线程,其针对特定任务,请求硬件加速器加速执行该特定任务。根据一个实施例,还提供了一种包括上述中央处理单元的计算设备。根据一个实施例的硬件加速方法,如图11所示,包括响应于硬件线程的关于新任务的请求,加速处理该新任务并产生任务处理结果,如步骤SllOl所示;预测该新任务等待总时间以便返回到与该硬件线程关联的特定地址,如步骤S1102所示。在一个实施例中,预测该新任务等待总时间以便返回到与该硬件线程关联的特定地址的步骤S1102包括响应于接收到该新任务,基于任务模型计算该新任务的任务执行时间;存储目前尚未执行完的任务全部执行完需要的时间作为累加结果,将计算出的该任务执行时间累加到存储的该累加结果上以便将累加结果作为新任务等待总时间通知给该硬件线程,并在任务执行完后将相应任务执行时间从存储的累加结果中扣除。在一个实施例中,预测该新任务等待总时间以便返回到与该硬件线程关联的特定地址的步骤S1102包括基于任务模型计算该新任务的任务执行时间;存储目前尚未执行完的任务全部执行完需要的时间作为累加结果,响应于接收到该新任务,在该新任务在队列中排队之前,为该新任务增加计算出的该新任务的任务执行时间字段,并将该任务执行时间字段中的任务执行时间累加到存储的该累加结果上以便将累加结果作为新任务等待总时间通知给该硬件线程,并在任务执行完后将相应任务执行时间字段中的任务执行时间从存储的累加结果中扣除。在一个实施例中,预测该新任务等待总时间以便返回到与该硬件线程关联的特定地址的步骤S1102包括感测进入队列中的该新任务;响应于感测到进入该队列中的该新任务,基于任务模型计算该新任务的任务执行时间;存储目前尚未执行完的任务全部执行完需要的时间作为累加结果,基于计算出的该任务执行时间,为该新任务增加该新新任务的任务执行时间字段,并将该任务执行时间字段中的任务执行时间累加到存储的该累加结 果上以将累加结果作为新任务等待总时间通知给该硬件线程,并在任务执行完后将相应任务执行时间字段中的该任务执行时间从存储的累加结果中扣除。在一个实施例中,在该硬件线程发送的请求中含有该硬件线程内部的寄存器地址,用于指定将该新任务等待总时间返回到的该硬件线程上的特定地址。在一个实施例中,基于以下各项中的一项或多项计算该新任务的该任务执行时间处理频率、输入数据大小、平均高速缓存命中率。在一个实施例中,在该新任务执行完后相应任务实际执行时间被用于调整该任务模型。此外,本公开的一方面还降低了监控目标数据缓存的开销。所属技术领域的技术人员知道,本发明可以体现为系统、方法或计算机程序产品。因此,本发明可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、或者本文一般称为“电路”、“模块”或“系统”的软件部分与硬件部分的组合。此外,本发明还可以采取体现在任何有形的表达介质(medium of expression)中的计算机程序产品的形式,该介质中包含计算机可用的程序码。可以使用一个或多个计算机可用的或计算机可读的介质的任何组合。计算机可用的或计算机可读的介质例如可以是——但不限于——电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置、器件或传播介质。计算机可读介质的更具体的例子(非穷举的列表)包括以下有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、诸如支持因特网或内部网的传输介质、或者磁存储器件。注意计算机可用的或计算机可读的介质甚至可以是上面印有程序的纸张或者其它合适的介质,这是因为,例如可以通过电扫描这种纸张或其它介质,以电子方式获得程序,然后以适当的方式加以编译、解释或处理,并且必要的话在计算机存储器中存储。在本文件的语境中,计算机可用的或计算机可读的介质可以是任何含有、存储、传达、传播、或传输供指令执行系统、装置或器件使用的或与指令执行系统、装置或器件相联系的程序的介质。计算机可用的介质可包括在基带中或者作为载波一部分传播的、由其体现计算机可用的程序码的数据信号。计算机可用的程序码可以用任何适当的介质传输,包括-但不限于-无线、电线、光缆、RF等等。用于执行本发明的操作的计算机程序码,可以以一种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++之类,还包括常规的过程式程序设计语言-诸如”C”程序设计语言或类似的程序设计语言。程序码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络一包括局域网(LAN)或广域网(WAN)-连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。以下参照按照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。要明白的是,流程图和/或框图的每个方框以及流程图和/或框图中 各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得通过计算机或其它可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方框中规定的功能/操作的装置。也可以把这些计算机程序指令存储在能指令计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品。也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其它可编程装置上执行的指令就提供实现流程图和/或框图中的方框中规定的功能/操作的过程。附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本文中所用的术语,仅仅是为了描述特定的实施例,而不意图限定本发明。本文中所用的单数形式的“一”和“该”,旨在也包括复数形式,除非上下文中明确地另外指出。还要知道,“包含”一词在本说明书中使用时,说明存在所指出的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件,以及/或者它们的组合。
权利要求中的对应结构、材料、操作以及所有功能性限定的装置(means)或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构、材料或操作。所给出的对本发明的描述其目的在于示意和描述,并非是穷尽性的,也并非是要把本发明限定到所表述的形式。对于所属技术领域的普通技术人员来说,在不偏离本发明范围和精神的情况下,显然可以作出许多修改和变 型。对实施例的选择和说明,是为了最好地解释本发明的原理和实际应用,使所属技术领域的普通技术人员能够明了,本发明可以有适合所要的特定用途的具有各种改变的各种实施方式。
权利要求
1.一种硬件加速器,包括 任务加速单元,被配置为响应于硬件线程的关于新任务的请求,加速处理该新任务并产生任务处理结果; 任务时间预测单元,被配置为预测该新任务等待总时间以便返回到与该硬件线程关联的特定地址。
2.根据权利要求I的硬件加速器,其中该任务时间预测单元包括 任务模型引擎,被配置为响应于接收到该新任务,基于任务模型计算该新任务的任务执行时间; 累加器,存储有目前在该任务加速单元中尚未执行完的任务全部执行完需要的时间作为累加结果,其将该任务模型引擎计算出的该任务执行时间累加到该累加结果上以便将累加结果作为该新任务等待总时间通知给该硬件线程,并在任务执行完后将相应任务执行时间从该累加器中存储的累加结果中扣除。
3.根据权利要求I的硬件加速器,其中该任务时间预测单元包括 任务模型引擎,被配置为基于任务模型计算该新任务的任务执行时间; 任务成帧器,存储着目前在该任务加速单元中尚未执行完的任务全部执行完需要的时间作为累加结果,其响应于接收到该新任务,在该新任务在该任务加速单元的队列中排队之前,为该新任务增加由该任务模块引擎计算出的该新任务的任务执行时间字段,并将所述任务执行时间字段中的任务执行时间累加到该任务成帧器存储的所述累加结果上以便将将累加结果作为该新任务等待总时间通知给该硬件线程,并在任务执行完后将相应任务执行时间字段中的任务执行时间从该任务成帧器中存储的累加结果中扣除。
4.根据权利要求I的硬件加速器,其中该任务时间预测单元包括 进入感测器,被配置为感测进入该任务加速单元的队列中的该新任务; 任务模型引擎,被配置为响应于该进入感测器感测到该新任务,基于任务模型计算该新任务的任务执行时间; 运算写入器,存储着目前在该任务加速单元中尚未执行完的任务全部执行完需要的时间作为累加结果,其基于该任务模型引擎计算出的该任务执行时间,为该新任务增加该新任务的任务执行时间字段,并将该任务执行时间字段中的任务执行时间累加到该运算写入器存储的该累加结果上以便将累加结果作为该新任务等待总时间通知给该硬件线程,并在任务执行完后将相应任务执行时间字段中的任务执行时间从运算写入器中存储的累加结果中扣除。
5.根据权利要求1-4中任一个的硬件加速器,其中所述与硬件线程关联的特定地址是该硬件线程内部的,并且是预先定义的。
6.根据权利要求1-4中任一个的硬件加速器,其中在该硬件线程发给该硬件加速器的请求中含有该硬件线程内部的寄存器地址,用于指定该硬件加速器将该新任务等待总时间返回到的与该硬件线程关联的特定地址。
7.根据权利要求1-4中任一个的硬件加速器,其中与该硬件线程关联的特定地址是该硬件线程外部的存储器。
8.根据权利要求1-4中任一个的硬件加速器,其中该任务模型引擎基于以下各项中的一项或多项计算该新任务的该任务执行时间处理频率、输入数据大小、平均高速缓存命中率。
9.根据权利要求1-4中任一个的硬件加速器,其中该新任务等待总时间被发至该任务模型弓I擎以便调整该任务模型。
10.一种中央处理单元,包括 根据权利要求1-9中任一个的硬件加速器; 硬件线程,其针对特定任务,请求该硬件加速器加速执行该特定任务。
11.一种计算设备,包括根据权利要求10的中央处理单元。
12.—种硬件加速方法,包括 响应于硬件线程的关于新任务的请求,加速处理该新任务并产生任务处理结果; 预测该新任务等待总时间以便返回到与该硬件线程关联的特定地址。
13.根据权利要求12的硬件加速方法,其中预测该新任务等待总时间以便返回到与该硬件线程关联的特定地址的步骤包括 响应于接收到该新任务,基于任务模型计算该新任务的任务执行时间; 存储目前尚未执行完的任务全部执行完需要的时间作为累加结果,将计算出的该任务执行时间累加到存储的该累加结果上以便将累加结果作为该新任务等待总时间通知给该硬件线程,并在任务执行完后将相应任务执行时间从存储的累加结果中扣除。
14.根据权利要求12的硬件加速方法,其中预测该新任务等待总时间以便返回到与该硬件线程关联的特定地址的步骤包括 基于任务模型计算该新任务的任务执行时间; 存储目前尚未执行完的任务全部执行完需要的时间作为累加结果,响应于接收到该新任务,在该新任务在队列中排队之前,为该新任务增加计算出的该新任务的任务执行时间字段,并将该任务执行时间字段中的任务执行时间累加到存储的该累加结果上以便将累加结果作为该新任务等待总时间通知给该硬件线程,并在任务执行完后将相应任务执行时间字段中的任务执行时间从存储的累加结果中扣除。
15.根据权利要求12的硬件加速方法,其中预测该新任务等待总时间以便返回到与该硬件线程关联的特定地址的步骤包括 感测进入队列中的该新任务; 响应于感测到进入该队列中的该新任务,基于任务模型计算该新任务的任务执行时间; 存储目前尚未执行完的任务全部执行完需要的时间作为累加结果,基于计算出的该任务执行时间,为该新任务增加该新新任务的任务执行时间字段,并将该任务执行时间字段中的任务执行时间累加到存储的该累加结果上以将累加结果作为该新任务等待总时间通知给该硬件线程,并在任务执行完后将相应任务执行时间字段中的该任务执行时间从存储的累加结果中扣除。
16.根据权利要求12-15中任一个的硬件加速方法,其中在该硬件线程发送的请求中含有该硬件线程内部的寄存器地址,用于指定将该新任务等待总时间返回到的该硬件线程上的特定地址。
17.根据权利要求12-15中任一个的硬件加速方法,其中基于以下各项中的一项或多项计算该新任务的该任务执行时间处理频率、输入数据大小、平均高速缓存命中率。
18.根据权利要求12-15中任一个的硬件加速方法,其中该新任务执行完后相应任务实际执行时间被用于调整该任务模型。
全文摘要
本发明提供了硬件加速器及方法、中央处理单元、计算设备。一种硬件加速器,包括任务加速单元,被配置为响应于硬件线程的关于新任务的请求,加速处理该新任务并产生任务处理结果;任务时间预测单元,被配置为预测该新任务等待总时间以便返回到与该硬件线程关联的特定地址。本发明的一方面使得硬件线程知道其得到处理结果需要等待的时间,因而有利于其任务规划。
文档编号G06F9/48GK102902581SQ20111021546
公开日2013年1月30日 申请日期2011年7月29日 优先权日2011年7月29日
发明者朱振博, 戈弋, 王鲲, 侯锐 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1