发明内容
本申请的目的是提供一种FPGA加速卡复位的方法、装置、FPGA加速卡及可读存储介质,用于在实现FPGA加速卡复位的基础上降低应用的开发周期和成本。
为解决上述技术问题,本申请提供一种FPGA加速卡复位的方法,该方法包括:
获取每个处理器的配置信息;
当接收到第一处理器发送的第一复位请求时,确定所述第一复位请求在FPGA加速卡中对应的第一目标器件,并根据所述第一处理器的第一配置信息对所述第一复位请求进行处理;
将处理后的第一复位请求发送至所述第一目标器件中,以使所述第一目标器件执行所述第一复位请求。
可选的,当所述配置信息包括延时配置时,根据所述第一处理器的第一配置信息对所述第一复位请求进行处理,包括:
对所述第一复位请求进行所述延时配置对应时长的延时处理。
可选的,当所述配置信息包括合并复位配置时,在根据所述第一处理器的第一配置信息对所述第一复位请求进行处理之后,还包括:
当接收到第二处理器发送的第二复位请求时,确定所述第二复位请求在所述FPGA加速卡中对应的第二目标器件;
当所述第二目标器件与所述第一目标器件相同时,根据所述第一配置信息和所述第二配置信息中的合并复位配置判断所述第一处理器和所述第二处理器是否都支持合并复位;
若是,则将所述第一复位请求和所述第二复位请求合并;
若否,则根据第一配置信息和所述第二配置信息确定所述第一复位请求和所述第二复位请求的执行顺序。
可选的,在将处理后的第一复位请求发送至所述第一目标器件中之后,还包括:
向除所述第一处理器之外的其他处理器发送对应的中断信息,所述中断信息表示所述第一目标器件正在被复位,或所述第一目标器件正在执行复位后的任务。
可选的,当所述配置信息包括中断配置时,向除所述第一处理器之外的其他处理器发送对应的中断信息,包括:
根据每个所述处理器对应的配置信息确定支持所述中断配置的处理器;
向支持所述中断配置的处理器发送所述中断信息。
可选的,还包括:
记录所述FPGA加速卡中每个器件的复位状态信息;
当接收到查询请求时,将所述复位状态信息发送至所述查询请求对应的处理器中。
可选的,所述FPGA加速卡的器件包括定时器、温度感测器、DMA控制器、计数器中的至少一项。
本申请还提供一种FPGA加速卡复位的装置,该装置包括:
获取模块,用于获取每个处理器的配置信息;
第一确定模块,用于当接收到第一处理器发送的第一复位请求时,确定所述第一复位请求在FPGA加速卡中对应的第一目标器件,并根据所述第一处理器的第一配置信息对所述第一复位请求进行处理;
第一发送模块,用于将处理后的第一复位请求发送至所述第一目标器件中,以使所述第一目标器件执行所述第一复位请求。
本申请还提供一种FPGA加速卡,该FPGA加速卡包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述任一项所述FPGA加速卡复位的方法的步骤。
本申请还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述FPGA加速卡复位的方法的步骤。
本申请所提供FPGA加速卡复位的方法,包括:获取每个处理器的配置信息;当接收到第一处理器发送的第一复位请求时,确定第一复位请求在FPGA加速卡中对应的第一目标器件,并根据第一处理器的第一配置信息对第一复位请求进行处理;将处理后的第一复位请求发送至第一目标器件中,以使第一目标器件执行第一复位请求。
本申请所提供的技术方案,通过根据第一处理器发送的第一复位请求确定在FPGA加速卡中对应的第一目标器件,并根据第一处理器的第一配置信息对第一复位请求进行处理,然后将处理后的第一复位请求发送至第一目标器件中,以使第一目标器件执行第一复位请求,完成此次复位操作,整个复位过程独立于FPGA加速卡相关应用的开发,即本申请不需要通过上层应用来控制多处理器间的复位顺序,因此不需要对应用进行配置和修改,降低了应用的开发周期和成本。本申请同时还提供了一种FPGA加速卡复位的装置、FPGA加速卡及可读存储介质,具有上述有益效果,在此不再赘述。
具体实施方式
本申请的核心是提供一种FPGA加速卡复位的方法、装置、FPGA加速卡及可读存储介质,用于在实现FPGA加速卡复位的基础上降低应用的开发周期和成本。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例所提供的一种FPGA加速卡复位的方法的流程图。
其具体包括如下步骤:
S101:获取每个处理器的配置信息;
基于在FPGA加速卡的应用场景中,有一些场景是有多个处理器同时参与的,这时就会遇到有多个处理器都需要对FPGA加速卡上某些器件进行复位的情况。而目前常用的处理方式是通过软件控制,即通过上层应用来控制多处理器间的复位顺序,使得来自多处理器的多个复位不至于互相干扰。然而这种方式由于没有可以通用的逻辑,导致在FPGA加速卡的相关应用的开发过程中需要根据具体的应用具体修改,而且需要对不同的应用进行不同的配置,导致其可扩展性较差,进而导致了开发周期的延长和成本的上升;故本申请提供了一种FPGA加速卡复位的方法,用于解决上述问题。
在本步骤中,获取每个处理器的配置信息的目的在于,在接收到处理器发送的复位请求时,根据对应的配置信息对复位请求进行处理,然后将处理后的复位请求发送至对应的目标器件中,完成此次复位过程。
可选的,这里提到的配置信息可以包括但不限于复位器件编号、延时配置、中断配置等,其中:
复位器件编号即为每个处理器所允许复位的FPGA加速卡的器件;
延时配置即为根据该配置信息判断是否延时发送该处理器的复位请求;
中断配置即为根据该配置信息判断是否向该处理器发送对应的中断信息;
可选的,该FPGA加速卡的器件可以包括但不限于定时器、温度感测器、DMA控制器、计数器中的至少一项。
S102:当接收到第一处理器发送的第一复位请求时,确定第一复位请求在FPGA加速卡中对应的第一目标器件,并根据第一处理器的第一配置信息对第一复位请求进行处理;
可选的,当配置信息包括延时配置时,这里提到的根据第一处理器的第一配置信息对第一复位请求进行处理,其具体可以为:
对第一复位请求进行延时配置对应时长的延时处理。
可选的,当配置信息包括合并复位配置时,在根据第一处理器的第一配置信息对第一复位请求进行处理之后,还可以执行如下步骤:
当接收到第二处理器发送的第二复位请求时,确定第二复位请求在FPGA加速卡中对应的第二目标器件;
当第二目标器件与第一目标器件相同时,根据第一配置信息和第二配置信息中的合并复位配置判断第一处理器和第二处理器是否都支持合并复位;
若是,则将第一复位请求和第二复位请求合并;
若否,则根据第一配置信息和第二配置信息确定第一复位请求和第二复位请求的执行顺序。
在一个具体实施例中,当第一处理器发起对定时器的第一复位请求时,如果第一处理器的配置信息是延时复位,并且允许合并复位是,那么在向定时器发送复位请求之前,会延时等待相应的时间,如果期间有第二处理器发送的第二复位请求进来,并且第二复位请求的目标器件也为定时器时,此时将这两个复位请求合并,等延时结束后向定时器发起复位;如果第一处理器和第二处理器中有一个不允许合并复位,则可以先发送延时到期的复位给定时器,比如第二处理器的延时先到,那就先将第二处理器的第二复位命令发送给定时器,第一处理器的第一复位请求继续等待。
S103:将处理后的第一复位请求发送至第一目标器件中,以使第一目标器件执行第一复位请求。
可选的,在将处理后的第一复位请求发送至第一目标器件中之后,还包括:
向除第一处理器之外的其他处理器发送对应的中断信息,中断信息表示第一目标器件正在被复位,或第一目标器件正在执行复位后的任务。
可选的,当配置信息包括中断配置时,向除第一处理器之外的其他处理器发送对应的中断信息,包括:
根据每个处理器对应的配置信息确定支持中断配置的处理器;
向支持中断配置的处理器发送中断信息。
可选的,还可以执行如下步骤实现对器件的复位状态信息的获取:
记录FPGA加速卡中每个器件的复位状态信息;
当接收到查询请求时,将复位状态信息发送至查询请求对应的处理器中。
基于上述技术方案,本申请所提供的一种FPGA加速卡复位的方法,通过根据第一处理器发送的第一复位请求确定在FPGA加速卡中对应的第一目标器件,并根据第一处理器的第一配置信息对第一复位请求进行处理,然后将处理后的第一复位请求发送至第一目标器件中,以使第一目标器件执行第一复位请求,完成此次复位操作,整个复位过程独立于FPGA加速卡相关应用的开发,即本申请不需要通过上层应用来控制多处理器间的复位顺序,因此不需要对应用进行配置和修改,降低了应用的开发周期和成本。
下面介绍本申请提供的一种应用实施例,请参考图2,图2为本申请实施例所提供的一种复位控制器的结构示意图。
如图2所示,复位控制器包括复位接收模块、复位发送模块、状态记录模块、中断模块,其中:
复位接收模块的主要功能是接收来自各个处理器的配置信息和复位请求。配置信息包括复位请求的器件编号,是否屏蔽该处理器的复位请求,是否延时该处理器的复位请求,延时多久,是否屏蔽中断,是否选择轮询模式等等。
复位发送模块的主要功能是向指定的器件发送复位信号,它会根据各个处理器的配置信息,决定是单独复位,还是合并复位,是立即复位还是延时等待发送复位。
状态记录模块主要用于记录各个处理器复位请求的状态,比如正在复位,正在延时等待复位,复位完成,复位后任务正在进行,复位后任务挂起等等。各个处理器可以随时读取状态记录模块的状态信息。
中断模块的主要功能是根据各个处理器的配置信息,根据复位的状态,发送或者屏蔽对应的中断。告知现在,CPU发送复位自己把中断屏蔽,访问,
整个复位控制器的工作流程如下,首先各个处理器对复位控制器进行配置,需要复位哪些器件,是否延时,是否允许合并复位,是否允许中断等等。当第一处理器发起复位1时(比如要复位定时器),复位接收模块接收该复位请求,如果第一处理器之前的配置信息是延时复位,并且允许合并复位,那么复位发送模块在向定时器发送复位请求之前,会延时等待相应的时间,如果期间有第二处理器的复位请求进来,并且它也要复位定时器,那么复位发送模块会将这两个复位请求合并,等延时结束后向定时器发起复位。如果第一处理器或者第二处理器不允许合并复位,那就先发送延时到期的复位给定时器,比如第二处理器的延时先到,那就先发第二处理器的复位给定时器,第一处理器的复位请求继续等待。同时中断模块会向其他处理器发送对应的中断信息,表示定时器正在被复位,或者复位后进行的任务正在执行。在此期间状态记录模块会记录各个复位的状态信息,同时各个处理器都可以随时读取状态记录模块的信息,对于选择轮询模式的处理器,它会屏蔽中断,同时一直轮询状态记录模块直到上一个处理器的复位请求结束。
请参考图3,图3为本申请实施例所提供的一种FPGA加速卡复位的装置的结构图。
该装置可以包括:
获取模块100,用于获取每个处理器的配置信息;
第一确定模块200,用于当接收到第一处理器发送的第一复位请求时,确定第一复位请求在FPGA加速卡中对应的第一目标器件,并根据第一处理器的第一配置信息对第一复位请求进行处理;
第一发送模块300,用于将处理后的第一复位请求发送至第一目标器件中,以使第一目标器件执行第一复位请求。
在上述实施例的基础上,在一个具体实施例中,当配置信息包括延时配置时,该第一确定模块200可以包括:
处理子模块,用于对第一复位请求进行延时配置对应时长的延时处理。
在上述实施例的基础上,在一个具体实施例中,当配置信息包括合并复位配置时,该装置还可以包括:
第二确定模块,用于在根据第一处理器的第一配置信息对第一复位请求进行处理之后,当接收到第二处理器发送的第二复位请求时,确定第二复位请求在FPGA加速卡中对应的第二目标器件;
判断模块,用于当第二目标器件与第一目标器件相同时,根据第一配置信息和第二配置信息中的合并复位配置判断第一处理器和第二处理器是否都支持合并复位;
合并模块,用于当第一处理器和第二处理器都支持合并复位时,将第一复位请求和第二复位请求合并;
第三确定模块,用于当第一处理器和/或第二处理器不支持合并复位时,根据第一配置信息和第二配置信息确定第一复位请求和第二复位请求的执行顺序。
在上述实施例的基础上,在一个具体实施例中,该装置还可以包括:
第二发送模块,用于在将处理后的第一复位请求发送至第一目标器件中之后,向除第一处理器之外的其他处理器发送对应的中断信息,中断信息表示第一目标器件正在被复位,或第一目标器件正在执行复位后的任务。
在上述实施例的基础上,在一个具体实施例中,当配置信息包括中断配置时,第二发送模块包括:
确定子模块,用于根据每个处理器对应的配置信息确定支持中断配置的处理器;
发送子模块,用于向支持中断配置的处理器发送中断信息。
在上述实施例的基础上,在一个具体实施例中,该装置还可以包括:
记录模块,用于记录FPGA加速卡中每个器件的复位状态信息;
第三发送模块,用于当接收到查询请求时,将复位状态信息发送至查询请求对应的处理器中。
在上述实施例的基础上,在一个具体实施例中,该FPGA加速卡的器件可以包括定时器、温度感测器、DMA控制器、计数器中的至少一项。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请实施例还提供一种FPGA加速卡,该FPGA加速卡可以包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述任一项实施例所述FPGA加速卡复位的方法的步骤。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项实施例所述FPGA加速卡复位的方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置、FPGA加速卡和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,功能调用装置,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本申请所提供的一种FPGA加速卡复位的方法、装置、FPGA加速卡及可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。