硬件加速器模块及其设置方法

文档序号:6435286阅读:186来源:国知局
专利名称:硬件加速器模块及其设置方法
技术领域
本发明涉及一种硬件加速器模块,并且进一步涉及一种用于设置加速器模块的方法。
背景技术
经常通过使用被已知为硬件加速器的专用硬件模块来加速数据处理。这些硬件模块由在处理器上运行的系统软件经由通常是寄存器的编程接口访问和设置。在硬件加速器能够处理数据流之前,它必须由软件进行设置。图1示出结合在图2中所示的传统硬件加速器模块的方框图而描述的硬件加速器的传统操作的时序图。硬件加速器模块2由未示出的系统处理器通过专用总线访问,从而对用于硬件加速器核心22的一个处理任务的参数集进行编程。在(a)对若干参数寄存器进行写操作之后,在(b),处理器触发硬件加速器启动。硬件加速器核心必须等待来自寄存器接口 21的启动信号(c),以在时间、开始处理数据,如在图1中在(d)所示。目前,在处理器能够对用于处理数据流的下一个数据块的新的参数集进行编程之前,处理器必须等待直到在时间t2通过由加速器核心22返回的忙信号的下降沿检测到硬件加速器核心已经结束它的任务。明显的是,加速器核心的这些停机时间显著地限制了加速器模块的吞吐量。目前,用于硬件加速器的参数由系统软件直接编程或者被存储在单独的RAM中。 第一种情况要求硬件加速器在每一个处理周期之后进行编程。使用单独的参数RAM意在减小在不同的重复进行的处理状态下的总线负载。当使用诸如在US 6,842,844中描述的单独的参数RAM时,软件能够预先对用于不同的处理状态的参数进行编程,并且硬件加速器可以之后数次地使用这些参数集。然而,硬件加速器仍然必须在每一个处理周期之后进行编程。而且,采用单独的参数RAM对于系统软件而言是不透明的,这意味着,处理器还必须告诉硬件加速器将使用哪一个参数集。本发明的目的是减少停机时间并且增加硬件加速器的数据吞吐量。本发明的另一目的是减少在驱动若干硬件加速器的处理器中的处理器过载的风险。

发明内容
根据本发明,提供了一种在权利要求1中阐述的硬件加速器模块和在权利要求3 中阐述的用于设置硬件加速器模块的方法。本发明的硬件加速器模块由系统处理器经由系统总线驱动,从而根据由所述处理器定义的参数集顺序地处理数据流的数据块,并且硬件加速器模块包括寄存器接口块,用来从所述系统处理器接收参数集;和加速器核心,用来接收流数据,从而按照由所述参数集限定的方式处理流数据的数据块,并且输出处理后的流数据。根据本发明,所述硬件加速器模块进一步包括参数缓存块,用来连续地存储多个参数集并且根据从所述硬件加速器核心接收的忙状态将所述参数集顺序地提供给硬件加速器核心。参数缓存块可以包括第一有限状态机,用来从寄存器接口块接收第一启动脉冲,并且响应于此,一旦确认了加速器核心的非忙状态,将另一启动脉冲传递到加速器核心;第二有限状态机,用来接收和评估来自加速器核心的第一忙信号,以确定其非忙状态,并且将第二忙信号传递到系统处理器;具有深度N的FIFO缓存器,用于存储N个参数集;和参数输出寄存器,用来与另一启动脉冲同时地将当前参数集提供到加速器核心,其中如果所述第一忙信号指示非忙状态并且参数FIFO为空,则所述第二忙信号只向处理器反映非忙状态。根据本发明的另一方面,提供了一种用于设置硬件加速器模块的方法,包括下述步骤通过系统处理器将第一参数集写到硬件加速器模块中,第一参数集限定硬件加速器核心的第一处理任务,并且发射第一启动脉冲;通过所述系统处理器连续地将第二参数集写到所述硬件加速器模块中,所述第二参数集限定所述硬件加速器核心的第二处理任务, 其中所述写步骤独立于所述硬件加速器核心的忙状态地进行,并且发射第二启动脉冲;顺序地将参数集缓存在参数缓存器中;通过所述参数缓存器监视来自硬件加速器模块的硬件加速器核心的第一忙信号;在所述硬件加速器核心不忙的情形中,响应于第一启动脉冲,立即将启动脉冲传递到硬件加速器核心,并且将第一参数集提供给硬件加速器核心;在硬件加速器核心忙的情形中,缓存启动信号,直到从硬件加速器核心检测到非忙指示,以及响应于所述非忙指示,将启动脉冲发送到所述硬件加速器核心,并且将所述第一参数集提供给所述硬件加速器核心;以及将第二忙信号返回到所述处理器,其中如果所述第一忙信号指示所述硬件加速器核心的非忙状态并且没有另外的参数集被缓存在所述参数缓存器中,则所述第二忙信号只指示所述硬件加速器模块的非忙状态,否则指示忙状态。在优选实施例中,用于设置硬件加速器模块的方法进一步包括下述步骤记录状态指示组中指示参数缓存器的至少一个状态的状态信号,所述状态指示组包括当前使用的参数集、在所述参数缓存器中可用的空间和缓存器溢出状态。本发明的参数缓存块有利地实现了硬件加速器的吞吐量和利用的增加,因为参数集在硬件加速器核心处可用于执行连续的流数据包的无缝处理。配置数据可以被预先计算并且提供给硬件,使得在硬件加速器完成处理任务时处理器的立即反应是不必要的,因此, 减少了由于硬件中断引起的处理器负载高峰。此外,减少了能耗,因为通过本发明的参数缓存块,处理器能够进入休眠更长的时间,这是更有效率的。


从具体实施例的下面的详细描述,本发明的另外的特征和优点将是明显的,具体实施例的描述仅通过实例的方式给出并且其中将会参考附图,在附图中图1示出硬件加速器模块的传统操作的时序图;图2示出传统硬件加速器模块的示意性方框图;图3示出根据本发明的硬件加速器模块的操作的时序图;图4示出根据本发明的硬件加速器模块的示意性方框图;图5示出图4的硬件加速器模块的寄存器接口和参数缓存器的详细方框图;以及图6示出其中能够使用本发明的电路布置的功能单元的总体构造。
具体实施方式
图3示出根据本发明的硬件加速器模块的操作的时序图。应该结合附图4来阅读其描述,图4示出根据本发明的硬件加速器模块4的示意性方框图。硬件加速器模块4经由总线30从在未示出的系统处理器上运行的软件接收参数和驱动信号。硬件加速器模块4包括寄存器接口块40、参数缓存块50、和加速器核心60。 加速器核心60接收数据流,根据由处理器软件限定的参数集来处理流数据的块,并且输出处理后的流数据,如在图4中由粗的垂直箭头示出的。在(A),处理器将第一参数集写入寄存器接口 40,并且在(B),触发寄存器,以在时间T1启动。然后,处理器写入第二参数集并且再次触发寄存器以在时间T3启动,并且写入第三参数集并且再次触发寄存器以在时间T5启动,等等。通过根据本发明的加速器模块, 处理器不必等待直到硬件加速器核心已经结束任务,以对随后的参数集进行编程,如将从下面的描述理解的。响应于每一个触发事件⑶,寄存器接口块40将启动脉冲(C)输出到参数缓存器 50。参数缓存器50从硬件加速器核心60接收忙信号(B)。如果信号(E)为低,即,加速器核心60不忙,这是图3中在时间T2的情形,则启动脉冲(C)例如在时间T2立即将启动脉冲(D)从参数缓存器50带到加速器核心60。如果加速器核心忙,这是图3中在时间T4和T6的情形,则参数缓存器50等待直到它在时间1~7检测到从硬件加速器核心60返回的忙信号(E)的下降沿。此时,参数缓存器50 输出用于加速器核心60将在第二处理任务中使用的第二参数集,即,已经在时间T3编程的参数集的第二启动脉冲(D)。然后,参数缓存器50再次等待直到它在时间T8检测到忙信号 (E)的另一下降沿,从而输出用于加速器核心60将在第三处理任务中使用的第三参数集, 即,已经在时间T5编程的参数集的第三启动脉冲(D),等等。另一忙信号(G)从参数缓存器50返回到处理器并且可由在处理器上运行的软件访问。尽管从加速器核心60到参数缓存器的第一忙信号(E)确实反映了加速器核心的处理或非处理状态,但是从参数缓存器50传递到系统处理器的第二忙信号(G)只反映了在参数缓存器50空的情况下的加速器核心的空闲状态。在本优选实施例中,状态信号由参数缓存器50输出到寄存器接口 40中的可选参数FIFO状态寄存器41。该状态信号(F)可反映当前激活的参数集、参数FIFO中的未用空间的数目、缓存器溢出状态或其他错误状态。还在图5的详细方框图中描述的该参数FIFO 状态寄存器41对于根据本发明的加速器模块的基本操作来说不是必需的,但是对于调试和错误管理目的而言是有利的。图5描绘在图4中示出的硬件加速器模块的寄存器接口和参数缓存器的优选实施例的详细方框图。图5中所示的加速器模块的优选实施例的寄存器接口 40包括提供给公共接口和标准行为的标准化类型的四个控制寄存器41-44。寄存器41-44的内容被概括在下面的表中
权利要求
1.一种硬件加速器模块,其由系统处理器经由系统总线(30)驱动,从而根据由所述处理器限定的参数集来顺序地处理数据流的数据块,所述硬件加速器模块包括寄存器接口块(40),用来从所述系统处理器接收参数集;和加速器核心(60),用来接收流数据,从而按照由所述参数集限定的方式处理所述流数据的数据块,并且输出处理后的流数据;其中所述硬件加速器模块进一步包括参数缓存块(50),用来连续地存储多个参数集并且根据从所述硬件加速器核心(60) 接收的忙状态将所述参数集顺序地提供给所述硬件加速器核心。
2.根据权利要求1所述的硬件加速器模块,其中所述参数缓存块(50)包括第一有限状态机(51),用来从所述寄存器接口块(40)接收第一启动脉冲(C),并且响应于此,一旦确定所述加速器核心的非忙状态,则将另一启动脉冲(D)传递到所述加速器核心(60);第二有限状态机(52),用来接收和评估来自所述加速器核心(60)的第一忙信号(E), 以确定其非忙状态,并且将第二忙信号(G)传递到所述系统处理器;具有深度N的FIFO缓存器(53),用于存储N个参数集;和参数输出寄存器(54),用来与所述另一启动脉冲(D)同时将当前参数集提供到所述加速器核心,其中如果所述第一忙信号(E)指示非忙状态并且所述参数FIFO(53)为空,则所述第二忙信号(G)只向所述处理器反映非忙状态。
3.一种用于设置硬件加速器模块的方法,包括下述步骤通过系统处理器将第一参数集写(A)到所述硬件加速器模块中,所述第一参数集限定硬件加速器核心的第一处理任务,并且发射(C)第一启动脉冲;通过所述系统处理器连续地将第二参数集写(A)到所述硬件加速器模块中,所述第二参数集限定所述硬件加速器核心的第二处理任务,其中所述写步骤独立于所述硬件加速器核心的忙状态而进行,并且发射(C)第二启动脉冲;顺序地将所述参数集缓存在参数缓存器中;通过所述参数缓存器监视来自所述硬件加速器模块的所述硬件加速器核心的第一忙信号(E);在所述硬件加速器核心不忙的情形中,响应于所述第一启动脉冲(C),立即将启动脉冲 (D)传递到所述硬件加速器核心,并且将第一参数集提供给所述硬件加速器核心;在所述硬件加速器核心为忙的情形中,缓存启动信号,直到从所述硬件加速器核心检测到非忙指示,并且响应于所述非忙指示,将启动脉冲(D)传递到所述硬件加速器核心,并且将所述第一参数集提供给所述硬件加速器核心;以及将第二忙信号(G)返回到所述处理器,其中如果所述第一忙信号(E)指示所述硬件加速器核心的非忙状态并且没有另外的参数集被缓存在所述参数缓存器中,则所述第二忙信号(G)仅指示所述硬件加速器模块的非忙状态,否则指示忙状态。
4.根据权利要求3所述的方法,进一步包括下述步骤记录状态指示组中指示所述参数缓存器的至少一个状态的状态信号(F),所述状态指示组包括当前使用的参数集、在所述参数缓存器中可用的空间、和缓存器溢出状态。
全文摘要
本发明提供了一种硬件加速器模块,其由系统处理器经由系统总线驱动,从而根据由所述处理器限定的参数集来顺序地处理数据流的数据块,所述硬件加速器模块包括寄存器接口块,用来从所述系统处理器接收参数集;和加速器核心,用来接收流数据,从而按照由所述参数集限定的方式处理所述流数据的数据块,并且输出处理后的流数据;和参数缓存块,用来连续地存储多个参数集并且根据所述硬件加速器核心的忙状态将所述参数集顺序地提供给所述硬件加速器核心。本发明的参数缓存块使得能够减少硬件加速器的停机时间,从而增加数据吞吐量,并且在驱动数个硬件加速器的处理器中减少处理器过载的风险。
文档编号G06F5/06GK102446085SQ201110306370
公开日2012年5月9日 申请日期2011年10月8日 优先权日2010年10月1日
发明者乌韦·普罗斯, 冈纳·尼切, 托比亚斯·韦伯, 托马斯·弗利斯 申请人:英特尔移动通信技术德累斯顿有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1