一种复位方法、复位装置及智能网卡与流程

文档序号:24046087发布日期:2021-02-23 18:48阅读:198来源:国知局
一种复位方法、复位装置及智能网卡与流程

[0001]
本发明涉及智能网卡配置技术领域,特别是一种复位方法、复位装置及智能网卡。


背景技术:

[0002]
目前,带有soc芯片(系统级芯片)的基于fpga的智能网卡(smart-nic)在复位的时候需要完成以下两个步骤:1)智能网卡对fpga与主板cpu的pcie通信接口ip完成复位;2)智能网卡对fpga与板卡上soc芯片的pcie通信接口ip完成复位;其中,针对soc芯片的通信接口复位需要在与主板cpu的通信接口复位完成后才能进行,以使得智能网卡复位能够正确完成。
[0003]
现有技术中,soc芯片在上电初始化完成后,会自动执行复位指令,向智能网卡的fpga芯片发送pcie主线复位信号以驱动fpga完成相应的复位操作,但由于智能网卡的fpga被配置在不同种类(如不同品牌、不同类型)的主机环境下,其在执行与主板cpu的通信接口复位和初始化配置的时间会根据逻辑量的大小有所不同,因此为确保对soc芯片的复位能够正确完成,通常需要针对性设置soc芯片发出复位指令的等待时长,以控制soc芯片在相应的延时时间后才发出复位信号。
[0004]
但是上述针对智能网卡的复位机制设置技术方案中,需要针对不同的主机类型分别设置智能网卡的复位机制,不能满足智能网卡针对不同种类主机的通用性要求。


技术实现要素:

[0005]
针对上述提出的智能网关设备复位技术方案存在通用性不足的问题,本发明旨在提供一种复位方法、复位装置及智能网卡,以适配目前市面上各种主机(如服务器或pc主机)的应用。
[0006]
第一方面,本发明示出一种复位方法,适用于配置在主机上的网关设备,该网关设备包括fpga芯片和soc芯片,该复位方法包括:
[0007]
在网关设备上电初始化后,检测是否接收到由主机发送的第一复位信号,若是,则向fpga芯片发送第二复位信号,以控制fpga芯片与主板cpu的pcie总线复位;
[0008]
等待接收fpga芯片发送的配置完成信号和soc芯片反馈的上电状态信息;当接收到fpga芯片发送的配置完成信号以及soc芯片上电完成后,向soc芯片发送就绪信号,以使得soc芯片在收到就绪信号后发出第三复位信号;
[0009]
当接收到第三复位信号时,向fpga芯片发送第四复位信号,以控制fpga芯片与soc芯片的pcie总线复位。
[0010]
一种实施方式中,该方法还包括:通过锁存模块接收由主机发送的第一复位信号;
[0011]
检测是否接收到由主机发送的第一复位信号,包括:
[0012]
检测锁存模块的输出状态;当检测到锁存模块响应第一复位信号而输出第一锁存信号时,向fpga芯片发送第二复位信号。
[0013]
一种实施方式中,当检测到锁存模块响应第一复位信号而输出第一锁存信号时,
还包括:
[0014]
控制锁存模块切换为锁存状态,以使得锁存状态下的锁存模块不再响应由主机发送的复位信号而输出第一锁存信号。
[0015]
一种实施方式中,该方法还包括:当超过设定的阈值时间没有检测到锁存模块输出第一锁存信号时,向fpga芯片发送第二复位信号,并控制锁存模块切换为锁存状态,以使得锁存状态下的锁存模块不再响应由主机发送的复位信号而输出第一锁存信号。
[0016]
一种实施方式中,当接收到fpga芯片发送的配置完成信号以及soc上电完成后,向soc芯片发送就绪信号,具体包括:
[0017]
当接收到fpga芯片发送的配置完成信号时,向soc芯片发送上电控制信号,并等待接收soc芯片反馈的上电状态信息;
[0018]
当接收到soc芯片反馈的上电完成信息后,向soc芯片发送就绪信号。
[0019]
第二方面,本发明示出一种复位装置,适用于配置在主机上的网关设备,该网关设备包括fpga芯片和soc芯片,该复位装置分别与主机、fpga芯片和soc芯片连接,其包括:
[0020]
主机通信模块,用于接收由主机发送的第一复位信号;
[0021]
板卡通信模块,用于接收由soc芯片发送的第三复位信号和上电状态信息,以及向soc芯片发送就绪信号;
[0022]
fpga通信模块,用于接收由fpga芯片反馈的配置完成信号;
[0023]
控制模块,用于向fpga芯片发送第二复位信号,以控制fpga芯片与主板cpu的pcie总线复位;以及向fpga芯片发送第四复位信号,以控制fpga芯片与soc芯片的pcie总线复位;
[0024]
处理模块,用于在网关设备上电初始化后,检测是否接收到由主机发送的第一复位信号,若是,则驱动控制模块向fpga芯片发送第二复位信号;当通过fpga通信模块接收到fpga芯片发送的配置完成信号以及通过板卡通信模块接收到soc芯片反馈的上电完成后,通过板卡通信模块向soc芯片发送就绪信号,以使得soc芯片在收到就绪信号后发出第三复位信号;以及当通过板卡通信模块接收到第三复位信号时,驱动控制模块向fpga芯片发送第四复位信号。
[0025]
一种实施方式中,主机通信模块包括锁存模块;
[0026]
锁存模块用于接收由主机发送的第一复位信号,并响应该第一复位信号输出第一锁存信号;
[0027]
处理模块还包括:检测该锁存模块的输出状态;当检测到锁存模块响应该第一复位信号输出第一锁存信号时,驱动控制模块向fpga芯片发送第二复位信号。
[0028]
一种实施方式中,处理模块还包括:
[0029]
当检测到锁存模块响应该第一复位信号输出第一锁存信号时,控制该锁存模块切换为锁存状态,以使得锁存状态下的锁存模块不再响应由主机发送的复位信号而输出第一锁存信号。
[0030]
一种实施方式中,处理模块还包括:当超过设定的阈值时间没有检测到锁存模块输出第一锁存信号时,驱动控制模块向fpga芯片发送第二复位信号,并控制该锁存模块切换为锁存状态,以使得锁存状态下的锁存模块不再响应由主机发送的复位信号而输出第一锁存信号。
[0031]
一种实施方式中,处理模块包括:
[0032]
当通过fpga通信模块接收到fpga芯片发送的配置完成信号时,驱动板卡通信模块向soc芯片发送上电控制信号,并等待接收soc芯片反馈的上电状态信息;
[0033]
当通过板卡通信模块接收到soc芯片反馈的上电完成信息后,通过板卡通信模块向soc芯片发送就绪信号。
[0034]
第三方面,本发明示出一种智能网卡,该智能网卡应用于主机上,该智能网卡包括复位装置、fpga芯片和soc芯片;
[0035]
其中fpga芯片通过pcie总线与主机cpu连接,以及通过pcie总线与soc芯片连接,复位装置与主机、fpga芯片以及soc芯片连接;该复位装置包括上述第二方面中任一种实施方式所示的复位装置。
[0036]
本发明的有益效果为:
[0037]
通过在智能网关设备中设置复位装置分别接收由主机cpu发送的复位信号以及soc芯片发出的复位信号,并根据接收的复位信号对fpga芯片进行旁路控制,能够根据fpga芯片反馈的配置状态,自适应地控制soc芯片在fpga芯片在配置完成后才发出相应的复位信号,确保智能网卡能够适应不同种类的主机环境下,准确完成复位操作,提高了智能网卡的通用性。同时有效提高智能网卡的复位性能。
附图说明
[0038]
利用附图对本发明作进一步说明,但附图中的实施例不构成对本发明的任何限制,对于本领域的普通技术人员,在不付出创造性劳动的前提下,还可以根据以下附图获得其它的附图。
[0039]
图1为本发明一种实施方式所示的复位方法逻辑设计框图;
[0040]
图2为本发明一种实施方式所示的复位方法逻辑设计流程图;
[0041]
图3为本发明一种实施方式所示的复位装置结构框图;
[0042]
图4为本发明一种实施方式所示的智能网卡结构框图。
具体实施方式
[0043]
结合以下应用场景对本发明作进一步描述。
[0044]
本发明提供一种用于配置在主机上的智能网关设备的复位方法,其中该智能网关设备(smart-nic)包括复位装置,该复位装置与网关设备的fpga芯片和soc芯片,以及主机连接。其中该复位方法的逻辑设计框图如图1所示,该复位方法具体包括:
[0045]
在智能网关设备上电初始化后,复位装置检测是否接收到由主机(host)发送的第一复位信号(pcie reset),若是,则向fpga芯片发送第二复位信号(host reset),以控制fpga芯片与主板cpu的pcie总线复位;
[0046]
复位装置等待接收fpga芯片发送的配置完成信号(config done)和soc芯片(soc)反馈的上电状态信息;当复位装置接收到fpga芯片发送的配置完成信号以及soc芯片上电完成后,向soc芯片发送就绪信号(power state),以使得soc芯片在收到就绪信号后向复位装置发出第三复位信号(plt reset);
[0047]
当接收到第三复位信号时,复位装置向fpga芯片发送第四复位信号(soc reset),
以控制fpga芯片与soc芯片的pcie总线复位。
[0048]
上述实施方式中,通过在智能网关设备中设置复位装置分别接收由主机cpu发送的复位信号以及soc芯片发出的复位信号,并根据接收的复位信号对fpga芯片进行旁路控制,能够根据fpga芯片反馈的配置状态,自适应地控制soc芯片在fpga芯片在配置完成后才发出相应的复位信号。确保智能网卡能够适应不同种类的主机环境下,准确完成复位操作,提高了智能网卡的通用性。同时有效提高智能网卡的复位性能。
[0049]
为提高智能网卡的适应性,以满足应用在不同主机环境下的设计需求,复位装置中还设置有锁存模块,以使得复位装置的功能性得到扩展。
[0050]
一种实施方式中,该方法还包括:通过锁存模块接收由主机发送的第一复位信号;
[0051]
检测是否接收到由主机发送的第一复位信号,包括:
[0052]
复位装置检测锁存模块的输出状态;当检测到锁存模块响应第一复位信号而输出第一锁存信号时,复位装置向fpga芯片发送第二复位信号。
[0053]
通过进一步设置锁存模块接收由主机发送的第一复位信号,通过锁存模块能对由主机cpu提前发送的第一复位信号进行锁存,以使得智能网关设备在上电后能够第一时间响应该锁存的信号,并执行相应的复位操作。同时以锁存模块的输出状态间接反映第一复位信号的接收情况,有助于后续进一步对锁存模块进行进一步的逻辑设置和监测,进一步扩展本发明复位方法的是适应性。
[0054]
为避免智能网关设备在正常工作期间,有可能会受到有主机后续发出的复位信号(例如warm reset、cold reset等)影响,影响智能网关设备的正常工作状态。
[0055]
一种实施方式中,该方法中,当检测到锁存模块响应第一复位信号而输出第一锁存信号时,还包括:
[0056]
复位装置控制锁存模块切换为锁存状态,以使得锁存状态下的锁存模块不再响应由主机发送的复位信号而输出第一锁存信号。
[0057]
一种应用场景中,在智能网关设备上电完毕后,当通过锁存模块接收到由主机cpu发送的pcie reset信号时,锁存模块输出端被置起(“1”状态);由复位装置检测到锁存模块被置起后触发向fpga发送host reset信号,以使得fpga执行主板cpu的pcie总线复位。并且锁存模块被设置为复位状态,即锁存模块输入端置零,并且不再受输入端的状态影响,以使得由主机发送的复位信号无效。
[0058]
上述实施方式中,通过设置锁存模块以及相应的逻辑设定,使得智能网关设备在上电后仅配合主机发送的pcie reset信号做一次响应,以使得fpga完成相应的总线复位和配置,同时能够有效避免主机后续的总线复位信号对智能网关设备的影响,提高智能网关设备在正常工作期间的稳定性。
[0059]
针对fpga芯片需要在上电初始化完成后才会接受到来自主机发出的pcie reset信号,但是由于运行在不同的主机环境下,fpga的上电初始化时间会有所不同,因此主机发出pcie reset信号的时间也会影响智能网关设备能否正常执行复位操作。例如以目前流行的purley和whitley两个服务器为例,fpga在在上述两个服务器模式下进行初始化的状态也有所不同,fpga在purley的12v main power电源下初始化时间比较晚,这种情况host发来的pcie reset比初始化时间早;fpga在whitley的12v stby power电源下的初始化比较早,这种情况host发来的pcie reset比初始化时间晚。
[0060]
针对服务器发出的pcie reset信号比初始化时间早的情况,通过锁存模块的设置,能够有效地对复位信号进行锁存,以使得智能网关设备能够正确相应该复位信号;但是针对服务器发出的pcie reset信号比初始化时间晚的情况,甚至一些情况下智能网关设备采用主机系统s4(standby)状态的电源供电,需要智能网关设备在系统s4状态下开始工作,但此时由于主机系统的cpu在s4状态下没上电,因此cpu不会发出pcie reset信号的情况下,智能网关设备依然无法正常执行复位。
[0061]
针对上述情况,一种实施方式中,该方法还包括:当超过设定的阈值时间没有检测到锁存模块输出第一锁存信号时,复位装置向fpga芯片发送第二复位信号,并控制锁存模块切换为锁存状态,以使得锁存状态下的锁存模块不再响应由主机发送的复位信号而输出第一锁存信号。
[0062]
智能网关设备在上电后,便进入等待由主机发出pcie reset信号的状态,针对应用场景下,主机无法发出pcie reset信号,导致智能网关设备无法正常工作的情况。上述实施方式中,在智能网关设备进入等待主机pcie reset信号后,还设置相应的逻辑指令,当智能网关设备超过设定的时间没有检测到由主机发出的pcie reset信号时,其通过内部逻辑控制fpga执行相应的主机总线复位和配置。其中还具体提供了一种通过旁路模块执行逻辑判断并旁路控制锁存模块内部置起输出端,以实现向fpga发出host reset信号,可以让智能网关设备及时在主机cpu不上电的情况下,依然可以最小系统启动工作,能够进一步提高智能网关设备在不同主机环境下工作的通用性和适应性。
[0063]
在一种应用场景中,设置的等待阈值时间为2秒,当智能网关设备上电后检测到超过2秒的时间没有检测到由主机发出的pcie reset信号,则内部置起锁存模块以控制fpga执行主机pcie总线接口复位。
[0064]
针对soc芯片需要在fpga执行主机通信接口复位配置完成后才能有效的情况,为进一步确保fpga执行与板卡上soc芯片的pcie通信接口ip复位的稳定性。一种实施方式中,该方法中,当接收到fpga芯片发送的配置完成信号以及soc上电完成后,复位装置向soc芯片发送就绪信号,具体包括:
[0065]
当复位装置接收到fpga芯片发送的配置完成信号时,复位装置向soc芯片发送上电控制信号,并等待接收soc芯片反馈的上电状态信息;
[0066]
当复位装置接收到soc芯片反馈的上电完成信息后,复位装置向soc芯片发送就绪信号。
[0067]
上述实施方式中,在复位装置向fpga芯片发送host reset信号后,等待fpga芯片在完成与主板cpu的pcie通信接口ip复位后反馈的config done信号,当接收到由fpga反馈的config done信号后,复位装置向soc芯片的电源控制模块发送上电控制信号,以控制soc芯片进行上电,并等待由soc芯片在上电完成后反馈的上电状态信息;当接收到由soc芯片反馈的上电状态信息后,复位装置向soc芯片发出就绪信号,以使得soc芯片在获取到就绪信号后发出plt reset信号,复位装置接收到plt reset信号后向fpga芯片发出soc reset信号,以使得fpga在接收到soc reset信号后执行fpga与板卡上soc芯片的pcie通信接口ip复位。通过上述的复位设置方式,能够自适应地控制soc芯片在fpga完成主机pcie总线复位和fpga进行复位配置完成后,才发出相应的复位指令,以使得fpga能够正确完成与soc芯片的pcie总线复位,提高了智能网关设备复位机制的智能化水平,同时提高了智能网关设备
的通用性和稳定性。
[0068]
参见图2,其示出本发明一种智能网关设备复位方法的逻辑设计流程图,结合该逻辑流程图,进一步说明本申请提出的智能网关设备复位方法如下:
[0069]
智能网关设备在上电后,等待主机cpu发送的主机总线复位信号(pcie reset),通过检测锁存模块的输出端状态,当锁存模块输出端被置起时,向fpga发送host reset信号,以控制fpga执行主机pcie总线复位配置;当超过设定的阈值时间没有检测到接收到主机cpu发送的主机总线复位信号时,通过旁路控制模组控制锁存模块输出端置起。之后,智能网关设备等待fpga完成主机pcie总线复位配置后和soc芯片上电后发出的反馈信息,当同时满足收到fpga完成主机pcie总线复位配置的反馈信息以及soc芯片成功上电的反馈信息后,向soc发出就绪信号,以使得soc芯片在收到该就绪信号后发出板卡soc总线复位信号(ple reset),并根据该复位信号向fpga发送soc reset信号,以控制fpga执行soc芯片的pcie总线复位配置,并最终完成智能网关设备的复位操作。
[0070]
其中,上述复位方法中,从主机发出的复位信号(pcie reset)在智能网关设备上好电后便会无效。soc在正常上电后,复位装置发送一个就绪信号给soc后,soc就可以正常发出复位信号(plt reset)。把主机发出的复位信号和soc发出的复位信号都接到复位装置中,由复位装置利用这些信号旁路操作fpga,这样针对不同的环境,使用锁存模块监测pcie reset无效后经过锁存发给fpga,并采用复位装置接收fpga配置完成信号(config done)用作soc芯片的电pvccin的控制信号,这样可以间接满足fpga在配置结束后向soc芯片发送就绪信号;内部使用锁存以后的host reset信号和该就绪信号做“与”逻辑后,再将逻辑后的就绪信号发送给soc;同时,如果监测到2s内没接收由主机发出的复位信号,则内部置位锁存模块以向fpga发出host reset信号,可以让智能网关设备在即使主板不上dc(未置位pcie reset),也可以最小系统启动工作,以使得智能网关设备能够同时满足上述多种实施方式提出的设计需求。
[0071]
参见图3,其示出本发明一种智能网关设备复位装置的框架结构图,该装置适用于配置在主机上的智能网关设备,该智能网关设备包括fpga芯片和soc芯片,该复位装置分别与主机、fpga芯片和soc芯片连接,其包括:
[0072]
主机通信模块,用于接收由主机发送的第一复位信号(pcie reset);
[0073]
板卡通信模块,用于接收由soc芯片发送的第三复位信号(plt reset)和上电状态信息,以及向soc芯片发送就绪信号;
[0074]
fpga通信模块,用于接收由fpga芯片反馈的配置完成信号(config done);
[0075]
控制模块,用于向fpga芯片发送第二复位信号(host reset),以控制fpga芯片与主板cpu的pcie总线复位;以及向fpga芯片发送第四复位信号(soc reset),以控制fpga芯片与soc芯片的pcie总线复位;
[0076]
处理模块,用于在智能网关设备上电初始化后,检测是否接收到由主机发送的第一复位信号,若是,则驱动控制模块向fpga芯片发送第二复位信号;当通过fpga通信模块接收到fpga芯片发送的配置完成信号以及通过板卡通信模块接收到soc芯片反馈的上电完成后,通过板卡通信模块向soc芯片发送就绪信号,以使得soc芯片在收到就绪信号后发出第三复位信号;以及当通过板卡通信模块接收到第三复位信号时,驱动控制模块向fpga芯片发送第四复位信号。
[0077]
一种实施方式中,主机通信模块包括锁存模块;
[0078]
锁存模块用于接收由主机发送的第一复位信号,并响应该第一复位信号输出第一锁存信号;
[0079]
处理模块还包括:检测该锁存模块的输出状态;当检测到锁存模块响应该第一复位信号输出第一锁存信号时,驱动控制模块向fpga芯片发送第二复位信号。
[0080]
一种实施方式中,处理模块还包括:
[0081]
当检测到锁存模块响应该第一复位信号输出第一锁存信号时,控制该锁存模块切换为锁存状态,以使得锁存状态下的锁存模块不再响应由主机发送的复位信号而输出第一锁存信号。
[0082]
一种实施方式中,处理模块还包括:当超过设定的阈值时间没有检测到锁存模块输出第一锁存信号时,驱动控制模块向fpga芯片发送第二复位信号,并控制该锁存模块切换为锁存状态,以使得锁存状态下的锁存模块不再响应由主机发送的复位信号而输出第一锁存信号。
[0083]
一种实施方式中,处理模块包括:
[0084]
当通过fpga通信模块接收到fpga芯片发送的配置完成信号时,驱动板卡通信模块向soc芯片发送上电控制信号,并等待接收soc芯片反馈的上电状态信息;
[0085]
当通过板卡通信模块接收到soc芯片反馈的上电完成信息后,通过板卡通信模块向soc芯片发送就绪信号。
[0086]
需要说明的是,上述复位装置用于实现上述的如图1和图2所示的一种智能网关设备复位方法,装置中的各模块能够对应实现上述推送方法以及其不同实施方式中对应的步骤和功能,在此不再重复叙述。
[0087]
参见图4,其示出本发明一种智能网关卡的框架结构图,该智能网卡应用于主机上,该智能网卡包括复位装置、fpga芯片和soc芯片;
[0088]
其中fpga芯片通过pcie总线与主机cpu连接,以及通过pcie总线与soc芯片连接,复位装置与主机、fpga芯片以及soc芯片连接;该复位装置包括上述任一种实施方式所示的复位装置。
[0089]
需要说明的是,上述智能网卡用于实现上述的如图1和图2所示的一种智能网关设备复位方法,该智能网卡中的各模块能够对应实现上述推送方法以及其不同实施方式中对应的步骤和功能,在此不再重复叙述。
[0090]
需要说明的是,在本发明各个实施例中的各功能单元/模块可以集成在一个处理单元/模块中,也可以是各个单元/模块单独物理存在,也可以是两个或两个以上单元/模块集成在一个单元/模块中。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件功能单元/模块的形式实现。例如,本申请上述复位装置,可以是独立物理存在的控制装置,也可以是集成在智能网关设备中的逻辑单元(如cpld);本申请在此不作具体限定。
[0091]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解应当理解,可以以硬件、软件、固件、中间件、代码或其任何恰当组合来实现这里描述的实施例。对于硬件实现,处理器可以在一个或多个下列单元中实现:专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器、设计用于实现这里所描述功能的其他电子单元或其组合。
对于软件实现,实施例的部分或全部流程可以通过计算机程序来指令相关的硬件来完成。实现时,可以将上述程序存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。计算机可读介质可以包括但不限于ram、rom、eeprom、cd-rom或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。
[0092]
最后应当说明的是,以上实施例仅用以说明本发明的技术方案,而非对本发明保护范围的限制,尽管参照较佳实施例对本发明作了详细地说明,本领域的普通技术人员应当分析,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的实质和范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1