一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种动态降低FPGA功耗的方法及系统与流程

2021-10-24 04:52:00 来源:中国专利 TAG:
一种动态降低fpga功耗的方法及系统
技术领域
:1.本发明属于通信
技术领域
:,具体涉及一种动态降低fpga功耗的方法及系统。
背景技术
::2.现有技术主要通过采用先进工艺的低功耗fpga芯片、优化fpga的逻辑设计等方式来降低fpga的功耗,但是这些方式均需要投入大量资金和技术人员进行研发,并将导致fpga复杂度的增加,并且更换fpga芯片也使得系统成本增加。因此,其所能取得的降低fpga功耗的效果与投入不成正比,无法很好地解决降低fpga的功耗的问题。技术实现要素:3.为了克服上述现有技术的缺陷,本发明提出了一种动态降低fpga功耗的方法及系统,可以在不更换fpga芯片、不改变程序的前提下,根据业务应用场景动态降低fpga的功耗。4.本发明实施例提出了一种动态降低fpga功耗的方法,所述方法包括:5.获取所述fpga中所有互联接口链路对应的硬件状态;6.判断各个互联接口链路处于工作状态或异常状态;7.控制处于异常状态的互联接口链路对应的收发器关闭。8.在一个具体实施例中,所述判断各个互联接口链路处于工作状态或异常状态,包括:若所述互联接口链路是处于异常状态,对所述fpga的高速串行通信接口进行复位。9.在一个具体实施例中,所述判断各个互联接口链路处于工作状态或异常状态,还包括:复位后再次获取所述fpga中所有互联接口链路对应的硬件状态,再次判断各个互联接口链路处于工作状态或异常状态。10.在一个具体实施例中,所述控制处于异常状态的互联接口链路对应的收发器关闭,包括:若复位前处于异常状态的所述互联接口链路,在复位后仍处于异常状态,控制处于异常状态的所述互联接口链路对应的收发器关闭。11.在一个具体实施例中,所述控制处于异常状态的所述互联接口链路对应的收发器关闭,还包括:可根据所述fpga的应用环境,决定是否需要关闭处于异常状态的所述互联接口链路对应的收发器。12.本发明实施例还提出了一种动态降低fpga功耗的系统,所述系统包括:13.获取模块,用于获取所述fpga中所有互联接口链路对应的硬件状态;14.第一判断模块,用于判断各个互联接口链路处于工作状态或异常状态;15.控制模块:用于控制处于异常状态的互联接口链路对应的收发器关闭。16.在一个具体实施例中,所述系统还包括:复位模块,用于所述互联接口链路是处于异常状态时,对所述fpga的高速串行通信接口进行复位。17.在一个具体实施例中,所述系统还包括:第二获取模块,用于复位后再次获取所述fpga中所有互联接口链路对应的硬件状态;第二判断模块,用于再次判断各个互联接口链路处于工作状态或异常状态。18.在一个具体实施例中,所述系统还包括:控制模块,用于复位前处于异常状态的所述互联接口链路,在复位后仍处于异常状态时,控制处于异常状态的所述互联接口链路对应的收发器关闭。19.在一个具体实施例中,所述系统还包括:第三判断模块,用于根据所述fpga的应用环境,决定是否需要关闭处于异常状态的所述互联接口链路对应的收发器。20.以此,本发明提供了一种动态降低fpga功耗的方法及系统,通过获取并判断fpga中所有互联接口链路的状态,控制处于异常状态的互联接口链路对应的收发器关闭。本发明利用了fpga收发器的下电控制端口,以简单、有效的方法达到动态降低fpga功耗的目的,并且在功耗敏感的应用场景下更具意义。基于本发明提供的一种动态降低fpga功耗的方法及系统,可以在不更换fpga芯片、不改变程序的前提下,根据业务应用场景动态降低fpga的功耗。附图说明21.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。22.图1为本发明实施例提供的一种动态降低fpga功耗的方法的流程示意图;23.图2为fpga的层次示意图;24.图3为复位高速串行通信接口的方法示意图;25.图4为本发明实施例提供的另一种动态降低fpga功耗的方法的流程示意图;26.图5为本发明实施例提供的一种动态降低fpga功耗的系统的结构示意图。具体实施方式27.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。28.实施例129.参考图1,本发明提供一种动态降低fpga功耗的方法,该动态降低fpga功耗的方法包括以下步骤:30.101:搭载有fpga芯片的系统上电。31.具体地,如图2所示,该系统中包含有业务控制层、fpga控制层、高速通信串行接口三个层次。gtx、gth、pcie、sata等高速通信串行接口为最底层;fpga控制层为中间层,直接控制高速通信串行接口的收发器的上下电;业务控制层为最上层。32.具体地,fpga控制层控制收发器的上下电,例如xilinxfpgatransceiver的rxpd[1:0]、txpd[1:0]均为2’b00时为工作模式,2’b11为下电模式。[0033]具体地,提供fpga的厂家可以为赛灵思xilinx。可根据实际应该用进行设定,本发明实施例不加以限定。[0034]102:针对fpga中的所有互联接口链路,获取与该互联接口链路对应的硬件状态。[0035]具体地,互联接口链路对应连接fpga控制层的gtx、gth、pcie、sata等高速通信串行接口。[0036]具体地,获取与该互联接口链路对应的硬件状态时,可以选择同时获取所有互联接口链路的状态的方案,或者选择逐一检测各个互联接口链路的状态的方案。[0037]优选地,可使用周期性检测方式,多次获取与该互联接口链路对应的硬件状态。获取与该互联接口链路对应的硬件状态的时间间隔是预先设置好的,可以根据不同的需求,设定合理的时间间隔。[0038]通过采取周期性检测的方式,可以减少人为的操作,降低工作量。在确定板卡不在位,并插入板卡重新进行检测时,也不必使搭载有fpga芯片的系统下电后再重新上电。[0039]103:判断各个互联接口链路处于工作状态或异常状态。[0040]具体地,gtx、gth为disperr与notintable,pcie为pcie_link_up、serialrapidio为port_initialied、link_initialied。gtx、gth为disperr与notintable,pcie为pcie_link_up、sata为sata_link_up时,判断相应互联接口链路处于异常状态。[0041]优选地,可以在检测到有存在处于异常状态的互联接口链路后,多次获取与该互联接口链路对应的硬件状态,减少人为的操作,降低工作量。[0042]若存在处于异常状态的互联接口链路,执行步骤104。[0043]104:对fpga的高速串行通信接口进行复位。[0044]具体地,如图3所示,fpga链路指示信号检测电路由一个d触发器、一个非门和一个与门组成,能够实时检测链路指示信号状态。当检测到链路指示信号出现下降沿时,fpga链路指示信号检测电路会产生带有一个高电平的复位脉冲,并将该复位脉冲输送给脉冲展宽电路。脉冲展宽电路将复位脉冲展宽,以满足被复位模块的复位时间要求。[0045]需要说明的是,复位时需要对包括收发器的整个接口模块复位,使其重新发起建立连接的请求。[0046]需要说明的是,复位的目的是为了避免部分通信接口因通信双方上电时机不一致导致的链路训练异常。[0047]105:针对fpga中的所有互联接口链路,再次获取与该互联接口链路对应的硬件状态。[0048]106:再次判断各个互联接口链路处于工作状态或异常状态。[0049]需要说明的是,若再次判断互联接口链路的状态仍处于异常,则可判断其对端板卡不在位。[0050]若复位前处于异常状态的互联接口链路,在复位后仍处于异常状态,执行步骤107。[0051]107:控制处于异常状态的互联接口链路对应的收发器关闭。[0052]具体地,每个收发器的功耗可广泛应用于基于gtx、gth、gty、pcie、sata等高速通信接口。通过关闭闲置的收发器节约的功耗,可以应用于其他的互联接口链路。[0053]需要说明的是,不同厂家之间的收发器关闭方法可能存在一定的差异。[0054]优选地,可以判断当前fpga的资源使用状态,根据当前fpga的资源使用状态,决定是否需要关闭处于异常状态的互联接口链路对应的收发器。[0055]优选地,通过判断当前fpga使用的资源是否超出预先设置或资源参数阈值,决定是否需要关闭处于异常状态的互联接口链路对应的收发器。[0056]需要说明的是,预先设置的资源参数阈值由fpga的应用环境决定,根据fpga应用环境设定合理的资源参数阈值。[0057]例如,如果业务场景使得fpga需要通过pcie接口与远端主机通信,而无需通过gtx接口与其他设备通信,此时资源参数设为pcie不可关闭,gtx可关闭。[0058]再例如,系统部署的sata电子盘或者pcie电子盘个数减少,此时判断资源参数设为sata接口或者pcie接口可关闭。[0059]常规状态下,xilinxvirtex7690t单个gthtransceiver的功耗约为0.21w,xilinxvirtex7485t单个gtxtransceiver的功耗约为0.268w,每关闭10路空闲transceiver可节约2w功耗,在功耗敏感的应用场景下很有意义。[0060]需要说明的是,利用fpga收发器的下电控制端口,可以在不改变程序的前提下,根据业务应用场景动态降低功耗。[0061]实施例2[0062]参考图4,本发明提供另一种动态降低fpga功耗的方法,该动态降低fpga功耗的方法包括以下步骤:[0063]201:搭载有fpga芯片的系统上电。[0064]具体地,如图2所示,fpga中包含有业务控制层,fpga控制层,高速通信串行接口三个层次。gtx、gth、pcie、sata等高速通信串行接口为最底层;fpga控制层为中间层,直接控制收发器的上下电;业务控制层为最上层。[0065]具体地,fpga控制层控制收发器的上下电,例如xilinxfpgatransceiver的rxpd[1:0]、txpd[1:0]均为2’b00时为工作模式,2’b11为下电模式。[0066]具体地,提供fpga的厂家可以为赛灵思xilinx。可根据实际应该用进行设定,本发明实施例不加以限定。[0067]202:针对fpga中的所有互联接口链路,获取与该互联接口链路对应的硬件状态。[0068]具体地,互联接口链路对应连接fpga控制层的gtx、gth、pcie、sata等高速通信串行接口。[0069]203:判断各个互联接口链路处于工作状态或异常状态。[0070]具体地,gtx、gth为disperr与notintable,pcie为pcie_link_up、serialrapidio为port_initialied、link_initialied。gtx、gth为disperr与notintable,pcie为pcie_link_up、sata为sata_link_up时,判断相应互联接口链路处于异常状态。[0071]优选地,可以在检测到有存在处于异常状态的互联接口链路后,再次获取与该互联接口链路对应的硬件状态,减少人为的操作,降低工作量。[0072]若存在处于异常状态的互联接口链路,执行步骤204;若不存在处于异常状态的互联接口链路,重新执行步骤202。[0073]204:对fpga的高速串行通信接口进行复位。[0074]具体地,如图3所示,fpga链路指示信号检测电路由一个d触发器、一个非门和一个与门组成,能够实时检测链路指示信号状态。当检测到链路指示信号出现下降沿时,fpga链路指示信号检测电路会产生带有一个高电平的复位脉冲,并将该复位脉冲输送给脉冲展宽电路。脉冲展宽电路将复位脉冲展宽,以满足被复位模块的复位时间要求。[0075]需要说明的是,复位时需要对包括收发器的整个接口模块复位,使其重新发起建立连接的请求。[0076]需要说明的是,复位的目的是为了避免部分通信接口因通信双方上电时机不一致导致的链路训练异常。[0077]205:针对fpga中的所有互联接口链路,再次获取与该互联接口链路对应的硬件状态。[0078]206:再次判断各个互联接口链路处于工作状态或异常状态。[0079]需要说明的是,若再次判断互联接口链路的状态仍处于异常,则可判断其对端板卡不在位。[0080]若复位前处于异常状态的互联接口链路,在复位后仍处于异常状态,执行步骤207;若复位前处于异常状态的互联接口链路,在复位后处于工作状态,执行步骤202。[0081]207:控制处于异常状态的互联接口链路对应的收发器关闭。[0082]具体地,每个收发器的功耗可广泛应用于基于gtx、gth、gty、pcie、sata等高速通信接口。通过关闭闲置的收发器节约的功耗,可以应用于其他的互联接口链路。[0083]需要说明的是,不同厂家之间的收发器关闭方法可能存在一定的差异。[0084]优选地,可以根据当前fpga的应用环境,决定是否需要关闭处于异常状态的互联接口链路对应的收发器。[0085]优选地,通过判断当前fpga使用的资源是否超出预先设置或资源参数阈值,决定是否需要关闭处于异常状态的互联接口链路对应的收发器。[0086]需要说明的是,预先设置的资源参数阈值由fpga的应用环境决定,根据fpga应用环境设定合理的资源参数阈值。[0087]实施例3[0088]与上述本发明实施例公开的一种动态降低fpga功耗的方法相对应,参考图5,本发明实施例还对应公开了一种动态降低fpga功耗系统的结构示意图,该动态降低fpga功耗的系统包括:[0089]上电模块301:用于搭载有fpga芯片的系统上电。[0090]第一获取模块302:用于针对fpga中的所有互联接口链路,获取与该互联接口链路对应的硬件状态。[0091]优选地,可使用周期性检测方式,多次获取与该互联接口链路对应的硬件状态。获取与该互联接口链路对应的硬件状态的时间间隔是预先设置好的,可以根据不同的需求,设定合理的时间间隔。[0092]时钟模块308:用于预先设置获取互联接口链路对应的硬件状态的时间间隔。[0093]第一判断模块303:用于判断各个互联接口链路处于工作状态或异常状态。[0094]具体地,gtx、gth为disperr与notintable,pcie为pcie_link_up、serialrapidio为port_initialied、link_initialied。gtx、gth为disperr与notintable,pcie为pcie_link_up、sata为sata_link_up时,判断相应互联接口链路处于异常状态。[0095]优选地,可以在检测到有存在处于异常状态的互联接口链路后,再次获取与该互联接口链路对应的硬件状态,减少人为的操作,降低工作量。[0096]若存在处于异常状态的互联接口链路,转至复位模块304。[0097]复位模块304:用于对fpga的高速串行通信接口进行复位。[0098]具体地,如图3所示,fpga链路指示信号检测电路由一个d触发器、一个非门和一个与门组成,能够实时检测链路指示信号状态。当检测到链路指示信号出现下降沿时,fpga链路指示信号检测电路会产生带有一个高电平的复位脉冲,并将该复位脉冲输送给脉冲展宽电路。脉冲展宽电路将复位脉冲展宽,以满足被复位模块的复位时间要求。[0099]需要说明的是,复位时需要对包括收发器的整个接口模块复位,使其重新发起建立连接的请求。[0100]需要说明的是,复位的目的是为了避免部分通信接口因通信双方上电时机不一致导致的链路训练异常。[0101]第二获取模块305:用于针对fpga中的所有互联接口链路,再次获取与该互联接口链路对应的硬件状态。[0102]第二判断模块306:用于再次判断各个互联接口链路处于工作状态或异常状态。[0103]需要说明的是,若第二次获取互联接口链路的状态仍处于异常,则可判断其对端板卡不在位。[0104]若复位前处于异常状态的互联接口链路,在复位后仍处于异常状态,转至控制模块307。[0105]优选地,可以根据当前fpga的应用环境,决定是否需要关闭处于异常状态的互联接口链路对应的收发器。[0106]优选地,通过判断当前fpga使用的资源是否超出预先设置或资源参数阈值,决定是否需要关闭处于异常状态的互联接口链路对应的收发器。[0107]需要说明的是,预先设置的资源参数阈值由fpga的应用环境决定,根据fpga应用环境设定合理的资源参数阈值。[0108]需要说明的是,若使用根据fpga的应用环境,决定是否需要关闭处于异常状态的所述互联接口链路对应的收发器的优选方案时,则对于复位前处于异常状态的互联接口链路,互联接口链路在复位后仍处于异常状态的情况,转至第三判断模块309。[0109]第三判断模块309:用于根据fpga的应用环境,决定是否需要关闭处于异常状态的所述互联接口链路对应的收发器。[0110]具体地,若判断需要关闭处于异常状态的所述互联接口链路对应的收发器时,转至控制模块307。[0111]控制模块307:用于控制处于异常状态的互联接口链路对应的收发器关闭。[0112]具体地,每个收发器的功耗可广泛应用于基于gtx、gth、gty、pcie、sata等高速通信接口。通过关闭闲置的收发器节约的功耗,可以应用于其他的互联接口链路。[0113]需要说明的是,不同厂家之间的收发器关闭方法可能存在一定的差异。[0114]综上所述,本发明提供了一种动态降低fpga功耗的方法及系统,通过获取并判断fpga中所有互联接口链路的状态,控制处于异常状态的互联接口链路对应的收发器关闭。本发明利用了fpga收发器的下电控制端口,以简单、有效的方法达到动态降低fpga功耗的目的,并且在功耗敏感的应用场景下更具意义。基于本发明提供的一种动态降低fpga功耗的方法及系统,可以在不更换fpga芯片、不改变程序的前提下,根据业务应用场景动态降低fpga的功耗。[0115]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜