恢复FPGA芯片中的逻辑的方法、系统和FPGA设备技术方案

技术编号:27655288 阅读:8 留言:0更新日期:2021-03-12 14:17
一种恢复或升级FPGA芯片中的逻辑的方法。在FPGA设备中引入了第一存储器和第二存储器两个存储器。通常,无论是用户修改的逻辑还是管理面升级的逻辑都是先写入第二存储器,而第一存储器中保存的则是修改或升级之前的逻辑。如果用户修改后的逻辑或管理面升级的逻辑加载到FPGA芯片后枚举不成功,则可利用第一存储器中的第一逻辑还原FPGA芯片中的逻辑。虽然静态逻辑因为开放给用户而可能带来风险,但是利用上述方法可以快速地恢复FPGA芯片中的逻辑。从而保证了FPGA芯片的有效运行。

【技术实现步骤摘要】
恢复FPGA芯片中的逻辑的方法、系统和FPGA设备
本专利技术实施例涉及计算机技术,特别是一种恢复FPGA芯片中的逻辑的方法、系统和FPGA设备。
技术介绍
历史上,受益于半导体技术的持续演进,计算机体系结构的吞吐量和系统性能不断提高,处理器的性能每18个月就能翻倍(众所周知的“摩尔定律”),使得处理器的性能可以满足应用软件的需求。但是,近几年半导体技术改进达到了物理极限,处理器性能再无法按照摩尔定律进行增长,另一方面数据增长对计算性能要求超过了按“摩尔定律”增长的速度。处理器本身无法满足高性能计算(HPC:HighPerformanceCompute)和并行计算(图形,图像和人工智能)应用软件的性能需求,导致需求和性能之间出现了缺口。为了弥补该缺口,一种解决方法是通过硬件加速,采用专用协处理器的异构计算方式来提升处理性能。现场可编程门阵列(FieldProgrammableGateArray,FPGA)因其可编程性、低功耗等优势在异构计算上得到广泛使用。比如,在公有云中,当引入FPGA时,云服务商通常会把FPGA的逻辑分为静态部分和动态部分。其中,静态部分通常用于实现一些基础功能,比如,DDR、DMA等,而动态逻辑则用于实现一些业务逻辑,比如图片编解码、加解密等。从安全的角度出发,静态部分逻辑通常不给用户开放,而由云服务商收集需求,根据需求进行普适性设计;而动态部分则可以开放给用户,用户可以自己编写与更改静态部分的逻辑。随着使用云服务的用户增多,为满足用户的需求,FPGA中的静态部分需要实现的基础功能会越来越多。由于静态逻辑通常采用的是通用接口,布线布局比较复杂,从而导致FPGA的运行效率降低。如果将静态逻辑也开放给用户,由用户自己根据需求编写和更改,那么FPGA设备的安全性就无法保障。因此,如何能够将静态逻辑开放给用户的同时,又能保证FPGA设备的安全性,成为一个急需要解决的问题。
技术实现思路
有鉴于此,本申请提供了一种恢复FPGA芯片中的逻辑的方法、系统和FPGA设备,以恢复FPGA芯片中的逻辑。本申请的第一方面提供了一种恢复FPGA芯片中的逻辑的方法,该方法应用于FPGA设备。所述FPGA设备包括所述FGPA芯片、第一存储器、第二存储器,其中,所述第一存储器存储有第一逻辑,所述第二存储器中存储有所述第二逻辑。该方法包括如下步骤:所述FPGA设备接收BMC发送的第一加载指令,所述第一加载指令用于指示将所述第一逻辑加载到所述FPGA芯片;所述FPGA设备根据所述第一加载指令断开所述FPGA芯片与所述第二存储器之间的数据通道,连接所述FPGA芯片与所述第一存储器之间的数据通道;所述FPGA设备通过所述数据通道将所述第一逻辑加载到所述FPGA芯片。在上述的FPGA设备中引入了第一存储器和第二存储器两个存储器。其中,无论是用户修改的逻辑还是管理面升级的逻辑都是先写入第二存储器,而第一存储器中保存的则是修改或升级之前的逻辑。如果用户修改后的逻辑或管理面升级的逻辑加载到FPGA芯片后枚举不成功,则可利用第一存储器中的第一逻辑还原FPGA芯片中的逻辑。虽然静态逻辑因为开放给用户而可能带来风险,但是利用上述方法可以快速地恢复FPGA芯片中的逻辑。从而保证了FPGA芯片的有效运行。在所述第一方面的一种可能的实现中,所述FPGA设备还包括读写控制器和多路复用器MUX。其中,由所述读写控制器接收所述第一加载指令。然后,所述读写控制器根据所述第一加载指令向所述MUX发送第一通道切换指令,所述第一通道切换指令用于指示所述MUX进行通道切换。也即,切换所述MUX与第一及第二存储器之间的数据通道。所述MUX接收到所述第一通道切换指令之后,根据所述第一通道切换指令,断开所述FPGA芯片与所述第二存储器之间的数据通道,连接所述FPGA与所述第一存储器之间的数据通道。也就是将通道切换到第一存储器。所述读写控制器在通道切换完成后向所述FPGA芯片发送第一加载信号,所述第一加载信号用于触发所述FPGA芯片加载逻辑。所述FPGA芯片根据所述第一加载信号通过所述FPGA芯片与所述第一存储器的数据通道,将所述第一逻辑加载到FPGA芯片中。在这个具体的实现中,FPGA设备巧妙地利用了读写控制器与多路复用器的配合来实现通道之间的切换。是一种高效实用的方式。结合第一方面的第一种实现,在第一方面的第二种实现中,读写控制器接收所述BMC发送的重置指示。读写控制器根据所述重置指示,向所述多路复用器发送第二通道切换指令,所述第二通道切换指令用于指示所述MUX切换所述MUX与所述第一和第二存储器之间的数据通道。所述MUX根据所述第二通道切换指令,断开所述FPGA芯片与所述第一存储器之间的数据通道,连接所述FPGA与所述第二存储器之间的数据通道。可以理解的是,当FPGA芯片会到修改前的逻辑后,本申请的实施例中,还将通道切换回第二存储器,为再次加载第二逻辑或者用户的继续修改提供基础。提高了修改FPGA芯片的灵活性。结合第一方面的第二种实现,在第一方面的第三种实现中,所述FPGA芯片接收第二加载指令,并根据所述第二加载指令向所述读写控制器发送加载请求信号,所述第二加载指令指示FPGA芯片加载存储器中的逻辑。所述读写控制器接收所述加载请求信号,并响应所述加载请求信号向所述FPGA芯片返回第二加载信号,所述第二加载信号用于触发FPGA加载逻辑。所述FPGA芯片根据所述第二加载信号,通过所述FPGA与所述第二存储器之间的数据通道,将所述第二逻辑加载到所述FPGA芯片上。由于加载失败的原因是不可预知的,当通道切回第二存储器的时候,用户可以需要再次得加载第二逻辑,避免因为偶然因素使得第二逻辑无法实施。结合第一方面的第三种实现,在第一方面的第四种实现中,所述第一逻辑和所述第二逻辑为PCIe静态逻辑。而该方法还包括下述步骤。所述FPGA芯片在所述第二逻辑完成后,向CPU发送加载完成信号。相应地,所述CPU接收到加载完成信号后,枚举所述FPGA芯片与所述CPU之间的PCIe通道。枚举成功后,所述FPGA芯片通过与所述CPU之间的PCIe通道加载非PCIe静态逻辑以及动态逻辑。在PCIe静态逻辑加载完成后,通过带内方式将剩下的静态逻辑以及动态逻辑加载到FPGA芯片上,极大地提高了加载的速度。结合第一方面的第三种实现,在第一方面的第五种实现中,当所述第一存储器设置有写保护时,该方法还包括如下步骤。所述读写控制器接收第一写数据指令,所述第一写数据指令指示有数据要写入所述第一存储器,根据所述第一写数据指令向所述多路复用器发送第三通道切换指令并向所述第一存储器发送关闭写保护的指令。所述MUX根据所述通道切换指令,断开所述FPGA芯片与所述第二储器之间的数据通道,连接所述FPGA与所述第一存储器之间的数据通道。所述第一存储器根据所述关闭写保护的指令,关闭写保护。为避免对第一逻辑的恶意篡改,在该实现中,第一存储器设置有写保护,当写入管理面的数据时,才将其写保护关闭。结合第一方面的上述第二至五种实现中,所本文档来自技高网
...

【技术保护点】
1.一种恢复FPGA芯片中的逻辑的方法,所述方法应用于FPGA设备,所述FPGA设备包括所述FPGA芯片、第一存储器、第二存储器,其中,所述第一存储器存储有第一逻辑,所述第二存储器中存储有第二逻辑,其特征在于,所述方法包括:/n所述FPGA设备接收BMC发送的第一加载指令,所述第一加载指令用于指示将所述第一逻辑加载到所述FPGA芯片;/n所述FPGA设备根据所述第一加载指令断开所述FPGA芯片与所述第二存储器之间的数据通道,连接所述FPGA芯片与所述第一存储器之间的数据通道;/n所述FPGA设备通过所述数据通道将所述第一逻辑加载到所述FPGA芯片。/n

【技术特征摘要】
1.一种恢复FPGA芯片中的逻辑的方法,所述方法应用于FPGA设备,所述FPGA设备包括所述FPGA芯片、第一存储器、第二存储器,其中,所述第一存储器存储有第一逻辑,所述第二存储器中存储有第二逻辑,其特征在于,所述方法包括:
所述FPGA设备接收BMC发送的第一加载指令,所述第一加载指令用于指示将所述第一逻辑加载到所述FPGA芯片;
所述FPGA设备根据所述第一加载指令断开所述FPGA芯片与所述第二存储器之间的数据通道,连接所述FPGA芯片与所述第一存储器之间的数据通道;
所述FPGA设备通过所述数据通道将所述第一逻辑加载到所述FPGA芯片。


2.如权利要求1所述的方法,其特征在于,所述FPGA设备还包括读写控制器和多路复用器MUX,其中,
所述读写控制器接收所述第一加载指令;
所述读写控制器根据所述第一加载指令向所述MUX发送第一通道切换指令,所述通道切换指令用于指示所述MUX切换所述MUX与第一及第二存储器之间的数据通道;
所述MUX根据所述第一通道切换指令,断开所述FPGA芯片与所述第二存储器之间的数据通道,连接所述FPGA与所述第一存储器之间的数据通道;
所述读写控制器在通道切换完成后向所述FPGA芯片发送第一加载信号,所述第一加载信号用于触发所述FPGA芯片加载逻辑;
所述FPGA芯片根据所述第一加载信号通过所述FPGA芯片与所述第一存储器的数据通道,将所述第一逻辑加载到FPGA芯片中。


3.如权利要求2所述的方法,其特征在于,所述方法还包括:
读写控制器接收所述BMC发送的重置指示;
读写控制器根据所述重置指示,向所述多路复用器发送第二通道切换指令,所述通道切换指令用于指示所述MUX切换所述MUX与所述第一和第二存储器之间的数据通道;
所述MUX根据所述第二通道切换指令,断开所述FPGA芯片与所述第一存储器之间的数据通道,连接所述FPGA芯片与所述第二存储器之间的数据通道。


4.如权利要求3所述的方法,其特征在于,所述的方法还包括:
所述FPGA芯片接收第二加载指令,并根据所述第二加载指令向所述读写控制器发送加载请求信号,所述第二加载指令指示FPGA芯片加载存储器中的逻辑;
所述读写控制器接收所述加载请求信号,并响应所述加载请求信号向所述FPGA芯片返回第二加载信号,所述第二加载信号用于触发FPGA加载逻辑;
所述FPGA芯片根据所述第二加载信号,通过所述FPGA与所述第二存储器之间的数据通道,将所述第二逻辑加载到所述FPGA芯片上。


5.如权利要求4所述的方法,其特征在于,所述第一逻辑和所述第二逻辑为PCIe静态逻辑,所述的方法还包括:
所述第二逻辑完成后,所述FPGA芯片向CPU发送加载完成信号,以便于所述CPU枚举所述FPGA芯片与所述CPU之间的PCIe通道;
在枚举成功后,所述FPGA芯片通过与所述CPU之间的PCIe通道加载非PCIe静态逻辑以及动态逻辑。


6.如权利要求4所述的方法,其特征在于,当所述第一存储器设置有写保护时,所述方法还包括:
所述读写控制器接收第一写数据指令,所述第一写数据指令指示有数据要写入所述第一存储器,根据所述第一写数据指令向所述多路复用器发送第三通道切换指令并向所述第一存储器发送关闭写保护的指令;
所述MUX根据所述第三通道切换指令,断开所述FPGA芯片与所述第二存储器之间的数据通道,连接所述FPGA芯片与所述第一存储器之间的数据通道;
所述第一存储器根据所述关闭写保护的指令,关闭写保护。


7.如权利要求2-6任意一项所述的方法,其特征在于,所述读写控制器为CPLD,所述MUX为SPIMUX,所述数据通道为SPI通道。


8.一种FPGA设备,所述FPGA设备包括FPGA芯片、第一存储器、第二存储器、读写控制器和多路复用器MUX,其中,所述第一存储器存储有第一逻辑,所述第二存储器中存储有第二逻辑,其特征在于:
所述读写控制器用于接收第一加载指令,所述第一加载指令用于指示将所述第一逻辑加载到所述FPGA芯片,并根据所述第一加载指令向多路复用器发送第一通道切换指令以及在通道切换完成后向所述FPGA芯片发送第一加载信号,其中,所述第一通道切换指令用于指示所述MUX切换所述MUX与第一及第二存储器之间的数据通道,所述第一加载信号用于触发所述FPGA芯片加载逻辑;
所述MUX用于根据所述第一通道切换指令,断开所述FPGA芯片与所述第二存储器之间的数据通道,连接所述FPGA与所述第一存储器之间的数据通道;
所述FPGA芯片,用于根据所述第一加载信号通过所述FPGA芯片与所述第一存储器之间的数据通道,将所述第一逻辑加载到FPGA芯片中。


9.如权利要求8所述的设备,其特征在于,
所述读写控制器还用于接收重置指示,根据所述重置指示向所述多路复用器发送第二通道切换指令,所述第二通道切换指令用于指示所述MUX切换所述MUX与所述第一和第二存储器之间的数据通道;
所述MUX还用于根据所述第二通道切换指令,断开所述FPGA芯片与所述第一存储器之间的数据通道,连接所述F...

【专利技术属性】
技术研发人员:吕跃强侯新宇罗浩
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1