CN109710479A - 一种处理方法及第一设备、第二设备 - Google Patents

一种处理方法及第一设备、第二设备 Download PDF

Info

Publication number
CN109710479A
CN109710479A CN201811648355.6A CN201811648355A CN109710479A CN 109710479 A CN109710479 A CN 109710479A CN 201811648355 A CN201811648355 A CN 201811648355A CN 109710479 A CN109710479 A CN 109710479A
Authority
CN
China
Prior art keywords
equipment
debugging
data
component
fpga
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811648355.6A
Other languages
English (en)
Other versions
CN109710479B (zh
Inventor
张兆民
许幼岳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN201811648355.6A priority Critical patent/CN109710479B/zh
Publication of CN109710479A publication Critical patent/CN109710479A/zh
Application granted granted Critical
Publication of CN109710479B publication Critical patent/CN109710479B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本申请公开了一种处理方法及第一设备、第二设备,所述方法包括:由第一设备的第一组件基于预定的网络传输协议接收第二设备发送的第一数据,并将所接收的第一数据写入第一设备的第二组件中;在此基础上,由第一设备的所述第一组件基于所述网络传输协议接收所述第二设备发送的调试信号,并响应于该信号向所述第二组件发送调试指令,以实现对所述第一设备的第二组件中的所述第一数据进行调试。由此可见,本申请实现了基于网络传输协议、借助第一电子设备中的第一组件远程向第一设备的第二组件进行数据写入及调试,从而,应用本申请方案,可实现设备组件代码的远程烧录及调试,为设备组件的代码烧录及调试提供了方便。

Description

一种处理方法及第一设备、第二设备
技术领域
本发明属于设备的测试与维护技术领域,尤其涉及一种处理方法及第一设备、第二设备。
背景技术
服务器等设备的CPU(Central Processing Unit,中央处理器)中可能会集成有FPGA(Field-Programmable Gate Array,现场可编程门阵列),比如Intel CPU的内部即包括有预先集成的FPGA等,在开发CPU的FPGA处理逻辑时,需要把开发的逻辑代码(二进制流文件)烧录到CPU的FPGA中进行调试,以验证其是否符合预期。
目前,通常所采用的调试方法为:将FPGA的调试下载器,比如USB(UniversalSerial Bus,通用串行总线)Blaster插接到设备主板的FPGA JTAG(Joint Test ActionGroup;联合测试工作组)接口上,并同时将该调试下载器与调试主机相连接,在此基础上,由调试主机通过该调试下载器将代码烧录到主板上CPU中的FPGA进而对主板上CPU中的FPGA进行调试。该方法需要预先借助一额外的FPGA调试下载器如USB Blaster等将调试主机与主板的FPGA JTAG进行物理连接,操作麻烦,给FPGA代码的烧录及调试带来了不便,且未能实现FPGA的远程代码烧录及调试。
发明内容
有鉴于此,本发明的目的在于提供一种处理方法及第一设备、第二设备,用以实现设备组件如FPGA等的远程代码烧录及调试,为设备组件代码烧录及调试提供方便。
为此,本发明公开如下技术方案:
一种处理方法,应用于第一设备的第一组件,该方法包括:
基于预定的网络传输协议接收第二设备发送的第一数据;
将所述第一数据写入所述第一设备的第二组件中;
基于所述网络传输协议接收第二设备发送的调试信号;
向所述第二组件发送调试指令,以对所述第二组件中的所述第一数据进行调试;所述调试指令基于所述调试信号生成。
上述方法,优选的,所述第一组件为所述第一设备的基板管理控制器,所述第二组件为所述第一设备的现场可编程门阵列。
上述方法,优选的,所述向所述第二组件发送调试指令,包括:
基于所述调试信号生成一调试指令,所述调试指令符合所述第二组件所使用的调试接口的接口格式;
通过所述调试接口将所述调试指令发送至所述第二组件。
上述方法,优选的,还包括:
获得所述第二组件中所述第一数据的调试结果信息,并基于所述网络传输协议将所述调试结果信息反馈至所述第二设备。
上述方法,优选的,还包括:
在所述第一数据调试成功,所述第一设备运行所述第一数据的情况下,判断是否符合预定条件,得到一判断结果;
若所述判断结果表示符合,则通过一预定的基于高速串行计算机扩展总线标准的传输协议获取所述第二组件的寄存器中的第二数据;所述第二数据能用于反映所述第一设备的第三组件和/或第二组件在运行中的错误信息;
基于所述网络传输协议将所述第二数据反馈至所述第二设备。
一种处理方法,应用于第二设备,该方法包括:
基于预定的网络传输协议向第一设备的第一组件发送第一数据,以使得由所述第一组件将所述第一数据写入所述第一设备的第二组件中;
基于所述网络传输协议向所述第一组件发送调试信号,以使得由所述第一组件向所述第二组件发送调试指令进而使得对所述第二组件中的所述第一数据进行调试;所述调试指令基于所述调试信号生成。
上述方法,优选的,还包括:
基于所述网络传输协议接收所述第一设备的所述第一组件发送的调试结果信息;所述调试结果信息为对所述第二组件中的所述第一数据进行调试所产生的信息。
上述方法,优选的,还包括:
基于所述网络传输协议接收所述第一设备的所述第一组件发送的第二数据;
基于所述第二数据,确定所述第一设备的第三组件和/或第二组件的运行错误信息。
一种第一设备,包括:第一组件及第二组件;
所述第一组件包括:
第一存储器,用于至少存储一组指令集;
第一处理器,用于调用并执行所述存储器中的所述指令集,通过执行所述指令集进行以下操作:
基于预定的网络传输协议接收第二设备发送的第一数据;
将所述第一数据写入所述第一设备的第二组件中;
基于所述网络传输协议接收第二设备发送的调试信号;
向所述第二组件发送调试指令,以对所述第二组件中的所述第一数据进行调试;所述调试指令基于所述调试信号生成。
一种第二设备,包括:
第二存储器,用于至少存储一组指令集;
第二处理器,用于调用并执行所述存储器中的所述指令集,通过执行所述指令集进行以下操作:
基于预定的网络传输协议向第一设备的第一组件发送第一数据,以使得由所述第一组件将所述第一数据写入所述第一设备的第二组件中;
基于所述网络传输协议向所述第一组件发送调试信号,以使得由所述第一组件向所述第二组件发送调试指令进而使得对所述第二组件中的所述第一数据进行调试;所述调试指令基于所述调试信号生成。
由以上方案可知,本申请公开了一种处理方法及第一设备、第二设备,所述方法包括:由第一设备的第一组件基于预定的网络传输协议接收第二设备发送的第一数据,并将所接收的第一数据写入第一设备的第二组件中;在此基础上,由第一设备的所述第一组件基于所述网络传输协议接收所述第二设备发送的调试信号,并响应于该信号向所述第二组件发送调试指令,以实现对所述第一设备的第二组件中的所述第一数据进行调试。由此可见,本申请实现了基于网络传输协议、借助第一电子设备中的第一组件远程向第一设备的第二组件进行数据写入及调试,从而,应用本申请方案,可实现设备组件代码的远程烧录及调试,为设备组件的代码烧录及调试提供了方便。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本申请提供的一种处理方法实施例一的流程图;
图2是本申请实施例二提供的利用调试主机远程对服务器设备的FPGA进行代码烧录及调试时各设备间的连接结构示意图;
图3是本申请提供的一种处理方法实施例二的流程图;
图4是本申请提供的一种处理方法实施例三的流程图;
图5是现有技术中读取FPGA寄存器数据的原理示意图;
图6是本申请实施例三提供的读取FPGA寄存器数据的原理示意图;
图7是本申请提供的一种处理方法实施例四的流程图;
图8是本申请提供的一种处理方法实施例五的流程图;
图9是本申请提供的一种处理方法实施例六的流程图;
图10是本申请提供的一种第一设备实施例七的结构示意;
图11是本申请提供的一种第一设备实施例十的结构示意。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了实现设备组件如FPGA等的远程代码烧录及调试,为设备组件的代码烧录及调试提供方便,本申请提供了一种处理方法、第一设备及第二设备,以下将通过多个实施例对本申请的处理方法、第一设备及第二设备进行说明。
实施例一
参考图1,是本申请提供的一种处理方法实施例一的流程图,该处理方法应用于第一设备中的第一组件,所述第一设备可以是计算机(如台式机、一体机、笔记本等)等终端设备,或者还可以是服务器设备,所述第一组件可以是所述终端设备或服务器设备中的能用于执行伺服器远端管理功能的组件,如BMC(Baseboard Management Controller,基板管理控制器)等。
如图1所示,本实施例中,所述处理方法可以包括以下步骤:
步骤101、基于预定的网络传输协议接收第二设备发送的第一数据。
在实际应用中,服务器等设备的CPU中可能会集成有FPGA,比如Intel CPU的内部即包括有预先集成的FPGA等,在开发CPU的FPGA处理逻辑时,需要把开发的逻辑代码烧录到CPU的FPGA中进行调试,以验证其是否符合预期。
针对该应用场景,本申请旨在实现能够在第二设备远程地向第一设备中的第二组件进行代码烧录及调试,比如在调试主机远程地向计算机或服务器等设备中的FPGA进行代码烧录及调试等。
鉴于此,所述第二设备可以是能用于提供代码烧录及调试功能的设备,如可以是调试主机等。所述第一设备的第二组件可以是所述第一设备中的能用于加载并运行代码的组件,比如,可以是但不限于第一设备的FPGA。
所述网络传输协议可以是但不限于TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/因特网互联协议)等能用于远程进行数据传输的协议。所述第一数据可以是待烧录至第一设备的第二组件并在该第二组件中进行运行调试的待测代码,例如FPGA代码等,该代码通常为FPGA等组件在开发过程中所产生的最终文件,一般为Bitsteam(二进制流)文件形式。
接下来,本申请将主要以所述第二设备为调试主机、所述第一设备为计算机或服务器等设备、所述第一组件及第二组件分别为第一设备的BMC及FPGA为例对本申请的方案进行详述。
其中,参考图2示出的远程烧录及调试代码时的设备交互示意图,当需要在第二设备向第一设备中的第二组件进行第一数据的烧录及调试时,可预先在第二设备与第一设备间建立基于TCP/IP等网络传输协议的通信连接,进而可由第二设备将需要进行调试的第一数据,基于所述通信连接远程传输至所述第一设备的第一组件中,相对应地,对于所述第一设备来说,可以在其第一组件基于所述通信连接接收到来自所述第二设备的第一数据。
具体地,例如,当需利用调试主机向计算机或服务器等设备中的FPGA烧录代码并进而对烧录的代码进行调试时,可基于TCP/IP等网络传输协议将需要调试的FPGA代码发送至计算机或服务器等设备中的BMC,相对应地,所述计算机或服务器等设备中的BMC则可以基于所述TCP/IP等网络传输协议接收到调试主机远程传输过来的FPGA代码。
步骤102、将所述第一数据写入所述第一设备的第二组件中。
在第一设备的第一组件接收到来自第二设备远程传输的所述第一数据后,可由所述第一组件在所述第二设备的控制下将所接收的第一数据写入所述第二组件,具体地,例如,计算机或服务器等第一设备的BMC在调试主机的控制下将从调试主机远程接收的FPGA代码(一般为Bitsteam文件形式)写入该第一设备的FPGA中等,从而,完成了调试主机等第二设备向计算机或服务器等第一设备的FPGA代码远程烧录。
步骤103、基于所述网络传输协议接收第二设备发送的调试信号。
在将待测的第一数据写入第一设备的第二组件之后,可继续展开对所述第二组件中的第一数据的运行调试。
具体地,仍以图2为例,可由计算机或服务器等第一设备的BMC基于所建立的网络通信连接远程接收调试主机的调试信号,示例性地而非限定性地,比如可以远程接收调试主机的携带有相应传入参数取值的调试信号,以触发对该第一设备内的所述第二组件中所述第一数据的调试,如触发对计算机或服务器等设备中FPGA的代码的调试等。
步骤104、向所述第二组件发送调试指令,以对所述第二组件中的所述第一数据进行调试;所述调试指令基于所述调试信号生成。
第一设备的第一组件在获得第二设备远程传输的用于对第二组件中的第一数据进行调试的调试信号后,可基于所接收的调试信号生成调试指令,如生成包括有相应传入参数取值的调试指令等,并进一步可将所生成的调试指令在第一设备内部传递至所述第二组件,以此触发对第二组件中的所述第一数据的调试。第二组件在接收到该调试指令后,可基于调试指令执行相对应的运行该第一数据的过程,以使得能够通过运行第一数据实现对其进行调试。
以第二组件为FPGA为例,则具体可触发对第一设备的FPGA中FPGA代码的调试,FPGA在接收到BMC的调试指令后,如接收到BMC的包括相应传入参数取值的调试指令后,可基于该指令中的传入参数取值运行其中所烧录的FPGA代码,以使得通过运行FPGA代码实现对其进行调试。
由以上方案可知,本实施例公开的处理方法包括:由第一设备的第一组件基于预定的网络传输协议接收第二设备发送的第一数据,并将所接收的第一数据写入第一设备的第二组件中;在此基础上,由第一设备的所述第一组件基于所述网络传输协议接收所述第二设备发送的调试信号,并响应于该信号向所述第二组件发送调试指令,以实现对所述第一设备的第二组件中的所述第一数据进行调试。由此可见,本实施例实现了基于网络传输协议、借助第一电子设备中的第一组件远程向第一设备的第二组件进行数据写入及调试,从而,应用本实施例方案,可实现设备组件代码的远程烧录及调试,为设备组件的代码烧录及调试提供了方便。
实施例二
本实施例将继续对上述的应用于第一设备的第一组件的处理方法进行进一步详述,参考图3,为本申请提供的一种处理方法实施例二的流程图,本实施例中,所述处理方法具体可以通过以下的处理过程实现:
步骤301、基于预定的网络传输协议接收第二设备发送的第一数据。
如上文所述,所述网络传输协议可以是但不限于TCP/IP等能用于远程进行数据传输的协议。
当需要在第二设备向第一设备中的第二组件进行第一数据的烧录及调试时,可预先在第二设备与第一设备间建立基于TCP/IP等网络传输协议的通信连接,进而可由第二设备将需要进行调试的第一数据,基于所述通信连接远程传输至所述第一设备的第一组件中,相对应地,对于所述第一设备来说,可以在其第一组件基于所述通信连接接收到来自所述第二设备的第一数据。
以利用调试主机远程向计算机或服务器等设备的FPGA烧录并调试FPGA代码为例,实际实施本申请时,为了能够提供远程烧录及调试FPGA代码的功能,可预先在调试主机中运行一相应的片上可编程系统(SOPC,system-on-a-programmable-chip)的设计环境软件,示例性地,如具体可在调试主机中运行一Quartus软件,其中,该设计环境软件可支持基于TCP/IP的远程代码调试功能,同时需在BMC中提供一远程调试服务(Remote Debug Server)以及一调试接口控制器,以FPGA所采用的调试接口为JTAG为例,BMC所提供的该调试接口控制器具体地则可以是JTAG控制器(可基于JTAG控制器驱动实现运行),其中,BMC中提供的所述远程调试服务与所述调试主机中的所述设计环境软件基于TCP/IP等网络传输协议建立连接,在计算机或服务器等设备的内部,所述BMC中的远程调试服务与所述调试接口控制器相连接,所述调试接口控制器与FPGA的调试接口如JTAG等相连接,从而形成了一从调试主机的所述设计环境软件至计算机或服务器等设备的FPGA的通信链路,后续可基于该通信链路利用调试主机对计算机或服务器等设备的FPGA进行FPGA代码的远程烧录及调试。
具体地,当需利用调试主机向计算机或服务器等设备中的FPGA烧录代码并进而对烧录的代码进行调试时,在调试主机端,可基于调试主机中所集成的所述设计环境软件触发对待测的FPGA代码的传输,并具体基于所建立的TCP/IP连接将所述FPGA代码远程传输至计算机或服务器等设备中BMC的远程调试服务中,从而对于BMC来说,其可以利用所集成的所述远程调试服务接收调试主机远程传输的FPGA代码。
步骤302、将所述第一数据写入所述第一设备的第二组件中。
在第一设备的第一组件接收到来自第二设备远程传输的第一数据后,可由所述第一组件在所述第二设备的控制下将所接收的第一数据写入所述第二组件。
具体地,仍以上述利用调试主机远程向计算机或服务器等设备的FPGA烧录并调试FPGA代码为例,BMC的远程调试服务在接收到调试主机的FPGA代码后,可进一步在调试主机的控制下,通过调用所述调试接口控制器(如JTAG控制器)将FPGA代码写入FPGA中,以此实现了调试主机向FPGA的远程代码烧录。
步骤303、基于所述网络传输协议接收第二设备发送的调试信号。
在将待测的第一数据写入第一设备的第二组件之后,可继续展开对所述第二组件中的第一数据的运行调试。
针对上述示例,则具体地,可通过在调试主机的设计环境软件如Quartus软件中进行操作,来实现向所述计算机或服务器等设备的BMC中的远程调试服务传输调试信号,从而,计算机或服务器等设备的BMC中的远程调试服务可接收到调试主机的所述调试信号。
步骤304、基于所述调试信号生成一调试指令,所述调试指令符合所述第二组件所使用的调试接口的接口格式。
第一设备的第一组件在获得第二设备远程传输的用于对第二组件中的第一数据进行调试的调试信号后,可基于所接收的调试信号生成调试指令,具体地,BMC中的远程调试服务可通过调用所述调试接口控制器(如JTAG控制器等),来生成对应于所述调试信号且符合FPGA调试接口格式的调试指令,例如,具体生成携带有相应传入参数取值且符合JTAG接口格式的调试指令等。
步骤305、通过所述调试接口将所述调试指令发送至所述第二组件。
在生成符合第二组件的调试接口格式的所述调试指令后,可将该调试指令通过所述调试接口发送至第二组件,以触发对第二组件中第一数据的运行调试。
具体地,如可由BMC的远程调试服务在调用JTAG控制器生成符合JTAG接口格式的调试指令后,继续将该指令传输至FGPA的JTAG接口,并最终由JTAG接口将该调试指令递交至FPGA。FPGA在获得该调试指令后,会响应该指令对其内部烧录的FPGA代码进行运行,以使得通过运行FPGA代码实现对其进行调试。
步骤306、获得所述第二组件中所述第一数据的调试结果信息,并基于所述网络传输协议将所述调试结果信息反馈至所述第二设备。
所述调试结果信息,示例性地,比如可以包括FPGA的各寄存器中的数据结果等,其中,FPGA的各寄存器中的数据结果往往能够反映FPGA代码的运行状况信息,从而可将FPGA的各寄存器中的数据结果作为调试结果信息。。
在通过运行FPGA代码使得在FPGA的寄存器产生相应数据结果的基础上,可继续基于在调试主机与FPGA间建立的通信路径将所产生的数据结果返回至调试主机中。具体地,可由所述第一设备的BMC等第一组件获得该调试结果数据进而基于所建立的通信连接将调试结果数据反馈至调试主机。
后续,可通过对调试主机端获得的调试结果数据进行分析,比如确定调试结果数据是否达到预期等,来最终得到所述第一数据如FPGA代码的调试验证结果(如验证所开发的FPGA代码的优劣,是否存在缺陷等)。
本实施例实现了基于网络传输协议、借助第一电子设备中的第一组件远程向在第一设备的第二组件进行数据写入及调试,从而,应用本实施例方案,可实现设备组件的远程代码烧录及调试,为设备组件的代码烧录及调试提供了方便。
实施例三
参考图4,是本申请提供的一种处理方法实施例三的流程图,该方法同样应用于第一设备的第一组件中,本实施例中,所述处理方法还可以包括以下步骤:
步骤105、在所述第一数据调试成功,所述第一设备运行所述第一数据的情况下,判断是否符合预定条件,得到一判断结果。
集成有FPGA的CPU在运行过程中,当其微处理器架构或CPU中处理器的互联设备出现运行错误时,可由FPGA捕获相应错误信息,并存储在FPGA的寄存器中,除此之外,FPGA在运行过程中当自身运行出现问题时,也会将相应的运行错误信息存储在其寄存器中。后续可基于FPGA寄存器中的数据来确定CPU或FPGA的故障。
现有技术中,服务器的CPU如Intel CPU等提供了访问FPGA寄存器的接口PECI(是Platform Environment Control Interface,平台环境式控制接口),当CPU出现问题时,如图5所示,BMC可以通过PCH来访问该PECI接口进而读取相应寄存器的存储数据,以使得后续可基于所读取的寄存器数据来进行故障的确定。然而,PECI是一个低速接口,在读取寄存器数据尤其是在读取众多寄存器的数据时,会耗费大量的时间,而且当PCH中运行的软件出现问题时也会导致无法读取寄存器数据。
针对该情形,参考图6,本申请提供了一种基于高速串行计算机扩展总线标准(PCIe,Peripheral Component Interconnect express)的寄存器数据传输/读取方式。且本申请具体在FPGA中集成了一基于PCIe的MCTP(Management Component TransportProtocol,管理组件传输协议)模块,以使得可利用该基于PCIe的MCTP模块实现基于PCIe在BMC与FPGA间进行数据传输。
具体地,在本申请提供的基于PCIe读取寄存器数据的实现方式中,在所述第一数据调试成功,所述第一设备运行所述第一数据的情况下,可首先判断是否符合预定条件。
其中,所述预定条件可以包括但不限于:第一设备的第一组件接收到表示第一设备中相应组件的运行出现错误的错误信号。该错误信号具体可以包括:第二组件在运行过程中因捕获了第一设备中第三组件的运行错误数据而触发的第一错误信号,和/或第二组件自身在运行过程中出现了错误而触发的第二错误信号。
参考以下的表1,该表1示例性提供了FPGA的自身错误所对应的各个错误类型:
表1
所述第三组件可以包括但不限于CPU的微处理器架构、CPU的各处理器的互联设备中的任意一种或多种;CPU的微处理器架构,示例性地比如可以是英特尔第六代微处理器架构Skylake,CPU的各处理器的互联设备,比如可以是UPI(Ultra Path Interconnect,超路径互连)设备。
其中,若符合所述预定条件,则表示第一设备的第三组件和/或第二组件(如CPU的微处理器架构和/或FPGA)运行中出现了问题。
步骤106、若所述判断结果表示符合,则通过一预定的基于高速串行计算机扩展总线标准的传输协议获取所述第二组件的寄存器中的第二数据;所述第二数据能用于反映所述第一设备的第三组件在运行中的错误信息。
在所述判断结果表示符合的情况下,第一设备的第一组件可以获知第一设备的第三组件和/或第二组件存在运行错误,为了便于确定运行中所存在的具体问题,需要读取所述第二组件寄存器中的第二数据。
具体地,比如,当服务器的BMC接收到上述的第一错误信号(如图5中的501对应的信号)时,可以获知其CPU的微内核架构或CPU的各处理器的互联设备等在运行中出现了错误,而当服务器的BMC接收到上述的第二错误信号(如图5中的502对应的信号)时,则可以获知其FPGA的运行出现了错误。
此种情形下,BMC可基于PCIe并通过FPGA中集成的所述基于PCIe的MCTP模块来获取FPGA寄存器中的第二数据,例如获取FPGA寄存器中的微内核框架错误信息和/或FPGA运行错误信息等等。
在BMC获得FPGA寄存器中的诸如微内核框架错误信息和/或FPGA运行错误信息等的第二数据后,可基于如上述的实施例一、实施例二中所述的与远程主机间的连接方式,将所获得的寄存器数据反馈及远程的主机中。后续,该远程的主机端可基于所获得的所述第二数据,来分析服务器等设备的运行故障,以使得为相应故障策略的制定提供数据基础。
由于PCIe为高速总线标准,从而本实施提供的基于PCIe的寄存器数据传输/读取方式,克服了现有技术中读取CPU的FPGA寄存器数据时耗时较大的缺陷,提升了寄存器数据的读取效率,且本实施例方案还可通过将BMC获取的寄存器数据传输至远程主机,实现对服务器等设备的CPU故障进行远程信息获取及故障分析。
实施例四
参考图7,是本申请提供的一种处理方法实施例四的流程图,该处理方法应用于第二设备中,所述第二设备示例性地可以是调试主机,本实施例的应用于第二设备的处理方法可通过与上述实施例中的应用于第一设备的第一组件的处理方法搭配使用,来实现在第二设备向第一设备的第二组件进行远程数据写入及调试。
如图7所示,本实施例中,所述处理方法可以包括:
步骤701、基于预定的网络传输协议向第一设备的第一组件发送第一数据,以使得由所述第一组件将所述第一数据写入所述第一设备的第二组件中。
具体地,如上文所述,所述网络传输协议可以是但不限于TCP/IP等能用于远程进行数据传输的协议。所述第一数据可以是待烧录至第一设备的第二组件并在该第二组件中进行运行调试的待测代码,例如FPGA代码中,该代码通常为FPGA等组件在开发过程中产生的最终文件,一般为Bitsteam(二进制流)文件形式。
在第二设备需向第一设备中的第二组件进行第一数据的烧录及调试时,可预先基于在该两个设备之间建立基于TCP/IP等网络传输协议的通信连接,进而可由第二设备将需要进行调试的第一数据,基于所述通信连接远程传输至所述第一设备的第一组件中,以使得控制所述第一组件将所述第一数据烧录至第一设备的第二组件中。
具体地,例如,当调试主机需向计算机或服务器等设备中的FPGA烧录代码并进而对烧录的代码进行调试时,调试主机可基于TCP/IP连接将需要调试的FPGA代码发送至计算机或服务器等设备中的BMC,以使得控制所述BMC将所述FPGA代码烧录至计算机或服务器等设备的FPGA中。
步骤702、基于所述网络传输协议向所述第一组件发送调试信号,以使得由所述第一组件向所述第二组件发送调试指令进而使得对所述第二组件中的所述第一数据进行调试;所述调试指令基于所述调试信号生成。
在将待测的第一数据写入第一设备的第二组件后,可继续展开对所述第二组件中的第一数据的运行调试。
具体地,可通过在第一设备端执行相应操作,来触发对远端的第二设备第二组件中的第一数据进行调试的调试信号,并可基于所述通信连接将该调试信号发送至第一设备的第一组件中,以使得通过第一设备的第一组件向所述第二组件发送调试指令进而实现对第二组件中第一数据的远程调试。
本实施例实现了基于网络传输协议、借助第一电子设备中的第一组件远程向第一设备的第二组件进行数据写入及调试,从而,应用本实施例方案,可实现设备组件的远程代码烧录及调试,为设备组件的代码烧录及调试提供了方便。
实施例五
参考图8,是本申请提供的一种处理方法实施例五的流程图,本实施例中,所述应用于第二设备的处理方法还可以包括以下步骤:
步骤703、基于所述网络传输协议接收所述第一设备的所述第一组件发送的调试结果信息;所述调试结果信息为对所述第二组件中的所述第一数据进行调试所产生的信息。
所述调试结果信息,示例性地,比如可以包括FPGA的各寄存器中的数据结果,其中,FPGA的各寄存器中的数据结果往往能够反映FPGA代码的运行状况信息,从而可将FPGA的各寄存器中的数据结果作为调试结果信息。
仍以所述第一设备为计算机或服务器等设备、所述第二设备为调试主机,第一设备的第一组件及第二组件分别为BMC及FPGA为例,在通过运行FPGA代码使得在FPGA的寄存器产生相应数据结果的基础上,调试主机可基于与计算机或服务器等设备间的TCP/IP连接,通过该设备的BMC获取设备内FPGA的运行调试所产生的调试结果数据,例如获得FPGA的寄存器数据等。
后续,可通过对调试主机端获得的调试结果数据进行分析,比如确定调试结果数据是否达到预期等,来最终得到所述第一数据如FPGA代码的调试验证结果(如验证所开发的FPGA代码的优劣,是否存在缺陷等)。
本实施例实现了基于网络传输协议、借助第一电子设备中的第一组件远程获得第一设备的第二组件的调试结果数据,为所述待测第一数据的最终调试验证结果的确定提供了数据依据。
实施例六
参考图9,是本申请提供的一种处理方法实施例六的流程图,本实施例中,所述应用于第二设备的处理方法还可以包括以下步骤:
步骤704、基于所述网络传输协议接收所述第一设备的所述第一组件发送的第二数据。
本实施例与实施例三的应用于第一设备的处理方法相对应。
所述第二数据可以包括但不限于FPGA寄存器中的微内核框架错误信息、CPU各处理器的互联设备运行错误信息和/或FPGA运行错误信息。
在第一设备的第三组件和第二组件出现错误的情况下,如计算机或服务器等设备的CPU微内核框架出现错误或者FPGA的运行出现错误的情况下,作为第二设备的调试主机(此时调试主机同时提供了远端管理主机的功能),可基于与第一设备间建立的TCP/IP等通信连接远程获得第一设备的第一组件所传输的所述第二数据,如获得计算机或服务器等设备的BMC所传输的FPGA寄存器数据等。
步骤705、基于所述第二数据,确定所述第一设备的第三组件的运行错误信息。
在获得所述第二数据后,可进一步对所述第二数据进行分析,以确定出第一设备的第三组件和/或第一组件的运行错误信息。
具体地,比如,可基于所接收的FPGA寄存器中的错误信息数据,来分析服务器或计算机等设备的CPU微内核框架和/或FPGA的故障类型等。
本实施例通过在第二设备基于TCP/IP等通信连接远程获取第一设备的第一组件发送的所述第二数据,可实现远程对计算机或服务器等设备进行运行检测及故障分析,为技术人员检测计算机或服务器等设备的运行情况并进行故障分析提供了方便。
实施例七
对应于上述的应用于第一设备的第一组件的处理方法,本申请还公开一种第一设备,该第一设备可以是计算机(如台式机、一体机、笔记本等)等终端设备,或者还可以是服务器设备,所述第一组件可以是所述终端设备或服务器设备中的能用于执行伺服器远端管理功能的组件,如BMC等。
参考图10,是本申请提供的一种第一设备实施例七的结构示意图,该第一设备可以包括:第一组件101及第二组件102;
所述第一组件101包括:
第一存储器1011,用于至少存储一组指令集;
第一处理器1012,用于调用并执行所述存储器中的所述指令集,通过执行所述指令集进行以下操作:
基于预定的网络传输协议接收第二设备发送的第一数据;
将所述第一数据写入所述第一设备的第二组件中;
基于所述网络传输协议接收第二设备发送的调试信号;
向所述第二组件发送调试指令,以对所述第二组件中的所述第一数据进行调试;所述调试指令基于所述调试信号生成。
在实际应用中,服务器等设备的CPU中可能会集成有FPGA,比如Intel CPU的内部即包括有预先集成的FPGA等,在开发CPU的FPGA处理逻辑时,需要把开发的逻辑代码烧录到CPU的FPGA中进行调试,以验证其是否符合预期。
针对该应用场景,本申请旨在实现能够在第二设备远程地向第一设备中的第二组件进行代码烧录及调试,比如在调试主机远程地向计算机或服务器等设备中的FPGA进行代码烧录及调试等。
鉴于此,所述第二设备可以是能用于提供代码烧录及调试功能的设备,如可以是调试主机等。所述第一设备的第二组件可以是所述第一设备中的能用于加载并运行代码的组件,比如,可以是但不限于第一设备的FPGA。
所述网络传输协议可以是但不限于TCP/IP等能用于远程进行数据传输的协议。所述第一数据可以是待烧录至第一设备的第二组件并在该第二组件中进行运行调试的待测代码,例如FPGA代码等,该代码通常为FPGA等组件在开发过程中所产生的最终文件,一般为Bitsteam(二进制流)文件形式。
接下来,本申请将主要以所述第二设备为调试主机、所述第一设备为计算机或服务器等设备、所述第一组件及第二组件分别为第一设备的BMC及FPGA为例对本申请的方案进行详述。
其中,参考图2示出的远程烧录及调试代码时的设备交互示意图,当需要在第二设备向第一设备中的第二组件进行第一数据的烧录及调试时,可预先在第二设备与第一设备间建立基于TCP/IP等网络传输协议的通信连接,进而可由第二设备将需要进行调试的第一数据,基于所述通信连接远程传输至所述第一设备的第一组件中,相对应地,对于所述第一设备来说,可以在其第一组件基于所述通信连接接收到来自所述第二设备的第一数据。
具体地,例如,当需利用调试主机向计算机或服务器等设备中的FPGA烧录代码并进而对烧录的代码进行调试时,可基于TCP/IP等网络传输协议将需要调试的FPGA代码发送至计算机或服务器等设备中的BMC,相对应地,所述计算机或服务器等设备中的BMC则可以基于所述TCP/IP等网络传输协议接收到调试主机远程传输过来的FPGA代码。
在第一设备的第一组件接收到来自第二设备远程传输的所述第一数据后,可由所述第一组件在所述第二设备的控制下将所接收的第一数据写入所述第二组件,具体地,例如,计算机或服务器等第一设备的BMC在调试主机的控制下将从调试主机远程接收的FPGA代码(一般为Bitsteam文件形式)写入该第一设备的FPGA中等,从而,完成了调试主机等第二设备向计算机或服务器等第一设备的FPGA代码远程烧录。
在将待测的第一数据写入第一设备的第二组件之后,可继续展开对所述第二组件中的第一数据的运行调试。
具体地,仍以图2为例,可由计算机或服务器等第一设备的BMC基于所建立的网络通信连接远程接收调试主机的调试信号,示例性地而非限定性地,比如可以远程接收调试主机的携带有相应传入参数取值的调试信号,以触发对该第一设备内的所述第二组件中所述第一数据的调试,如触发对计算机或服务器等设备中FPGA的代码的调试等。
第一设备的第一组件在获得第二设备远程传输的用于对第二组件中的第一数据进行调试的调试信号后,可基于所接收的调试信号生成调试指令,如生成包括有相应传入参数取值的调试指令等,并进一步可将所生成的调试指令在第一设备内部传递至所述第二组件,以此触发对第二组件中的所述第一数据的调试。第二组件在接收到该调试指令后,可基于调试指令执行相对应的运行该第一数据的过程,以使得能够通过运行第一数据实现对其进行调试。
以第二组件为FPGA为例,则具体可触发对第一设备的FPGA中FPGA代码的调试,FPGA在接收到BMC的调试指令后,如接收到BMC的包括相应传入参数取值的调试指令后,可基于该指令中的传入参数取值运行其中所烧录的FPGA代码,以使得通过运行FPGA代码实现对其进行调试。
由以上方案可知,本实施例公开的处理方法包括:由第一设备的第一组件基于预定的网络传输协议接收第二设备发送的第一数据,并将所接收的第一数据写入第一设备的第二组件中;在此基础上,由第一设备的所述第一组件基于所述网络传输协议接收所述第二设备发送的调试信号,并响应于该信号向所述第二组件发送调试指令,以实现对所述第一设备的第二组件中的所述第一数据进行调试。由此可见,本实施例实现了基于网络传输协议、借助第一电子设备中的第一组件远程向第一设备的第二组件进行数据写入及调试,从而,应用本实施例方案,可实现设备组件代码的远程烧录及调试,为设备组件的代码烧录及调试提供了方便。
实施例八
本实施例继续对上述的第一设备进行进一步详述,本实施例中,所述第一设备中的第一处理器1012可以通过以下处理过程实现其功能:
基于预定的网络传输协议接收第二设备发送的第一数据;
将所述第一数据写入所述第一设备的第二组件中;
基于所述网络传输协议接收第二设备发送的调试信号;
基于所述调试信号生成一调试指令,所述调试指令符合所述第二组件所使用的调试接口的接口格式;
通过所述调试接口将所述调试指令发送至所述第二组件;
获得所述第二组件中所述第一数据的调试结果信息,并基于所述网络传输协议将所述调试结果信息反馈至所述第二设备。
如上文所述,所述网络传输协议可以是但不限于TCP/IP等能用于远程进行数据传输的协议。
当需要在第二设备向第一设备中的第二组件进行第一数据的烧录及调试时,可预先在第二设备与第一设备间建立基于TCP/IP等网络传输协议的通信连接,进而可由第二设备将需要进行调试的第一数据,基于所述通信连接远程传输至所述第一设备的第一组件中,相对应地,对于所述第一设备来说,可以在其第一组件基于所述通信连接接收到来自所述第二设备的第一数据。
以利用调试主机远程向计算机或服务器等设备的FPGA烧录并调试FPGA代码为例,实际实施本申请时,为了能够提供远程烧录及调试FPGA代码的功能,可预先在调试主机中运行一相应的片上可编程系统(SOPC,system-on-a-programmable-chip)的设计环境软件,示例性地,如具体可在调试主机中运行一Quartus软件,其中,该设计环境软件可支持基于TCP/IP的远程代码调试功能,同时需在BMC中提供一远程调试服务(Remote Debug Server)以及一调试接口控制器,以FPGA所采用的调试接口为JTAG为例,BMC所提供的该调试接口控制器具体地则可以是JTAG控制器(可基于JTAG控制器驱动实现运行),其中,BMC中提供的所述远程调试服务与所述调试主机中的所述设计环境软件基于TCP/IP等网络传输协议建立连接,在计算机或服务器等设备的内部,所述BMC中的远程调试服务与所述调试接口控制器相连接,所述调试接口控制器与FPGA的调试接口如JTAG等相连接,从而形成了一从调试主机的所述设计环境软件至计算机或服务器等设备的FPGA的通信链路,后续可基于该通信链路利用调试主机对计算机或服务器等设备的FPGA进行FPGA代码的远程烧录及调试。
具体地,当需利用调试主机向计算机或服务器等设备中的FPGA烧录代码并进而对烧录的代码进行调试时,在调试主机端,可基于调试主机中所集成的所述设计环境软件触发对待测的FPGA代码的传输,并具体基于所建立的TCP/IP连接将所述FPGA代码远程传输至计算机或服务器等设备中BMC的远程调试服务中,从而对于BMC来说,其可以利用所集成的所述远程调试服务接收调试主机远程传输的FPGA代码。
在第一设备的第一组件接收到来自第二设备远程传输的第一数据后,可由所述第一组件在所述第二设备的控制下将所接收的第一数据写入所述第二组件。
具体地,仍以上述利用调试主机远程向计算机或服务器等设备的FPGA烧录并调试FPGA代码为例,BMC的远程调试服务在接收到调试主机的FPGA代码后,可进一步在调试主机的控制下,通过调用所述调试接口控制器(如JTAG控制器)将FPGA代码写入FPGA中,以此实现了调试主机向FPGA的远程代码烧录。
在将待测的第一数据写入第一设备的第二组件之后,可继续展开对所述第二组件中的第一数据的运行调试。
针对上述示例,则具体地,可通过在调试主机的设计环境软件如Quartus软件中进行操作,来实现向所述计算机或服务器等设备的BMC中的远程调试服务传输调试信号,从而,计算机或服务器等设备的BMC中的远程调试服务可接收到调试主机的所述调试信号。
第一设备的第一组件在获得第二设备远程传输的用于对第二组件中的第一数据进行调试的调试信号后,可基于所接收的调试信号生成调试指令,具体地,BMC中的远程调试服务可通过调用所述调试接口控制器(如JTAG控制器等),来生成对应于所述调试信号且符合FPGA调试接口格式的调试指令,例如,具体生成携带有相应传入参数取值且符合JTAG接口格式的调试指令等。
在生成符合第二组件的调试接口格式的所述调试指令后,可将该调试指令通过所述调试接口发送至第二组件,以触发对第二组件中第一数据的运行调试。
具体地,如可由BMC的远程调试服务在调用JTAG控制器生成符合JTAG接口格式的调试指令后,继续将该指令传输至FGPA的JTAG接口,并最终由JTAG接口将该调试指令递交至FPGA。FPGA在获得该调试指令后,会响应该指令对其内部烧录的FPGA代码进行运行,以使得通过运行FPGA代码实现对其进行调试。
所述调试结果信息,示例性地,比如可以包括FPGA的各寄存器中的数据结果等,其中,FPGA的各寄存器中的数据结果往往能够反映FPGA代码的运行状况信息,从而可将FPGA的各寄存器中的数据结果作为调试结果信息。。
在通过运行FPGA代码使得在FPGA的寄存器产生相应数据结果的基础上,可继续基于在调试主机与FPGA间建立的通信路径将所产生的数据结果返回至调试主机中。具体地,可由所述第一设备的BMC等第一组件获得该调试结果数据进而基于所建立的通信连接将调试结果数据反馈至调试主机。
后续,可通过对调试主机端获得的调试结果数据进行分析,比如确定调试结果数据是否达到预期等,来最终得到所述第一数据如FPGA代码的调试验证结果(如验证所开发的FPGA代码的优劣,是否存在缺陷等)。
本实施例实现了基于网络传输协议、借助第一电子设备中的第一组件远程向在第一设备的第二组件进行数据写入及调试,从而,应用本实施例方案,可实现设备组件的远程代码烧录及调试,为设备组件的代码烧录及调试提供了方便。
实施例九
本实施例中,所述第一设备的第一处理器1012还可以执行以下处理:
在所述第一数据调试成功,所述第一设备运行所述第一数据的情况下,判断是否符合预定条件,得到一判断结果。
若所述判断结果表示符合,则通过一预定的基于高速串行计算机扩展总线标准的传输协议获取所述第二组件的寄存器中的第二数据;所述第二数据能用于反映所述第一设备的第三组件在运行中的错误信息。
集成有FPGA的CPU在运行过程中,当其微处理器架构或CPU中处理器的互联设备出现运行错误时,可由FPGA捕获相应错误信息,并存储在FPGA的寄存器中,除此之外,FPGA在运行过程中当自身运行出现问题时,也会将相应的运行错误信息存储在其寄存器中。后续可基于FPGA寄存器中的数据来确定CPU或FPGA的故障。
现有技术中,服务器的CPU如Intel CPU等提供了访问FPGA寄存器的接口PECI(是Platform Environment Control Interface,平台环境式控制接口),当CPU出现问题时,如图5所示,BMC可以通过PCH来访问该PECI接口进而读取相应寄存器的存储数据,以使得后续可基于所读取的寄存器数据来进行故障的确定。然而,PECI是一个低速接口,在读取寄存器数据尤其是在读取众多寄存器的数据时,会耗费大量的时间,而且当PCH中运行的软件出现问题时也会导致无法读取寄存器数据。
针对该情形,参考图6,本申请提供了一种基于高速串行计算机扩展总线标准(PCIe,Peripheral Component Interconnect express)的寄存器数据传输/读取方式。且本申请具体在FPGA中集成了一基于PCIe的MCTP(Management Component TransportProtocol,管理组件传输协议)模块,以使得可利用该基于PCIe的MCTP模块实现基于PCIe在BMC与FPGA间进行数据传输。
具体地,在本申请提供的基于PCIe读取寄存器数据的实现方式中,在所述第一数据调试成功,所述第一设备运行所述第一数据的情况下,可首先判断是否符合预定条件。
其中,所述预定条件可以包括但不限于:第一设备的第一组件接收到表示第一设备中相应组件的运行出现错误的错误信号。该错误信号具体可以包括:第二组件在运行过程中因捕获了第一设备中第三组件的运行错误数据而触发的第一错误信号,和/或第二组件自身在运行过程中出现了错误而触发的第二错误信号。
参考以下的表1,该表1示例性提供了FPGA的自身错误所对应的各个错误类型:
表1
所述第三组件可以包括但不限于CPU的微处理器架构、CPU的各处理器的互联设备中的任意一种或多种;CPU的微处理器架构,示例性地比如可以是英特尔第六代微处理器架构Skylake,CPU的各处理器的互联设备,比如可以是UPI(Ultra Path Interconnect,超路径互连)设备。
其中,若符合所述预定条件,则表示第一设备的第三组件和/或第二组件(如CPU的微处理器架构和/或FPGA)运行中出现了问题。
在所述判断结果表示符合的情况下,第一设备的第一组件可以获知第一设备的第三组件和/或第二组件存在运行错误,为了便于确定运行中所存在的具体问题,需要读取所述第二组件寄存器中的第二数据。
具体地,比如,当服务器的BMC接收到上述的第一错误信号(如图5中的501对应的信号)时,可以获知其CPU的微内核架构或CPU的各处理器的互联设备等在运行中出现了错误,而当服务器的BMC接收到上述的第二错误信号(如图5中的502对应的信号)时,则可以获知其FPGA的运行出现了错误。
此种情形下,BMC可基于PCIe并通过FPGA中集成的所述基于PCIe的MCTP模块来获取FPGA寄存器中的第二数据,例如获取FPGA寄存器中的微内核框架错误信息和/或FPGA运行错误信息等等。
在BMC获得FPGA寄存器中的诸如微内核框架错误信息和/或FPGA运行错误信息等的第二数据后,可基于如上述的实施例一、实施例二中所述的与远程主机间的连接方式,将所获得的寄存器数据反馈及远程的主机中。后续,该远程的主机端可基于所获得的所述第二数据,来分析服务器等设备的运行故障,以使得为相应故障策略的制定提供数据基础。
由于PCIe为高速总线标准,从而本实施提供的基于PCIe的寄存器数据传输/读取方式,克服了现有技术中读取CPU的FPGA寄存器数据时耗时较大的缺陷,提升了寄存器数据的读取效率,且本实施例方案还可通过将BMC获取的寄存器数据传输至远程主机,实现对服务器等设备的CPU故障进行远程信息获取及故障分析。
实施例十
对应于上述的应用于第二设备的处理方法,本申请还提供了一种第二设备,所述第二设备示例性地可以是调试主机,参考图11,是本申请提供的一种第二设备实施例十的结构示意图,本实施例中,所述第二设备可以包括:
第二存储器111,用于至少存储一组指令集;
第二处理器112,用于调用并执行所述存储器中的所述指令集,通过执行所述指令集进行以下操作:
基于预定的网络传输协议向第一设备的第一组件发送第一数据,以使得由所述第一组件将所述第一数据写入所述第一设备的第二组件中;
基于所述网络传输协议向所述第一组件发送调试信号,以使得由所述第一组件向所述第二组件发送调试指令进而使得对所述第二组件中的所述第一数据进行调试;所述调试指令基于所述调试信号生成。
具体地,如上文所述,所述网络传输协议可以是但不限于TCP/IP等能用于远程进行数据传输的协议。所述第一数据可以是待烧录至第一设备的第二组件并在该第二组件中进行运行调试的待测代码,例如FPGA代码中,该代码通常为FPGA等组件在开发过程中产生的最终文件,一般为Bitsteam(二进制流)文件形式。
在第二设备需向第一设备中的第二组件进行第一数据的烧录及调试时,可预先基于在该两个设备之间建立基于TCP/IP等网络传输协议的通信连接,进而可由第二设备将需要进行调试的第一数据,基于所述通信连接远程传输至所述第一设备的第一组件中,以使得控制所述第一组件将所述第一数据烧录至第一设备的第二组件中。
具体地,例如,当调试主机需向计算机或服务器等设备中的FPGA烧录代码并进而对烧录的代码进行调试时,调试主机可基于TCP/IP连接将需要调试的FPGA代码发送至计算机或服务器等设备中的BMC,以使得控制所述BMC将所述FPGA代码烧录至计算机或服务器等设备的FPGA中。
在将待测的第一数据写入第一设备的第二组件后,可继续展开对所述第二组件中的第一数据的运行调试。
具体地,可通过在第一设备端执行相应操作,来触发对远端的第二设备第二组件中的第一数据进行调试的调试信号,并可基于所述通信连接将该调试信号发送至第一设备的第一组件中,以使得通过第一设备的第一组件向所述第二组件发送调试指令进而实现对第二组件中第一数据的远程调试。
本实施例实现了基于网络传输协议、借助第一电子设备中的第一组件远程向第一设备的第二组件进行数据写入及调试,从而,应用本实施例方案,可实现设备组件的远程代码烧录及调试,为设备组件的代码烧录及调试提供了方便。
实施例十一
本实施例中,所述第二设备中的第二处理器112还可以执行以下处理:
基于所述网络传输协议接收所述第一设备的所述第一组件发送的调试结果信息;所述调试结果信息为对所述第二组件中的所述第一数据进行调试所产生的信息。
所述调试结果信息,示例性地,比如可以包括FPGA的各寄存器中的数据结果,其中,FPGA的各寄存器中的数据结果往往能够反映FPGA代码的运行状况信息,从而可将FPGA的各寄存器中的数据结果作为调试结果信息。
仍以所述第一设备为计算机或服务器等设备、所述第二设备为调试主机,第一设备的第一组件及第二组件分别为BMC及FPGA为例,在通过运行FPGA代码使得在FPGA的寄存器产生相应数据结果的基础上,调试主机可基于与计算机或服务器等设备间的TCP/IP连接,通过该设备的BMC获取设备内FPGA的运行调试所产生的调试结果数据,例如获得FPGA的寄存器数据等。
后续,可通过对调试主机端获得的调试结果数据进行分析,比如确定调试结果数据是否达到预期等,来最终得到所述第一数据如FPGA代码的调试验证结果(如验证所开发的FPGA代码的优劣,是否存在缺陷等)。
本实施例实现了基于网络传输协议、借助第一电子设备中的第一组件远程获得第一设备的第二组件的调试结果数据,为所述待测第一数据的最终调试验证结果的确定提供了数据依据。
实施例十二
本实施例中,所述第二设备中的第二处理器112还可以执行以下处理:
基于所述网络传输协议接收所述第一设备的所述第一组件发送的第二数据;基于所述第二数据,确定所述第一设备的第三组件的运行错误信息。
本实施例与实施例三的应用于第一设备的处理方法相对应。
所述第二数据可以包括但不限于FPGA寄存器中的微内核框架错误信息、CPU各处理器的互联设备运行错误信息和/或FPGA运行错误信息。
在第一设备的第三组件和第二组件出现错误的情况下,如计算机或服务器等设备的CPU微内核框架出现错误或者FPGA的运行出现错误的情况下,作为第二设备的调试主机(此时调试主机同时提供了远端管理主机的功能),可基于与第一设备间建立的TCP/IP等通信连接远程获得第一设备的第一组件所传输的所述第二数据,如获得计算机或服务器等设备的BMC所传输的FPGA寄存器数据等。
在获得所述第二数据后,可进一步对所述第二数据进行分析,以确定出第一设备的第三组件和/或第一组件的运行错误信息。
具体地,比如,可基于所接收的FPGA寄存器中的错误信息数据,来分析服务器或计算机等设备的CPU微内核框架和/或FPGA的故障类型等。
本实施例通过在第二设备基于TCP/IP等通信连接远程获取第一设备的第一组件发送的所述第二数据,可实现远程对计算机或服务器等设备进行运行检测及故障分析,为技术人员检测计算机或服务器等设备的运行情况并进行故障分析提供了方便。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种处理方法,应用于第一设备的第一组件,该方法包括:
基于预定的网络传输协议接收第二设备发送的第一数据;
将所述第一数据写入所述第一设备的第二组件中;
基于所述网络传输协议接收第二设备发送的调试信号;
向所述第二组件发送调试指令,以对所述第二组件中的所述第一数据进行调试;所述调试指令基于所述调试信号生成。
2.根据权利要求1所述的方法,所述第一组件为所述第一设备的基板管理控制器,所述第二组件为所述第一设备的现场可编程门阵列。
3.根据权利要求1所述的方法,所述向所述第二组件发送调试指令,包括:
基于所述调试信号生成一调试指令,所述调试指令符合所述第二组件所使用的调试接口的接口格式;
通过所述调试接口将所述调试指令发送至所述第二组件。
4.根据权利要求1所述的方法,还包括:
获得所述第二组件中所述第一数据的调试结果信息,并基于所述网络传输协议将所述调试结果信息反馈至所述第二设备。
5.根据权利要求1所述的方法,还包括:
在所述第一数据调试成功,所述第一设备运行所述第一数据的情况下,判断是否符合预定条件,得到一判断结果;
若所述判断结果表示符合,则通过一预定的基于高速串行计算机扩展总线标准的传输协议获取所述第二组件的寄存器中的第二数据;所述第二数据能用于反映所述第一设备的第三组件和/或第二组件在运行中的错误信息;
基于所述网络传输协议将所述第二数据反馈至所述第二设备。
6.一种处理方法,应用于第二设备,该方法包括:
基于预定的网络传输协议向第一设备的第一组件发送第一数据,以使得由所述第一组件将所述第一数据写入所述第一设备的第二组件中;
基于所述网络传输协议向所述第一组件发送调试信号,以使得由所述第一组件向所述第二组件发送调试指令进而使得对所述第二组件中的所述第一数据进行调试;所述调试指令基于所述调试信号生成。
7.根据权利要求6所述的方法,还包括:
基于所述网络传输协议接收所述第一设备的所述第一组件发送的调试结果信息;所述调试结果信息为对所述第二组件中的所述第一数据进行调试所产生的信息。
8.根据权利要求6所述的方法,还包括:
基于所述网络传输协议接收所述第一设备的所述第一组件发送的第二数据;
基于所述第二数据,确定所述第一设备的第三组件和/或第二组件的运行错误信息。
9.一种第一设备,包括:第一组件及第二组件;
所述第一组件包括:
第一存储器,用于至少存储一组指令集;
第一处理器,用于调用并执行所述存储器中的所述指令集,通过执行所述指令集进行以下操作:
基于预定的网络传输协议接收第二设备发送的第一数据;
将所述第一数据写入所述第一设备的第二组件中;
基于所述网络传输协议接收第二设备发送的调试信号;
向所述第二组件发送调试指令,以对所述第二组件中的所述第一数据进行调试;所述调试指令基于所述调试信号生成。
10.一种第二设备,包括:
第二存储器,用于至少存储一组指令集;
第二处理器,用于调用并执行所述存储器中的所述指令集,通过执行所述指令集进行以下操作:
基于预定的网络传输协议向第一设备的第一组件发送第一数据,以使得由所述第一组件将所述第一数据写入所述第一设备的第二组件中;
基于所述网络传输协议向所述第一组件发送调试信号,以使得由所述第一组件向所述第二组件发送调试指令进而使得对所述第二组件中的所述第一数据进行调试;所述调试指令基于所述调试信号生成。
CN201811648355.6A 2018-12-30 2018-12-30 一种处理方法及第一设备、第二设备 Active CN109710479B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811648355.6A CN109710479B (zh) 2018-12-30 2018-12-30 一种处理方法及第一设备、第二设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811648355.6A CN109710479B (zh) 2018-12-30 2018-12-30 一种处理方法及第一设备、第二设备

Publications (2)

Publication Number Publication Date
CN109710479A true CN109710479A (zh) 2019-05-03
CN109710479B CN109710479B (zh) 2021-05-18

Family

ID=66260520

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811648355.6A Active CN109710479B (zh) 2018-12-30 2018-12-30 一种处理方法及第一设备、第二设备

Country Status (1)

Country Link
CN (1) CN109710479B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111352889A (zh) * 2020-02-29 2020-06-30 苏州浪潮智能科技有限公司 一种基于mctp协议的设备管理方法、设备、装置和介质
CN112148617A (zh) * 2020-10-09 2020-12-29 中国科学技术大学 一种用于远程实验平台的波形采样调试方法
CN113360440A (zh) * 2020-03-06 2021-09-07 Oppo广东移动通信有限公司 处理器通信控制方法及相关产品

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102130951A (zh) * 2011-03-14 2011-07-20 浪潮(北京)电子信息产业有限公司 一种服务器及其可编程逻辑器件的远程升级方法
CN105718339A (zh) * 2015-12-31 2016-06-29 山东大学 一种fpga/cpld 远程调试系统及方法
CN106502814A (zh) * 2016-10-19 2017-03-15 杭州迪普科技股份有限公司 一种记录pcie设备错误信息的方法及装置
US20180052203A1 (en) * 2016-08-22 2018-02-22 Prateek Sikka Method for enabling cpu-jtag debugger connection or improving its performance for multi-clock designs running on fpga or emulation systems
CN108733552A (zh) * 2017-04-18 2018-11-02 北京大学 一种fpga远程调试系统及远程调试方法
CN108804117A (zh) * 2017-05-02 2018-11-13 广达电脑股份有限公司 通过管理控制器更新硬盘的方法与系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102130951A (zh) * 2011-03-14 2011-07-20 浪潮(北京)电子信息产业有限公司 一种服务器及其可编程逻辑器件的远程升级方法
CN105718339A (zh) * 2015-12-31 2016-06-29 山东大学 一种fpga/cpld 远程调试系统及方法
US20180052203A1 (en) * 2016-08-22 2018-02-22 Prateek Sikka Method for enabling cpu-jtag debugger connection or improving its performance for multi-clock designs running on fpga or emulation systems
CN106502814A (zh) * 2016-10-19 2017-03-15 杭州迪普科技股份有限公司 一种记录pcie设备错误信息的方法及装置
CN108733552A (zh) * 2017-04-18 2018-11-02 北京大学 一种fpga远程调试系统及远程调试方法
CN108804117A (zh) * 2017-05-02 2018-11-13 广达电脑股份有限公司 通过管理控制器更新硬盘的方法与系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111352889A (zh) * 2020-02-29 2020-06-30 苏州浪潮智能科技有限公司 一种基于mctp协议的设备管理方法、设备、装置和介质
CN113360440A (zh) * 2020-03-06 2021-09-07 Oppo广东移动通信有限公司 处理器通信控制方法及相关产品
CN112148617A (zh) * 2020-10-09 2020-12-29 中国科学技术大学 一种用于远程实验平台的波形采样调试方法

Also Published As

Publication number Publication date
CN109710479B (zh) 2021-05-18

Similar Documents

Publication Publication Date Title
TWI229796B (en) Method and system to implement a system event log for system manageability
CN100440157C (zh) 用于将可恢复的错误记入日志的系统和方法
EP2696534B1 (en) Method and device for monitoring quick path interconnect link
CN109710479A (zh) 一种处理方法及第一设备、第二设备
US8346992B2 (en) Peripheral interface alert message for downstream device
US20020056047A1 (en) System and method for communicating software debug, diagostic and maintenance information between devices
CN107122277A (zh) 基于pcie协议分析仪的pcieras注错测试系统及方法
CN105786495B (zh) 软件发布系统及方法、软件开发发布系统
US5267246A (en) Apparatus and method for simultaneously presenting error interrupt and error data to a support processor
CN110502400A (zh) 数据库巡检方法和装置
US7721159B2 (en) Passing debug information
US11442831B2 (en) Method, apparatus, device and system for capturing trace of NVME hard disc
US20060184864A1 (en) Error detection
CN102902613A (zh) 计算机系统及其诊断方法
US20090138750A1 (en) Redundant 3-wire communication system and method
CN102884515B (zh) 串口重定向处理方法、设备和系统
CN106502944A (zh) 计算机、pcie设备以及pcie设备的心跳检测方法
CN115454881B (zh) Risc-v架构的调试系统及调试方法
US20220291283A1 (en) Automatic chip testing system and method
US20060184707A1 (en) Error injection
CN101316202B (zh) 嵌入式软件的在线诊断方法和系统、嵌入式软件装置
CN112486877A (zh) 一种通用化fc转换接口模块的外场保障与测试平台
CN109491846A (zh) 一种用于服务器抓取SATA硬盘trace的方法和系统
JP2006350654A (ja) サーバ計算機
CN109039813A (zh) 一种检测因特网接入的方法、系统及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant