CN110837488A - 报文传输方法和装置 - Google Patents
报文传输方法和装置 Download PDFInfo
- Publication number
- CN110837488A CN110837488A CN201910914078.7A CN201910914078A CN110837488A CN 110837488 A CN110837488 A CN 110837488A CN 201910914078 A CN201910914078 A CN 201910914078A CN 110837488 A CN110837488 A CN 110837488A
- Authority
- CN
- China
- Prior art keywords
- message
- processing chip
- chip
- processing
- packet
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7885—Runtime interface, e.g. data exchange, runtime control
- G06F15/7889—Reconfigurable logic implemented as a co-processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/82—Architectures of general purpose stored program computers data or demand driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了报文传输方法和装置,涉及计算机技术领域,有助于平衡服务器中CPU的外接芯片的开发周期(或成本)和工作性能,从而提高服务器的整体性能。该装置可以是服务器,服务器包括处理器如CPU、第一处理芯片和第二处理芯片,第二处理芯片分别与处理器和第一处理芯片连接。作为示例,可以认为在处理器与第一处理芯片间设置了第二处理芯片。第一处理芯片是不可编程芯片如ASIC芯片,第二处理芯片是可编程芯片如FPGA芯片,第二处理芯片支持第二功能特性,第二功能特性是可更新的。处理器和第一处理芯片均用于与第二处理芯片之间进行报文交互。第二处理芯片用于基于第二功能特性对接收到的报文进行处理,并将处理后的报文发送给处理器或第一处理芯片。
Description
本申请要求于2019年07月15日提交国家知识产权局、申请号为201910637678.3、申请名称为“基于FPGA的CPU和ASIC芯片通信拓扑、方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,尤其涉及报文传输方法和装置。
背景技术
在互联网、公有云等领域,服务器的硬件配置的迭代速度越来越跟不上自身业务部署的更新速度,因此越来越多的厂商开始考虑定制化硬件的道路。在定制硬件领域,业界很多厂商采用定制特定应用集成电路(application-specific integrated circuit,ASIC)芯片或现场可编程门阵列(field programmable gate array,FPGA)芯片来实现自身业务需求的功能部署。
ASIC芯片是针对特定场景开发的,因此,在性能、功耗、场景适配等方面都表现出了独特的优势。但也正因为此,一旦业务场景发生变化,ASIC芯片就可能无法继续胜任新的业务场景,若要匹配新业务,那就需要对ASIC芯片进行迭代开发,这会导致业务出现了不连续性。另外,ASIC芯片的开发周期较长、成本较高。例如,为了实现某种特性,如基于融合以太网的(remote direct memory access over converged ethernet,RoCE)特性,当前通过ASIC芯片固化了一套完整的实现方案,但是随着技术的发展迭代,在现有方案的基础上衍生出新的方案,该新的方案可以实现更低的网络延迟,支持更好的网络拥塞处理,此时ASIC芯片若要支持该新的方案就需要做芯片升级,而芯片升级一次周期比较长(如2~3年),这远超过厂商对部署业务的要求。
FPGA芯片是可编程芯片,其开发周期较短、成本较低,但是,目前FPGA的主频最高一般只有几百兆赫兹,这相比于ASIC芯片低了一个数量级,受限于FPGA的主频,相比于同功能的ASIC芯片来说,FPGA芯片的性能较差。若要实现FPGA芯片和ASIC芯片具有完全相同的功能及性能,FPGA芯片的规格会比较高,这会带来工程实现的困难(如封装体积大、热耗高等)。
发明内容
本申请实施例提供了报文传输方法和装置,有助于平衡服务器中的CPU的外接芯片的开发周期(或成本)和工作性能,从而提高服务器的整体性能。
第一方面,提供一种服务器,该服务器包括处理器、第一处理芯片和第二处理芯片,第二处理芯片分别与处理器和第一处理芯片连接,第一处理芯片是不可编程芯片,所述第二处理芯片是可编程芯片,第二处理芯片支持第二功能特性。处理器,用于与第二处理芯片之间进行报文交互;第一处理芯片,用于与第二处理芯片之间进行报文交互;第二处理芯片,用于基于第二功能特性对接收到的报文进行处理,并将处理后的报文发送给处理器或第一处理芯片。本技术方案,可以认为是在处理器如CPU与不可编程芯片如ASIC芯片之间增加了可编程芯片如FPGA芯片,这样,处理器对客户端所呈现的一部分功能特性可以由不可编程芯片执行,另一部分功能特性可以由可编程芯片执行。这样,与现有技术中CPU对客户端呈现的功能特性仅由ASIC芯片或FPGA芯片执行的技术方案相比,有助于平衡CPU的外接芯片的开发周期(或成本)和工作性能,从而提高服务器的整体性能。
在一种可能的设计中,处理器具体用于,向第二处理芯片发送第一报文;第二处理芯片具体用于,基于第二功能特性对第一报文进行处理,得到第二报文,并将第二报文发送给处理器或第一处理芯片。该可能的设计提供了一种由处理器发送的报文的传输路径。
在一种可能的设计中,第二处理芯片具体用于:如果第二报文中携带第一处理芯片的标识信息(如第一处理芯片的网络互连协议(internet protocol,IP)地址),或者第一处理芯片所支持的功能特性的信息,则将第二报文发送给第一处理芯片。该可能的设计提供了第二处理芯片对自身处理后的报文的路径进行选择的一种实现方案。
在一种可能的设计中,第二处理芯片具体用于:如果第二报文中携带处理器的信息(如处理器需要访问的内存地址),则将第二报文发送给处理器。该可能的设计提供了第二处理芯片对自身处理后的报文的路径进行选择的另一种实现方案。
在一种可能的设计中,第一处理芯片还用于,对接收到的第三报文进行处理,得到第四报文,并向第二处理芯片发送所述第四报文;第二处理芯片具体用于:向处理器发送第四报文;或者,基于第二功能特性对所述第四报文进行处理,得到第五报文,并向处理器或第一处理芯片发送第五报文。该可能的设计提供了经第一处理芯片处理后的报文的传输路径。
在一种可能的设计中,处理器还用于,生成第一报文,第一报文包括指示信息,该指示信息用于指示是否需要基于第二功能特性对第一报文进行处理;第二处理芯片具体用于,当该指示信息用于指示需要基于第二功能特性对第一报文进行处理时,基于第二功能特性对所述第一报文进行处理,得到第二报文;当指示信息用于指示不需要基于第二功能特性对第一报文进行处理时,向第一处理芯片发送第一报文。这样,第二处理芯片可以直接基于处理器发送的报文中的指示信息选择报文传输路径。
在一种可能的设计中,第一报文携带第二处理芯片的逻辑地址,第二处理芯片的逻辑地址与第一处理芯片的物理地址之间存在对应关系;第二处理芯片具体用于,当该指示信息用于指示不需要基于第二功能特性对第一报文进行处理时,将第一报文携带的第二处理芯片的逻辑地址替换为第二处理芯片的逻辑地址所对应的第一处理芯片的物理地址,得到第六报文;向第一处理芯片发送第六报文;第一处理芯片还用于,接收第六报文。该可能的设计提供了一种第二处理芯片向第一处理芯片发送报文的方法。
在一种可能的设计中,处理器还用于,对服务器中的处理芯片进行识别,以获得第二处理芯片的逻辑地址与第一处理芯片的物理地址之间的对应关系。该过程可以在服务器上电过程中实现。
在一种可能的设计中,处理器还用于,对服务器中的处理芯片进行识别,所识别到的处理芯片包括第一处理芯片和第二处理芯片。该过程可以在服务器上电过程中实现。该可能的设计可以适用于图3所示的a图或c图所示的逻辑拓扑。
在一种可能的设计中,处理器还用于,对服务器中的处理芯片进行识别,所识别到的处理芯片包括第二处理芯片但不包括第一处理芯片。该过程可以在服务器上电过程中实现。该可能的设计可以适用于图3所示的b图所示的逻辑拓扑。
在一种可能的设计中,第二处理芯片还用于,在基于第二功能特性对接收到第一处理芯片发送的报文进行处理之后,如果需要将处理后的报文发往处理器,则将该报文的协议格式由第一格式转换为第二格式。其中,第一格式是第二处理芯片与第一处理芯片之间进行报文传输需要遵循的协议;第二格式是第二处理芯片与处理器之间进行报文传输需要遵循的协议。
在一种可能的设计中,第二处理芯片还用于,在基于第二功能特性对接收到处理器发送的报文进行处理之后,如果需要将处理后的报文发往第一处理芯片,则将该报文的协议格式由第二格式转换为第一格式。其中,第一格式和第二格式的定义可以参考上文。
第二方面,提供一种报文传输方法,应用于服务器中的第二处理芯片,服务器还包括处理器和第一处理芯片,第二处理芯片分别与处理器和第一处理芯片连接,第一处理芯片是不可编程芯片,第二处理芯片是可编程芯片,第二处理芯片支持第二功能特性。该方法包括:接收处理器或第一处理芯片发送的第一报文;基于第二功能特性对第一报文进行处理,得到第二报文;向第一处理芯片或第一处理芯片发送第二报文。
在一种可能的设计中,向第一处理芯片或第一处理芯片发送第二报文,包括:如果第二报文中携带第一处理芯片的标识信息或者第一处理芯片所支持的功能特性的信息,则向第一处理芯片发送第二报文;如果第二报文中携带处理器的信息,则向处理器发送第二报文。
在一种可能的设计中,当第一报文是处理器发送的报文时,在基于第二功能特性对第一报文进行处理,得到第二报文之前,方法还包括:对第一报文进行解析,得到指示信息,指示信息用于指示是否需要基于第二功能特性对第一报文进行处理;基于第二功能特性对第一报文进行处理,得到第二报文,包括:当指示信息用于指示需要基于第二功能特性对第一报文进行处理时,基于第二功能特性对第一报文进行处理,得到第二报文。
在一种可能的设计中,方法还包括:当指示信息用于指示不需要基于第二功能特性对第一报文进行处理时,向第一处理芯片发送第一报文。
在一种可能的设计中,第一报文携带第二处理芯片的逻辑地址,第二处理芯片的逻辑地址与第一处理芯片的物理地址之间存在对应关系;当指示信息用于指示不需要基于第二功能特性对第一报文进行处理时,向第一处理芯片发送第一报文,包括:当指示信息用于指示不需要基于第二功能特性对第一报文进行处理时,将第一报文携带的第二处理芯片的逻辑地址替换为第二处理芯片的逻辑地址所对应的第一处理芯片的物理地址,得到第三报文;向第一处理芯片发送第三报文。
在一种可能的设计中,第一处理芯片是ASIC芯片,第二处理芯片是FPGA芯片。
在一种可能的设计中,该方法还包括:在基于第二功能特性对接收到第一处理芯片发送的报文进行处理之后,如果需要将处理后的报文发往处理器,则将该报文的协议格式由第一格式转换为第二格式。其中,第一格式是第二处理芯片与第一处理芯片之间进行报文传输需要遵循的协议;第二格式是第二处理芯片与处理器之间进行报文传输需要遵循的协议。
在一种可能的设计中,该方法还包括:在基于第二功能特性对接收到处理器发送的报文进行处理之后,如果需要将处理后的报文发往第一处理芯片,则将该报文的协议格式由第二格式转换为第一格式。其中,第一格式和第二格式的定义可以参考上文。
第二方面提供的任一种技术方案的有益效果可以参考上述第一方面所提供的相应的技术方案的有益效果,此处不再赘述。另外,需要说明的是,为了描述上的清楚简洁,第一方面和第二方面中所涉及的报文均是从第一报文进行编号的,但是其含义不同,这并不影响读者对本文所提供的技术方案的理解。并且,以下具体实现方式中,也是从第一报文进行编号的,此处统一说明,下文不再赘述。
第三方面,提供了一种处理芯片,可以用于执行第二方面提供的任一种方法。
在一种可能的设计中,可以根据第二方面提供的任一种方法,对该装置进行功能模块的划分。例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。
在一种可能的设计中,该装置可以包括存储器和处理器,该存储器用于存储计算机程序,该处理器用于调用该计算机程序,以执行第二方面提供的任一种方法被执行。示例的,该处理芯片可以是可编程芯片,如FPGA芯片。
第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质中包含指令,当该指令在计算机上运行时,使得该计算机执行第二方面提供的任一种方法。
第五方面,提供了一种计算机程序产品,当其在计算机上运行时,使得第二方面提供的任一种方法被执行。
可以理解的是,上述提供的任一种处理芯片、计算机可读存储介质或计算机程序产品等均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。
附图说明
图1为可适用于本申请实施例的一种服务器的结构示意图;
图2为本申请实施例提供的一种硬件层中的处理资源硬件的结构示意图;
图3为本申请实施例提供的一种处理器、第一处理芯片和第二处理芯片之间的连接关系的示意图;
图4A为本申请实施例基于图2提供的一种服务器的结构示意图;
图4B为本申请实施例基于图2提供的另一种服务器的结构示意图;
图5为本申请实施例提供的一种服务器的上电流程的示意图;
图6为本申请实施例提供的一种报文传输方法的示意图;
图7为本申请实施例基于图6提供的一种报文传输方法的流程示意图;
图8为本申请实施例基于图7提供的一种报文路径的示意图;
图9为本申请实施例提供的另一种报文传输方法的示意图;
图10为本申请实施例基于图9提供的一种报文路径的示意图;
图11为本申请实施例提供的另一种报文传输方法的示意图;
图12为本申请实施例基于图11提供的一种报文传输方法的示意图;
图13为本申请实施例基于图12提供的一种报文路径的示意图;
图14为传统技术方案下CPU与VF/网络队列之间的对应关系的示意图;
图15为本申请实施例提供的一种CPU与VF/网络队列之间的对应关系的示意图;
图16为本申请实施例提供的一种调度模块与VF/调度模块之间对应关系的示意图;
图17为本申请实施例提供的一种VF与网卡队列之间的对应关系的示意图;
图18为本申请实施例提供的一种处理芯片的结构示意图。
具体实施方式
如图1所示,为可适用于本申请实施例的一种服务器1的结构示意图。服务器1的结构自下而上可以包括:硬件层100,操作系统层200和客户端软件层300。硬件层100可以包括存储资源硬件(如存储器等)和处理资源硬件(如处理器、处理芯片等)等。操作系统层200可以包括管理硬件资源与软件资源的程序。客户端软件层300可以包括一个或多个客户端,客户端在需要完成某些操作,如通过网络与服务器1互连的远端设备访问存储资源等时,会对硬件层100发起访问,这个访问的过程会产生相应的报文。作为一个示例,本申请实施例提供的报文传输方法可以认为是对硬件层100发送的报文进行处理的过程中的报文传输方法。也就是说,该报文传输方法可以是指硬件层100中器件之间的报文传输方法。
如图2所示,为本申请实施例提供的一种硬件层100中的处理资源硬件的结构示意图。具体的,硬件层100可以包括:处理器101和第一处理芯片102,以及分别与处理器101和第一处理芯片102连接的第二处理芯片103。其中:
处理器101,是服务器的控制中心。例如,处理器101可以是中央处理器(centralprocessing unit,CPU)、系统级芯片(system on chip,SOC)、数字信号处理器(digitalsignal processor,DSP)等带有软件处理能力的芯片/器件等。处理器101上可以运行基本输入输出系统(basic input output system,BIOS)和操作系统(operating system,OS)。其中,BIOS是加载在计算机硬件系统上的最基本的软件代码。BIOS是在OS之下的底层软件程序,是计算机硬件和OS之间的抽象层,用来配置硬件参数,为OS运行做准备。BIOS的主要功能是上电、自检、CPU初始化、内存初始化、检测输入输出设备以及可启动设备并最终引导OS启动等。
第一处理芯片102是不可编程芯片,也就是说,第一处理芯片102具有的功能特性一旦确定,一般不能再更改。例如,第一处理芯片102可以是ASIC芯片,如网络控制器芯片、存储控制器芯片、人工智能(artificial intelligence,AI)运算芯片等。
第二处理芯片103是可编程芯片,也就是说,通过对第二处理芯片103进行编程,可以更新(如增加、删除或修改)第二处理芯片103所具有的功能特性。例如,第二处理芯片103可以是FPGA芯片、可编程逻辑器件(programmable logic device,PLD)等。
当服务器需要执行某种任务(如浮点计算型的任务)时,如果该任务由CPU执行,则需要消耗非常多的CPU计算资源。为了降低CPU的计算资源开销,CPU可以在识别到该任务时,将该任务交给其外接的处理芯片,该处理芯片执行完该任务后,将该任务的执行结果返回给CPU。在本申请实施例中,该外接芯片是指第一处理芯片102和/或第二处理芯片103。
可选的,处理器101与第二处理芯片103之间,以及第二处理芯片103与第一处理芯片102之间均可以通过高速外部设备互联标准(peripheral component interconnectexpress,PCIE)总线、超级通道互连(ultra path interconnect,UPI)总线或缓存一致互联协议(cache coherent interconnect for accelerators,CCIX)总线等互联。
需要说明的是,图2所示的硬件层,仅为一个示例,其不对本申请实施例所适用的服务器的硬件结构造成限定。实际实现时,服务器中还可以包括比图2中所示的更多或更少的器件。例如,服务器中还可以包括存储器、接口和总线等。其中,该存储器可以用于存储计算机程序代码,处理器101可以调用该计算机程序代码,以执行本申请实施例中由处理器101(如CPU)执行的步骤。该接口用于服务器与该服务器之外的设备之间进行通信。该总线用于连接服务器内部的器件,如用于连接该存储器、处理器101、第一处理芯片102和第二处理芯片103等。
图2所示的硬件层,在处理器101与不可编程的第一处理芯片102之间增加可编程的第二处理芯片103,这有助于延长第一处理芯片102的生命周期,具体来说,由于第一处理芯片102是不可编程的,因此,在现有的处理器101与不可编程的第一处理芯片102直接连接的技术方案,为了适配新的业务场景,第一处理芯片102的生命周期较短,即会很快被淘汰掉;而使用图2所示的服务器时,为了适配新的业务场景,可以对第二处理芯片103进行编程,而不需要将第一处理芯片102淘汰掉,因此,可以延长第一处理芯片102的生命周期。进一步地,相比“更换新的第一处理芯片102,以适配新的业务场景”的技术方案,通过对第二处理芯片103进行编程,可以更快速适配新的业务场景,且成本较低。
另外,基于图2所示的服务器,当第一处理芯片102开发完成之后,基于对第二处理芯片103的编程,有助于对下一代第一处理芯片102的研发提供帮助。具体而言,通过对第二处理芯片103的编程,可以执行下一代第一处理芯片102的研发过程中的验证工作,从而缩短对下一代第一处理芯片102的验证周期。
可以理解的是,图2中的处理器101、第一处理芯片102和第二处理芯片103之间的连接关系是指物理连接。在逻辑连接(即逻辑拓扑)上,处理器101、第一处理芯片102和第二处理芯片103之间的连接关系可以如图3所示。也就是说,本申请实施例提供的一种物理通信架构(如图2所示的服务器架构)可以支持多种逻辑通信方式,这样,可以使得一种物理通信架构可以适配多种应用场景。下文中以处理器101、第一处理芯片102和第二处理芯片103分别是CPU、ASIC芯片和FPGA芯片为例对各种逻辑拓扑进行说明:
在图3的a图中,CPU可以识别到ASIC芯片和FPGA芯片。在该逻辑拓扑下,FPGA芯片在CPU和ASIC芯片之间所起的作用类似于交换芯片的作用,可以实现简单的报文透传,或者复杂的报文解析、处理、重组等。该逻辑拓扑,可以用于实现单根输入输出虚拟化(singleroot input/output virtualization,SR-IOV)特性等。
在图3的b图中,CPU可以识别到FPGA芯片,但是不能识别到ASIC芯片。在该逻辑拓扑下,FPGA芯片可以根据业务需要对CPU呈现所需的设备形态,如业界当前比较流行的虚拟化输入输出(vitrual input/output,VirtIO)设备、非易失性内存主机控制器接口规范(non-volatile memory express,NVM Express,NVMe)设备等;而ASIC芯片可以是能够与FPGA芯片之间进行通信的任意类型的器件。由于在该逻辑拓扑下,CPU不需要关心ASIC芯片的类型或型号,因此,当服务器的上层软件对兼容性要求较高时,该逻辑拓扑的优势比较明显,比如在云计算的虚拟机应用场景中,可以选择使用该逻辑拓扑。
在图3的c图中,ASIC芯片和FPGA芯片处于并列的关系,ASIC芯片和FPGA芯片可以运行相对独立的功能特性,各自处理之后的报文又可以通过ASIC芯片和FPGA芯片之间的物理通道实现交互。该逻辑拓扑可以应用于异构计算应用场景。该应用场景中,FPGA芯片和ASIC芯片可以是两个相对独立的器件,可以执行相关度比较低的工作。示例的,ASIC芯片主要用于常规的业务数据处理,比如,若ASIC芯片是网卡,则负责进出系统的流量控制;若ASIC是存储控制卡,则负责存储数据的管理如raid功能等。FPGA芯片主要用于数据运算等功能,以降低CPU的计算资源开销。
如图4A所示,为基于图2提供的另一种服务器的结构示意图。其中:
图4A中示意出了第二处理芯片103的一种结构示意图。具体的,第二处理芯片103可以包括:配置寄存器1031、第一接口1032、第二接口1033、存储介质1034和处理模块1035。其中,配置寄存器1031用于存储识别接口和识别设备的相关信息等,具体示例可以参考下文。
第一接口1032用于第二处理芯片103与处理器101之间通信。当处理器101是CPU时,第一接口1032可以被称作CPU接口。
第二接口1033用于第二处理芯片103与第一处理芯片102之间通信。当第一处理芯片102是ASIC芯片时,第二接口1033可以被称作ASIC接口。
存储介质1034用于存储计算机程序。在一个示例中,存储介质1034可以包括配置寄存器1031,关于配置寄存器1031的功能可以参考下文,此处不再赘述。
处理模块1035可以是处理电路等,用于调用该计算机程序,以执行本申请实施例提供的技术方案中第二处理芯片103(如FPGA芯片)所执行的步骤,例如对报文进行解析、转发、处理、重组等。在一个示例中,如图4B所示,处理模块1035可以包括:报文解析模块1035A、通道选择模块1035B、报文重组模块1035C和新特性模块1035D,分别用于对报文进行解析、通道选择、重组,以及新功能特性的处理等。需要说明的是,新特性模块1035D所具有的新功能特性,是指第二处理芯片103相比于第一处理芯片102所具备的新的功能特性。例如,当处理器101(如CPU)外接的芯片具有RoCEv2(即版本2的RoCE)特性,其中,第一处理芯片102(如ASIC芯片)具有RoCEv1(即版本1的RoCE)特性,那么,第二处理芯片103(如FPGA芯片)所具有的新功能特性是指RoCEv2相比RoCEv1所升级的功能特性。
图4A中还示意出了处理器101的一种结构示意图。具体的,处理器101可以包括:控制模块1011、业务处理模块1012和接口1013。其中,接口1013用于进行业务报文的收发。控制模块1011用于完成对配置寄存器1031的读写操作,以实现第二处理芯片103与处理器101之间的对接。业务处理模块1012,用于对从接口1013接收到的报文进行处理,以及将处理后的报文通过接口1013发送给第二处理芯片103等。
需要说明的是,上述图4A所示的处理器101和第二处理芯片103的结构示意图均为示例,其不对本申请实施例所适用的处理器101和第二处理芯片103的结构构成限定。实际实现时,处理器101和第二处理芯片103中可以包含比图4A所示的更多或更少的器件。
以下,结合附图,对本申请实施例提供的技术方案进行详细说明:
本申请实施例提供的技术方案为:在CPU与ASIC芯片之间增加了FPGA芯片,这样,CPU对客户端所呈现的一部分功能特性可以由FPGA芯片执行,另一部分功能可以由ASIC芯片执行。这样,与现有技术中CPU对客户端呈现的功能特性仅由ASIC芯片或FPGA芯片执行的技术方案相比,有助于平衡CPU的外接芯片的开发周期(或成本)和工作性能,从而提高服务器的整体性能。此处的ASIC芯片可以扩展为第一处理芯片102,FPGA芯片可以扩展为第二处理芯片103。
以下,通过说明图2所示的服务器的上电流程和报文传输流程,来说明图2所示的服务器是可实现的。上电流程在报文传输流程之前执行,用于为报文传输作准备。下文中均以处理器101是CPU,第一处理芯片是ASIC芯片,第二处理芯片是FPGA芯片为例进行说明。
如图5所示,为本申请实施例提供的一种服务器的上电流程的示意图。作为示例,该服务器可以是图2、图4A或图4B中所示的服务器。图5所示的方法可以包括如下步骤:
S101:服务器上电启动。具体的,服务器中的CPU、FPGA芯片和ASIC芯片上电启动。
S102:CPU在运行BIOS的过程中,对FPGA芯片的CPU接口进行识别。
具体的,CPU读取FPGA芯片中的配置寄存器所存储的CPU接口的信息,如带宽、地址、地址空间等硬件特性。也就是说,CPU对FPGA芯片的CPU接口的识别结果为配置寄存器中存储的该CPU接口的信息。其中,配置寄存器中所存储的CPU接口信息可以是预先存储的,如FPGA芯片开发人员将CPU接口信息预先写入配置寄存器中的。当然不限于此。
可以理解的是,在后续的报文传输过程中,CPU可能接收到大量的报文,此时,可以基于CPU接口的带宽,确定一次传输的报文的数量,因此,在上电过程中,CPU需要识别到CPU接口的带宽。在后续的报文传输过程中,CPU需要基于CPU接口的地址空间,向FPGA芯片发送报文,因此,在上电过程中,CPU需要识别CPU接口的地址空间。另外,上述识别到的地址是指识别到的地址空间中的地址。
S103:CPU在运行OS的过程中,加载控制模块驱动,并由控制模块对FPGA芯片的配置寄存器进行配置。
控制模块对配置寄存器进行配置,可以理解为:控制模块在配置寄存器中写入配置信息。该配置信息可以包括:服务器的当前逻辑拓扑和报文传输过程中的路径等。
服务器的当前逻辑拓扑,可以是图3中的任意一种逻辑拓扑。其中,逻辑拓扑可以与当前场景相关。例如,当当前应用场景是云计算场景时,当前逻辑拓扑可以如图3中的a图或b图所示。当当前应用场景是异构计算应用场景时,当前逻辑拓扑可以如图3中的c图所示。
报文传输过程中的路径可以包括:根据报文是否需要进入新特性模块区分的路径1和路径2,其中,路径1是指报文不需要进入新特性模块的路径,即报文由CPU发往FPGA芯片,并经FPGA芯片透传至ASIC芯片的路径。路径2是指报文需要进入新特性模块的路径,即报文由CPU发往FPGA芯片,并需要经FPGA芯片的新特性模块进行处理的路径。可选的,报文传输过程中的路径还可以包括:在报文经新特性模块处理之后,根据报文发往的目的地不同而区分的路径2A和路径2B。其中,路径2A是经新特性模块处理之后的报文需要返回CPU的路径;路径2B是经新特性模块处理之后的报文需要进入ASIC芯片的路径。
S104:CPU对服务器中的设备(具体是指CPU的外接芯片如FPGA芯片,可选的还包括ASIC芯片)的识别,以使得CPU能够访问服务器中的设备。
具体的,读取FPGA芯片中的配置寄存器所存储的逻辑拓扑,例如该逻辑拓扑可以是S103中所配置的当前逻辑拓扑;然后,基于所读取到的逻辑拓扑,进一步识别服务器中的设备。
例如,当所读取到的逻辑拓扑是图3中的a图所示的逻辑拓扑时,CPU读取FPGA芯片中的配置寄存器,以得到FPGA芯片的地址信息以及ASIC芯片的地址信息。在一个示例中,FPGA芯片的地址信息与ASIC芯片的地址信息之间的映射关系可以如表1所示:
表1
FPGA芯片的逻辑地址 | FPGA芯片的物理地址 | ASIC芯片的物理地址 |
地址1~10 | 地址1~10 | |
地址11~20 | 地址1~10 |
基于表1,CPU识别到的服务器中的设备包括:FPGA芯片和ASIC芯片。并且,FPGA芯片的逻辑地址(即CPU接口的地址空间所包括的地址,即CPU的外接芯片呈现给CPU的地址)是地址1~20。其中,逻辑地址1~10分别对应于FPGA芯片的物理地址1~10,逻辑地址11~20分别对应于ASIC芯片的物理地址1~10。
又如,当所读取到的逻辑拓扑是图3中的b图所示的逻辑拓扑时,CPU读取FPGA芯片中的配置寄存器,以得到FPGA芯片的地址信息。在一个示例中,FPGA芯片的地址信息可以如表2所示:
表2
FPGA芯片的逻辑地址 |
地址1~20 |
基于表2可知,CPU识别到的服务器中的设备包括FPGA芯片。并且,FPGA芯片的逻辑地址(即CPU接口的地址空间所包括的地址,即CPU的外接芯片呈现给CPU的地址)是地址1~20。
另外,当所读取到的逻辑拓扑是图3中的a图所示的逻辑拓扑时,CPU对服务器中的设备进行识别的识别结果还可以包括:FPGA芯片的设备类型和ASIC芯片的设备类型等。又如,当所读取到的逻辑拓扑是图3中的b图所示的逻辑拓扑时,CPU对服务器中的设备进行识别的识别结果可以包括:FPGA芯片的设备类型等。其中,设备类型可以包括:网络类(如网卡等),存储类(如RAID等)。
S105:CPU加载业务处理模块驱动,并通过业务处理模块与FPGA芯片和/或ASIC芯片进行报文传输。关于S105的具体实现过程可以参考下文。
如图6所示,为本申请实施例提供的一种报文传输方法的示意图。该方法具体描述了CPU发出的报文的传输方法。该方法可以应用于图3的a图或c图中所示的逻辑拓扑。该方法可以包括如下步骤:
S201:CPU生成第一报文,并向FPGA芯片发送第一报文。
S202:FPGA芯片解析第一报文,得到指示信息。该指示信息用于指示第一报文是否需要基于FPGA芯片的功能特性进行处理。
当该指示信息用于指示不需要基于FPGA芯片的功能特性进行处理时,执行S203。
当该指示信息用于指示需要基于FPGA芯片的功能特性进行处理时,执行S204。
在一种实现方式中,该指示信息可以包括地址信息,该地址信息是上电过程中CPU识别到的FPGA芯片的一个逻辑地址,例如该地址信息可以是表1所示的是FPGA芯片的逻辑地址1~20的其中之一。FPGA可以根据逻辑地址与物理地址之间的对应关系(如表1所示的对应关系),确定该逻辑地址所对应的物理地址是FPGA芯片的物理地址还是ASIC芯片的物理地址。如果所确定的物理地址是FPGA芯片的物理地址(如当该地址信息是表1中的逻辑地址1时,所确定的该逻辑地址对应的物理地址是FPGA芯片的物理地址1),则说明指示信息用于指示需要基于FPGA芯片的功能特性进行处理。如果所确定的物理地址是ASIC芯片的物理地址(如该地址信息是表1中的逻辑地址11时,所确定的物理地址是ASIC芯片的物理地址1),则说明指示信息用于指示不需要基于FPGA芯片的功能特性进行处理。
在另一种实现方式中,该指示信息可以是标记位信息如具有功能指向性的信息。例如,当该指示信息是“1”时,用于指示第一报文需要基于FPGA芯片的功能特性进行处理;当该指示信息是“0”时,用于指示第一报文不需要基于FPGA芯片的功能特性进行处理。
需要说明的是,在云计算应用中,客户端运行的虚机是在hypervisor上的,客户端层面的软件是通用的,但hypervisor的软件可以是具有定制性的,因此,应用于本申请实施例时,可以通过对CPU进行改进(具体是对CPU所运行的软件程序进行改进),从而生成携带有上述指示信息的报文。
S203:FPGA芯片将第一报文进行重组,生成第二报文,并将第二报文发送给ASIC芯片。ASIC芯片接收到第二报文之后,基于ASIC芯片的功能特性对第二报文进行处理。其中,第二报文中携带的目的地址是ASIC芯片的地址。
执行S203之后,则本次报文传输流程结束。后续,可以执行ASIC芯片发出的报文的传输方法,例如如图11所示的方法。
具体的,FPGA芯片将第一报文中携带的目的地址(即FPGA芯片的逻辑地址)转换为ASIC芯片的物理地址,生成第二报文。例如,基于表1,假设第一报文携带的目的地址是地址11,则转换后得到地址1。
可选的,第一报文的报文格式是符合在CPU与FPGA芯片之间传输的报文的格式,第二报文的报文格式是符合在FPGA芯片与ASIC芯片之间传输的报文的格式,当这两种报文的格式不同(如其中一个是PCIE报文格式另一个是UPI报文格式)时,S203中的重组还可以包括FPGA芯片的不同接口所支持的协议所确定的报文格式之间的转换。
可选的,第一报文的报文格式是符合FPGA芯片所具有的特性的格式,第二报文的报文格式是符合ASIC芯片所具有的特性的格式,当这两种格式不同时(如FPGA芯片所具有的特性的格式是RoCEv2格式,ASIC芯片所具有的特性的格式是RoCEv1格式)时,S203中的重组还可以包括不同芯片所支持的特性所确定的报文格式之间的转换。
需要说明的是,下文中对报文进行重组的具体实现方式与此类似,因此下文不再赘述。
S204:FPGA芯片基于FPGA的功能特性对第一报文进行处理,得到第三报文。
例如,假设ASIC芯片具有的功能特性是RoCEv1特性,FPGA芯片具有的功能特性是RoCEv2相对RoCEv1升级后的特性,那么,CPU的外接芯片(即ASIC芯片和FPGA芯片)呈现给CPU的功能特性,以及CPU呈现给客户端的功能特性均是RoCEv2特性。基于此,在执行S204时,FPGA芯片可以基于“RoCEv2相对RoCEv1升级后的特性”对第一报文进行处理,得到第三报文。
示例的,FPGA芯片中的存储介质可以包括一个或多个指令寄存器,每个指令寄存器用于存储执行一个或多个功能所需要的指令,每个指令寄存器具有一个地址。CPU所生成的第一报文中携带一个或多个指令寄存器的地址。FPGA芯片可以根据第一报文中携带的地址,确定该地址所指示的指令寄存器,并调用该指令寄存器中的指令,以执行该指令表示的功能。
当FPGA芯片确定需要将第三报文发往ASIC芯片时,执行S205;
当FPGA芯片确定需要将第三报文返回CPU时,执行S206。
关于一个报文需要发往ASIC芯片还是返回CPU,FPGA芯片可以基于该报文的特征信息进行确定。可以理解的是,通过对FPGA芯片进行编程,可以使得FPGA芯片获知具有哪些特征信息的报文需要发往ASIC芯片,具有哪些特征信息的报文需要返回CPU。
可选的,如果第三报文中携带ASIC芯片的标识信息(如IP地址),则将第三报文发送给ASIC芯片。例如,当ASIC芯片是网卡时,CPU所生成的第一报文中可以携带ASIC芯片的IP地址,以使得FPGA基于第一报文所生成的第三报文中携带ASIC芯片的IP地址。
可选的,如果第三报文中携带ASIC芯片所支持的功能特性的信息,则将第三报文发送给ASIC芯片。例如,在利用FPGA芯片进行VF扩展的场景(具体示例可以参考下文)中,由于利用FPGA芯片扩展后的VF是需要映射到ASIC芯片中的VF的,因此,第三报文中可以携带“经FPGA芯片扩展后的VF需要映射到ASIC芯片中的VF”的信息,基于此,在执行S204时,FPGA所生成的第三报文需要发送给ASIC芯片。
可选的,如果第三报文中携带CPU的信息(如CPU需要访问的内存地址等),则将第三报文发送给CPU。例如,假设某项功能执行的过程中需要多次进行直接内存访问(directmemory access,DMA),那么,在执行S204时,FPGA所生成的第三报文中可以携带内存地址等,以说明FPGA所生成的第三报文需要返回给CPU。
例如,假设ASIC芯片具有的功能特性是RoCEv1特性,FPGA芯片具有的功能特性是RoCEv2相对RoCEv1升级后的特性,那么,当第三报文需要经过RoCEv1特性的处理,则确定第三报文需要被发往ASIC芯片;当第三报文还是RoCEv2功能范围内的信息且需要继续和CPU进行交互,那么确定第三报文需要被返回CPU。
S205:FPGA芯片对第三报文进行重组,生成第四报文,并将第四报文发送给ASIC芯片。ASIC芯片接收到第四报文之后,基于ASIC芯片的功能特性对第四报文进行处理。
执行S205之后,则本次报文传输流程结束。后续,可以执行ASIC芯片发出的报文的传输方法,例如如图11所示的方法。
S206:FPGA芯片对第三报文进行重组,生成第五报文,并将第五报文返回CPU。其中,第五报文中携带的目的地址是CPU接口的地址空间中的地址。
执行S206之后,则本次报文传输流程结束。
如图7所示,为本申请实施例提供的另一种报文传输方法的流程示意图。该方法可以应用于图4B所示的服务器。该方法中的步骤S301~S306可以分别作为上述S201~S206的具体实现方式。该方法可以包括以下步骤:
S301:CPU的业务处理模块生成第一报文,并经CPU中的接口向FPGA芯片(具体是想FPGA芯片中的CPU接口)发送第一报文。
S302:FPGA芯片的CPU接口接收到第一报文之后,将第一报文发送给报文解析模块。报文解析模块解析第一报文,得到指示信息。FPGA芯片的报文解析模块将指示信息发送至通道选择模块。
当指示信息用于指示不需要基于FPGA芯片的功能特性进行处理时,执行S303;
当指示信息用于指示需要基于FPGA芯片的功能特性进行处理时,执行S304。
S303:FPGA芯片的通道选择模块将第一报文发送至报文重组模块;报文重组模块将第一报文进行重组,生成第二报文,并将第二报文经FPGA芯片的ASIC接口发往ASIC芯片。ASIC芯片接收到第二报文之后,基于ASIC芯片的功能特性对第二报文进行处理。其中,第二报文中携带的目的地址是ASIC芯片的地址。
执行S303之后,则本次报文传输流程结束。后续,可以执行ASIC芯片发出的报文的传输方法,例如如图12所示的方法。在一个示例中,执行S301~S303的过程中,报文路径可以参考图8中的路径1。
S304:FPGA芯片的通道选择模块将第一报文发送至新特性模块,新特性模块基于FPGA的功能特性对第一报文进行处理,得到第三报文,并将第三报文发送至通道选择模块。
当通道选择模块确定需要将第三报文发往ASIC芯片时,执行S305;
当通道选择模块确定需要将第三报文返回CPU时,执行S306。
可选的,新特性模块在生成第三报文之前或过程中,如果确定需要将所生成的第三报文发往ASIC芯片,则可以在第三报文中携带一个指示信息,该指示信息可以是ASIC芯片的地址信息或者一个标志位,用于指示将第三报文发往ASIC芯片。该情况下,通道选择模块可以根据该指示信息,执行S305。相应的,如果确定需要将所生成的第三报文返回CPU,则可以在第三报文中携带另一个指示信息,该指示信息可以是CPU芯片的地址信息或者一个标志位,用于指示将第三报文返回CPU。该情况下,通道选择模块可以根据该指示信息,执行S306。
S305:FPGA芯片的通道选择模块将第三报文发往报文重组模块;报文重组模块对第三报文进行重组,生成第四报文,并将第四报文经FPGA芯片的ASIC接口发往ASIC芯片。ASIC芯片接收到第四报文之后,基于ASIC芯片的功能特性对第四报文进行处理。
执行S305之后,则本次报文传输流程结束。后续,可以执行ASIC芯片发出的报文的传输方法,例如如图12所示的方法。在一个示例中,执行S301、S303、S304和S305的过程中,报文路径可以参考图8中的路径2B。
S306:FPGA芯片的通道选择模块将第三报文发往报文重组模块;报文重组模块对第三报文进行重组,生成第五报文,并将第五报文经FPGA芯片的CPU接口返回至CPU。
执行S306之后,则本次报文传输流程结束。在一个示例中,执行S301、S303、S304和S306的过程中,报文路径可以参考图8中的路径2A。
如图9所示,为本申请实施例提供的一种报文传输方法的示意图。该方法具体描述了CPU发出的报文的传输方法。该方法可以应用于图3的b图中所示的逻辑拓扑。该方法可以包括如下步骤:
S401:CPU生成第一报文,并向FPGA芯片发送第一报文。
S402:FPGA芯片基于FPGA的功能特性对第一报文进行处理,得到第三报文。
若FPGA芯片确定需要将第三报文发送给ASIC芯片,则执行S403;
若FPGA芯片确定需要将第三报文返回给CPU,则执行S404。
S403:FPGA芯片对第三报文进行重组,生成第四报文,并将第四报文发送给ASIC芯片。ASIC芯片接收到第四报文之后,基于ASIC芯片的功能特性对第四报文进行处理。
执行S403之后,则本次报文传输流程结束。后续,可以执行ASIC芯片发出的报文的传输方法,例如如图11所示的方法。在一个示例中,执行S401~S403的过程中,报文路径可以参考图10中的路径3B。
S404:FPGA芯片对第三报文进行重组,生成第五报文,并将第五报文返回CPU。其中,第五报文中携带的目的地址是CPU接口的地址空间中的地址。
执行S404之后,则本次报文传输流程结束。在一个示例中,执行S401、S402和S404的过程中,报文路径可以参考图10中的路径3A。
如图11所示,为本申请实施例提供的一种报文传输方法的示意图。该方法具体描述了ASIC芯片发出的报文的传输方法。该方法可以包括如下步骤:
S501:ASIC芯片将处理后的报文(标记为第六报文)发送至FPGA芯片。
在一个示例中,结合上述图6所示的实施例,第六报文可以是ASIC芯片基于ASIC芯片的功能特性对第二报文或第四报文进行处理后得到的报文。
S502:FPGA芯片接收到第六报文之后,解析第六报文。根据解析第六报文得到的信息,如果确定需要将第六报文发往CPU,则执行S503;如果确定需要对第六报文进行进一步处理,则执行S504。
其中,一个报文需要发往CPU还是需要FPGA芯片进行进一步处理,可以是基于该报文的特征信息确定的。通过对FPGA芯片进行编程,可以使得FPGA芯片获知具有哪些特征信息的报文需要发往CPU,具有哪些特征信息的报文需要FPGA芯片进行进一步处理。
例如,假设ASIC芯片具有的功能特性是RoCEv1特性,FPGA芯片具有的功能特性是RoCEv2相对RoCEv1升级后的特性,那么,当第六报文需要增加RoCEv2相对RoCEv1升级后的特性时,确定需要对第六报文进行进一步处理;当第六报文不需要增加RoCEv2相对RoCEv1升级后的特性时,确定将第六报文发往CPU。
S503:FPGA芯片将第六报文进行重组,生成第七报文,并将第七报文发送给CPU。其中,第七报文中携带的目的地址是CPU接口的地址空间中的地址。
执行S503之后,则本次报文传输流程结束。
S504:FPGA芯片基于FPGA的功能特性对第七报文进行处理,得到第八报文。
如果确定需要将第八报文返回ASIC芯片,则执行S505;
如果确定需要将第八报文发往给CPU,则执行S506。
S505:FPGA芯片对第八报文进行重组,生成第九报文,并将第九报文返回ASIC芯片。ASIC芯片接收到第九报文之后,基于ASIC芯片的功能特性对第九报文进行处理。
执行S505之后,可以将ASIC芯片处理后得到的报文作为第六报文,并返回执行S501。
S506:FPGA芯片对第八报文进行重组,生成第十报文,并将第十报文发送给CPU。
执行S506之后,则本次报文传输流程结束。
如图12所示,为本申请实施例提供的另一种报文传输方法的流程示意图。该方法可以应用于图4B所示的服务器。该方法中的步骤S601~S606可以分别作为上述S501~S506的具体实现方式。该方法可以包括以下步骤:
S601:ASIC芯片将处理后的报文(标记为第六报文)发送至FPGA芯片。
S602:FPGA芯片的ASIC接口接收到第六报文之后,将第六报文发送至报文解析模块。报文解析模块解析第六报文,并将解析得到的信息发送至通道选择模块。
通道选择模块根据解析第六报文得到的信息,如果确定需要将第六报文发往CPU,则执行S603;如果确定需要将第六报文进行进一步处理,则执行S604。
S603:FPGA芯片的通道选择模块将第六报文发送至报文重组模块;报文重组模块将第六报文进行重组,生成第七报文,并将第七报文经FPGA芯片的CPU接口发送给CPU。其中,第七报文中携带的目的地址是CPU接口的地址空间中的地址。
执行S603之后,则本次报文传输流程结束。在一个示例中,执行S601~S603的过程中,报文路径可以参考图13中的路径4。
S604:FPGA芯片的通道选择模块将第六报文发送给新特性模块;新特性模块基于FPGA的功能特性对第六报文进行处理,得到第八报文,并将第八报文发送至通道选择模块。
FPGA芯片的通道选择模块如果确定需要将基于FPGA芯片的功能特性进行处理后的报文发往给CPU,则执行S605;如果确定需要将基于FPGA芯片的功能特性进行处理后的报文返回ASIC芯片时,执行S606。
S605:FPGA芯片的通道选择模块将第八报文发往报文重组模块;报文重组模块对第八报文进行重组,生成第九报文,并将第九报文经FPGA芯片的ASIC接口返回ASIC芯片。ASIC芯片接收到第九报文之后,基于ASIC芯片的功能特性对第九报文进行处理。
执行S605之后,可以将ASIC芯片处理后得到的报文作为第六报文,返回执行S601。在一个示例中,执行S601、S602、S604、S605的过程中,报文路径可以参考图13中的路径5A。
S606:FPGA芯片的通道选择模块将第八报文发往报文重组模块;报文重组模块对第八报文进行重组,生成第十报文,并将第十报文经FPGA芯片的CPU接口发送给CPU。
执行S606之后,则本次报文传输流程结束。在一个示例中,执行S601、S602、S604、S606的过程中,报文路径可以参考图13中的路径5B。
需要说明的是,上文中所描述的“新特性模块”的功能可以根据实际的业务应用场景对FPGA芯片进行编程得到。
在FPGA芯片的实现框图中,“新特性模块”用于扩展ASIC芯片的功能特性,本实施例主要介绍一种“新特性模块”的具体实施方案。本实施例是上文中所描述的实施例的进一步的业务行为,是基于本申请实施例提供的服务器架构(即如图2所示的服务器)下的一种相对具体的应用方案。
在公有云虚拟化应用场景中,物理网卡通常是ASIC芯片。物理网卡可以支持物理功能(physical function,PF)和虚拟功能(virtual function,VF)特性,每个VF都可以作为一个虚拟网卡,即每个VF可以作为一个虚拟的设备。虚拟出的网卡资源(即虚拟网卡)可以分配给用户使用,从而提升物理网卡的实际利用率,其中,在公有云的应用场景中,单张物理网卡的利用率往往不高,资源用不满。一个VF可以支持一个或多个网卡队列(Queue)。每个VF的带宽能力会受到物理网卡中网卡队列数量的影响。
以下,通过实施例一和实施例二对本申请实施例提供的技术方案进行具体说明:
实施例一
在传统技术方案下,物理网卡直接挂在CPU下。该情况下,CPU直接看到的是n个VF和m个网卡队列,如图14所示。其中,n和m均是大于或等于1的整数。然而,受物理网卡本身的设计制约,一张物理网卡所能虚拟出来的设备是有限的(例如受PCIe协议约束,只能支持最多256个VF),并且网卡队列的数量在物理网卡设计完成之后也就确定了,无法再做额外的扩展。因此,在传统技术方案下,一个物理网卡所能够扩展的VF的个数非常有限。
基于此,应用于本申请实施例提供的技术方案时,在物理网卡与CPU之间可以设置一个FPGA芯片,并通过对FPGA芯片进行编程,实现对物理网卡的VF和网卡队列的数量进行扩展,从而让更多的用户使用这张物理网卡。该情况下,FPGA中的新特性模块需要实现的功能特性即为实现对物理网卡的VF和网卡队列的数量进行扩展。此时,CPU就可以看到n+p个VF和m+q个网卡队列,如图15所示。p和q均是大于或等于1的整数。
在本实施例中,新特性模块所支持的功能特性具体可以包括:将FPGA资源映射至网卡资源。其中,FPGA资源包括呈现给CPU的n+p个VF和m+q个网卡队列,网卡资源包括n个VF和m个网卡队列。具体的,新特性模块可以用于将FPGA芯片呈现给CPU的n+p个VF中的每个VF,映射至ASIC芯片中的一个VF,并将FPGA芯片呈现给CPU的m+q个网卡队列中的每个网卡队列映射至ASIC芯片中的一个网卡队列。
其中,FPGA芯片呈现给CPU的一个或多个VF(或网卡队列)可以对应于ASIC芯片中的同一个VF(或网卡队列),一种对应关系(即映射关系)的示例可以如表3所示。
表3
FPGA芯片呈现给CPU的VF | ASIC芯片中的VF |
VF1~VFx | VF1 |
VFx+1~VFy | VF2 |
…… | …… |
VFz+1~VFt | VFn-1 |
VFt+1~VFn+p | VFn |
其中,1<x<y<z<t,n+p≥t+1。且x、y、z和t均为整数。根据表3,可以推理得到FPGA芯片呈现给CPU的呈现给CPU的m+q个网卡队列,与ASIC芯片中网卡队列的对应关系,此处不再赘述。
在一个示例中,新特性模块可以包括调度模块1和调度模块2。其中:
调度模块1用于根据“呈现给CPU的VF”与“ASIC芯片中的VF”之间的对应关系,将呈现给CPU的一个VF接收到的来自CPU的报文数据发送至ASIC芯片中相应的VF,以及将经ASIC芯片中的一个VF接收到的来自ASIC芯片的报文数据发送至呈现给CPU的相应的VF。例如,基于表3,调度模块1可以将来自VF1~VFx中的一个VF发送的报文数据发送给ASIC芯片中的VF1,如图16中的a图所示;或者,将ASIC芯片中的VF1发送的报文数据发送给VF1~VFx中的某一个VF。
调度模块2用于根据“呈现给CPU的网卡队列”与“ASIC芯片中的网卡队列”之间的对应关系,将经呈现给CPU的一个网卡队列接收到的来自CPU的报文数据发送至ASIC芯片中相应的网卡队列,以及将经ASIC芯片中的一个网卡队列接收到的来自网络的报文数据发送至呈现给CPU的相应的网卡队列。例如,调度模块2可以将来自网卡队列1~网卡队列y中的一个网卡队列发送的报文数据发送给ASIC芯片中的网卡队列1,如图16所示中的b图所示;或者,将ASIC芯片中的网卡队列1发送的报文数据发送给网卡队列1~网卡队列y中的某一个网卡队列。其中,1≤y<m+q,y是整数。
实施例二
在传统技术方案下,每个VF所支持的网卡队列的数量一旦设置好后通常不能再更改。
应用于本申请实施例提供的技术方案时,由于FPGA具备可编程性,因此VF和网卡队列之间的对应关系也可以随业务需要做调整。例如,在云计算的机房中,两台相同的硬件环境部署了不同的业务,其中,一个面向轻载场景(如文档编辑),另一个面向重载场景(如游戏应用),那么,对于轻载场景来首,每个VF只需要2个网卡队列即可,而重载场景每个VF需要4个网卡队列。该情况下,如果是固化的ASIC芯片,则一般不容易做出调整,而FPGA芯片可以通过修改逻辑代码,快速做出调整,从而让资源分配得到优化。这带来的一个典型的好处就是每个VF对应的网卡队列的数量成为了可变的,这打破了传统技术中每个VF最大可支配的(或可支持的)网卡队列的数量限制,有助于提高业务实现方式的灵活性,并且有助于提升业务数据带宽性能。
在本实施例中,新特性模块所支持的功能特性具体可以包括:将FPGA芯片的队列映射到网卡中。示例的,参见图17,物理网卡中的一个VF对应r个网卡队列(标记为网卡队列1~r),通过对FPGA芯片进行编程,可以实现将网卡队列中的每个网卡队列映射到FPGA芯片中的一个或多个网卡队列。例如,将物理网卡中的网卡队列1映射至FPGA芯片中的网卡队列1~u,将物理网卡中的网卡队列2映射至FPGA芯片中的网卡队列1~v,……将物理网卡中的网卡队列r映射至FPGA芯片中的网卡队列1~w。其中,r、u、v和w均为正整数。这样,通过对FPGA芯片进行编程,可以调整物理网卡中的网卡队列与FPGA芯片中的网卡队列之间的映射关系,从而调整每个VF支持的网卡队列。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对第二处理芯片进行功能模块的划分,例如可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图18所示,为本申请实施例提供的一种处理芯片180的结构示意图。在一个示例中,该处理芯片180可以是上文中所描述的第二处理芯片如FPGA芯片,用于执行上文中FPGA芯片所执行的步骤。该处理芯片180应用于服务器中,该服务器还包括处理器和第一处理芯片,处理芯片180分别与处理器和第一处理芯片连接,第一处理芯片是不可编程芯片,处理芯片180是可编程芯片,处理芯片180支持第二功能特性。该处理芯片可以包括:收发模块1801和处理模块1802。其中,收发模块1801,用于接收处理器或第一处理芯片发送的第一报文;处理模块1802,用于基于第二功能特性对第一报文进行处理,得到第二报文;收发模块1801还用于,向第一处理芯片或第一处理芯片发送第二报文。
例如,结合图6,收发模块1801可以用于执行S201中的发送步骤所对应的接收步骤,以及S205中的发送步骤和S206中的返回步骤;处理模块1802可以用于执行S204。
例如,结合图9,收发模块1801可以用于执行S401中的发送步骤所对应的接收步骤,以及S403中的发送步骤和S404中的返回步骤;处理模块1802可以用于执行S402。
例如,结合图11,收发模块1801可以用于执行S501中的发送步骤所对应的接收步骤,以及S503中的发送步骤、S505中的返回步骤和S506中的发送步骤;处理模块1802可以用于执行S504。
可选的,收发模块1801具体用于:如果第二报文中携带第一处理芯片的标识信息或者第一处理芯片所支持的功能特性的信息,则向第一处理芯片发送第二报文;如果第二报文中携带处理器的信息,则向处理器发送第二报文。
可选的,当第一报文是处理器发送的报文时,处理模块1802还用于,对第一报文进行解析,得到指示信息,指示信息用于指示是否需要基于第二功能特性对第一报文进行处理。该情况下,处理模块1802执行基于第二功能特性对第一报文进行处理,得到第二报文时,具体用于:当指示信息用于指示需要基于第二功能特性对第一报文进行处理时,基于第二功能特性对第一报文进行处理,得到第二报文。例如,结合图6,处理模块1802可以用于执行S202和S203。
可选的,收发模块1801还用于,当指示信息用于指示不需要基于第二功能特性对第一报文进行处理时,向第一处理芯片发送第一报文。
可选的,第一报文携带处理芯片180的逻辑地址,处理芯片180的逻辑地址与第一处理芯片的物理地址之间存在对应关系;处理模块1801还用于,当指示信息用于指示不需要基于第二功能特性对第一报文进行处理时,将第一报文携带的处理芯片180的逻辑地址替换为处理芯片180的逻辑地址所对应的第一处理芯片的物理地址,得到第三报文;收发模块1801具体用于,向第一处理芯片发送第三报文。
可选的,第一处理芯片是ASIC芯片,处理芯片180是FPGA芯片。
作为一个示例,结合图4A,上述收发模块1801可以通过图4A中的第一接口1032和/或第二接口1033实现,上述处理模块1802可以通过图4A中的处理模块1035实现。
上述提供的任一种处理芯片180的相关内容的解释以及有益效果的描述等均可参考上述方法实施例,此处不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机执行指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
以上所述,仅为本申请的具体实施方式。熟悉本技术领域的技术人员根据本申请提供的具体实施方式,可想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (16)
1.一种服务器,其特征在于,所述服务器包括处理器、第一处理芯片和第二处理芯片,所述第二处理芯片分别与所述处理器和所述第一处理芯片连接,所述第一处理芯片是不可编程芯片,所述第二处理芯片是可编程芯片,所述第二处理芯片支持第二功能特性;
所述处理器,用于与所述第二处理芯片之间进行报文交互;
所述第一处理芯片,用于与所述第二处理芯片之间进行报文交互;
所述第二处理芯片,用于基于所述第二功能特性对接收到的报文进行处理,并将处理后的报文发送给所述处理器或所述第一处理芯片。
2.根据权利要求1所述的服务器,其特征在于,
所述处理器具体用于,向所述第二处理芯片发送第一报文;
所述第二处理芯片具体用于,基于所述第二功能特性对所述第一报文进行处理,得到第二报文,并将所述第二报文发送给所述处理器或所述第一处理芯片。
3.根据权利要求2所述的服务器,其特征在于,所述第二处理芯片具体用于:
如果所述第二报文中携带所述第一处理芯片的标识信息,或者所述第一处理芯片所支持的功能特性的信息,则将所述第二报文发送给所述第一处理芯片;
如果所述第二报文中携带所述处理器的信息,则将所述第二报文发送给所述处理器。
4.根据权利要求1至3任一项所述的服务器,其特征在于,
所述第一处理芯片还用于,对接收到的第三报文进行处理,得到第四报文,并向所述第二处理芯片发送所述第四报文;
所述第二处理芯片具体用于:向所述处理器发送所述第四报文;或者,基于所述第二功能特性对所述第四报文进行处理,得到第五报文,并向所述处理器或所述第一处理芯片发送所述第五报文。
5.根据权利要求2或3所述的服务器,其特征在于,
所述处理器还用于,生成所述第一报文,所述第一报文包括指示信息,所述指示信息用于指示是否需要基于所述第二功能特性对所述第一报文进行处理;
所述第二处理芯片具体用于,当所述指示信息用于指示需要基于所述第二功能特性对所述第一报文进行处理时,基于所述第二功能特性对所述第一报文进行处理,得到所述第二报文;当所述指示信息用于指示不需要基于所述第二功能特性对所述第一报文进行处理时,向所述第一处理芯片发送所述第一报文。
6.根据权利要求5所述的服务器,其特征在于,所述第一报文携带所述第二处理芯片的逻辑地址,所述第二处理芯片的逻辑地址与所述第一处理芯片的物理地址之间存在对应关系;
所述第二处理芯片具体用于,当所述指示信息用于指示不需要基于所述第二功能特性对所述第一报文进行处理时,将所述第一报文携带的所述第二处理芯片的逻辑地址替换为所述第二处理芯片的逻辑地址所对应的所述第一处理芯片的物理地址,得到第六报文;向所述第一处理芯片发送所述第六报文;
所述第一处理芯片还用于,接收所述第六报文。
7.根据权利要求6所述的服务器,其特征在于,
所述处理器还用于,对所述服务器中的处理芯片进行识别,以获得所述第二处理芯片的逻辑地址与所述第一处理芯片的物理地址之间的对应关系。
8.根据权利要求1至7任一项所述的服务器,其特征在于,所述第一处理芯片是定制特定应用集成电路ASIC芯片,所述第二处理芯片是现场可编程门阵列FPGA芯片。
9.一种报文传输方法,其特征在于,应用于服务器中的第二处理芯片,所述服务器还包括处理器和第一处理芯片,所述第二处理芯片分别与所述处理器和所述第一处理芯片连接,所述第一处理芯片是不可编程芯片,所述第二处理芯片是可编程芯片,所述第二处理芯片支持第二功能特性;所述方法包括:
接收所述处理器或所述第一处理芯片发送的第一报文;
基于所述第二功能特性对所述第一报文进行处理,得到第二报文;
向所述第一处理芯片或所述第一处理芯片发送所述第二报文。
10.根据权利要求9所述的方法,其特征在于,所述向所述第一处理芯片或所述第一处理芯片发送所述第二报文,包括:
如果所述第二报文中携带所述第一处理芯片的标识信息或者所述第一处理芯片所支持的功能特性的信息,则向所述第一处理芯片发送所述第二报文;
如果所述第二报文中携带所述处理器的信息,则向所述处理器发送所述第二报文。
11.根据权利要求9或10所述的方法,其特征在于,当所述第一报文是所述处理器发送的报文时,在所述基于所述第二功能特性对所述第一报文进行处理,得到第二报文之前,所述方法还包括:
对所述第一报文进行解析,得到指示信息,所述指示信息用于指示是否需要基于所述第二功能特性对所述第一报文进行处理;
所述基于所述第二功能特性对所述第一报文进行处理,得到第二报文,包括:
当所述指示信息用于指示需要基于所述第二功能特性对所述第一报文进行处理时,基于所述第二功能特性对所述第一报文进行处理,得到第二报文。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
当所述指示信息用于指示不需要基于所述第二功能特性对所述第一报文进行处理时,向所述第一处理芯片发送所述第一报文。
13.根据权利要求12所述的方法,其特征在于,所述第一报文携带所述第二处理芯片的逻辑地址,所述第二处理芯片的逻辑地址与所述第一处理芯片的物理地址之间存在对应关系;
所述当所述指示信息用于指示不需要基于所述第二功能特性对所述第一报文进行处理时,向所述第一处理芯片发送所述第一报文,包括:
当所述指示信息用于指示不需要基于所述第二功能特性对所述第一报文进行处理时,将所述第一报文携带的所述第二处理芯片的逻辑地址替换为所述第二处理芯片的逻辑地址所对应的所述第一处理芯片的物理地址,得到第三报文;
向所述第一处理芯片发送所述第三报文。
14.根据权利要求9至13任一项所述的方法,其特征在于,所述第一处理芯片是定制特定应用集成电路ASIC芯片,所述第二处理芯片是现场可编程门阵列FPGA芯片。
15.一种处理芯片,其特征在于,包括存储器和处理器;所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以执行权利要求9至14任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包含指令,当所述指令在计算机上运行时,使得所述计算机执行权利要求9至14任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20183081.7A EP3767482A3 (en) | 2019-07-15 | 2020-06-30 | Packet transmission method and apparatus |
US16/928,396 US11226928B2 (en) | 2019-07-15 | 2020-07-14 | Packet transmission method and apparatus |
US17/556,322 US11726951B2 (en) | 2019-07-15 | 2021-12-20 | Packet transmission method and apparatus |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2019106376783 | 2019-07-15 | ||
CN201910637678 | 2019-07-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110837488A true CN110837488A (zh) | 2020-02-25 |
CN110837488B CN110837488B (zh) | 2022-10-11 |
Family
ID=69575258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910914078.7A Active CN110837488B (zh) | 2019-07-15 | 2019-09-25 | 报文传输方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11226928B2 (zh) |
EP (1) | EP3767482A3 (zh) |
CN (1) | CN110837488B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112799840A (zh) * | 2021-01-29 | 2021-05-14 | 北京百度网讯科技有限公司 | 用于传输数据的方法、装置、设备以及存储介质 |
CN112947971A (zh) * | 2021-03-26 | 2021-06-11 | 公安部第一研究所 | 一种fpga远程更新装置及方法 |
CN117640511A (zh) * | 2024-01-25 | 2024-03-01 | 无锡沐创集成电路设计有限公司 | 一种有线通信系统及其通信芯片、通信方法及介质 |
CN117785788A (zh) * | 2024-02-27 | 2024-03-29 | 南京达道电子科技有限公司 | 一种基于权重因子的片间通信方法及通信系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117313651B (zh) * | 2023-11-30 | 2024-02-09 | 沐曦集成电路(上海)有限公司 | 芯片功能特征设置方法、电子设备和介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030229685A1 (en) * | 2002-06-07 | 2003-12-11 | Jamie Twidale | Hardware abstraction interfacing system and method |
CN1527544A (zh) * | 2003-03-05 | 2004-09-08 | 华为技术有限公司 | 一种以太网交换机及其业务处理方法 |
JP2006268862A (ja) * | 2002-04-17 | 2006-10-05 | Fujitsu Ltd | Asicとプログラマブル・ロジックデバイスのコンカレント開発システム、開発プログラム及び開発方法 |
CN103503386A (zh) * | 2012-12-31 | 2014-01-08 | 华为技术有限公司 | 网络设备以及处理报文方法 |
US20170220499A1 (en) * | 2016-01-04 | 2017-08-03 | Gray Research LLC | Massively parallel computer, accelerated computing clusters, and two-dimensional router and interconnection network for field programmable gate arrays, and applications |
US20180150654A1 (en) * | 2016-11-30 | 2018-05-31 | Intel Corporation | Techniques for a Field Programmable Gate Array to Perform a Function for an Application Specific Integrated Circuit |
WO2018176238A1 (en) * | 2017-03-28 | 2018-10-04 | Intel Corporation | Technologies for hybrid field-programmable gate array-application-specific integrated circuit code acceleration |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9614772B1 (en) * | 2003-10-20 | 2017-04-04 | F5 Networks, Inc. | System and method for directing network traffic in tunneling applications |
US7921323B2 (en) * | 2004-05-11 | 2011-04-05 | L-3 Communications Integrated Systems, L.P. | Reconfigurable communications infrastructure for ASIC networks |
US8463934B2 (en) * | 2009-11-05 | 2013-06-11 | Rj Intellectual Properties, Llc | Unified system area network and switch |
US8942245B2 (en) * | 2010-11-22 | 2015-01-27 | Juniper Networks, Inc. | Methods and apparatus for centralized virtual switch fabric control |
US20130346985A1 (en) * | 2012-06-20 | 2013-12-26 | Microsoft Corporation | Managing use of a field programmable gate array by multiple processes in an operating system |
US9810729B2 (en) * | 2013-02-28 | 2017-11-07 | Advantest Corporation | Tester with acceleration for packet building within a FPGA block |
US20180048562A1 (en) * | 2016-08-09 | 2018-02-15 | Knuedge Incorporated | Network Processor Inter-Device Packet Source ID Tagging for Domain Security |
US10848430B2 (en) * | 2016-12-30 | 2020-11-24 | Intel Corporation | Flexible packet processing |
US10573056B2 (en) * | 2017-03-06 | 2020-02-25 | 3D Patents, Llc | Multi-view processing unit systems and methods |
US10986075B2 (en) * | 2017-11-02 | 2021-04-20 | Arista Networks, Inc. | Distributing packets across processing cores |
US11296921B2 (en) * | 2017-12-03 | 2022-04-05 | Intel Corporation | Out-of-band management of FPGA bitstreams |
-
2019
- 2019-09-25 CN CN201910914078.7A patent/CN110837488B/zh active Active
-
2020
- 2020-06-30 EP EP20183081.7A patent/EP3767482A3/en not_active Ceased
- 2020-07-14 US US16/928,396 patent/US11226928B2/en active Active
-
2021
- 2021-12-20 US US17/556,322 patent/US11726951B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006268862A (ja) * | 2002-04-17 | 2006-10-05 | Fujitsu Ltd | Asicとプログラマブル・ロジックデバイスのコンカレント開発システム、開発プログラム及び開発方法 |
US20030229685A1 (en) * | 2002-06-07 | 2003-12-11 | Jamie Twidale | Hardware abstraction interfacing system and method |
CN1527544A (zh) * | 2003-03-05 | 2004-09-08 | 华为技术有限公司 | 一种以太网交换机及其业务处理方法 |
CN103503386A (zh) * | 2012-12-31 | 2014-01-08 | 华为技术有限公司 | 网络设备以及处理报文方法 |
US20170220499A1 (en) * | 2016-01-04 | 2017-08-03 | Gray Research LLC | Massively parallel computer, accelerated computing clusters, and two-dimensional router and interconnection network for field programmable gate arrays, and applications |
US20180150654A1 (en) * | 2016-11-30 | 2018-05-31 | Intel Corporation | Techniques for a Field Programmable Gate Array to Perform a Function for an Application Specific Integrated Circuit |
WO2018176238A1 (en) * | 2017-03-28 | 2018-10-04 | Intel Corporation | Technologies for hybrid field-programmable gate array-application-specific integrated circuit code acceleration |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112799840A (zh) * | 2021-01-29 | 2021-05-14 | 北京百度网讯科技有限公司 | 用于传输数据的方法、装置、设备以及存储介质 |
CN112947971A (zh) * | 2021-03-26 | 2021-06-11 | 公安部第一研究所 | 一种fpga远程更新装置及方法 |
CN117640511A (zh) * | 2024-01-25 | 2024-03-01 | 无锡沐创集成电路设计有限公司 | 一种有线通信系统及其通信芯片、通信方法及介质 |
CN117640511B (zh) * | 2024-01-25 | 2024-03-29 | 无锡沐创集成电路设计有限公司 | 一种有线通信系统及其通信芯片、通信方法及介质 |
CN117785788A (zh) * | 2024-02-27 | 2024-03-29 | 南京达道电子科技有限公司 | 一种基于权重因子的片间通信方法及通信系统 |
CN117785788B (zh) * | 2024-02-27 | 2024-04-26 | 南京达道电子科技有限公司 | 一种基于权重因子的片间通信方法及通信系统 |
Also Published As
Publication number | Publication date |
---|---|
US11726951B2 (en) | 2023-08-15 |
US20220114138A1 (en) | 2022-04-14 |
EP3767482A2 (en) | 2021-01-20 |
EP3767482A3 (en) | 2021-04-14 |
US11226928B2 (en) | 2022-01-18 |
CN110837488B (zh) | 2022-10-11 |
US20210019282A1 (en) | 2021-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110837488B (zh) | 报文传输方法和装置 | |
US11507426B2 (en) | Resource pool management method and apparatus, resource pool control unit, and communications device | |
JP2019075109A (ja) | データ記憶装置及びブリッジ装置 | |
US11960430B2 (en) | Remote mapping method, apparatus and device for computing resources, and storage medium | |
US9569245B2 (en) | System and method for controlling virtual-machine migrations based on processor usage rates and traffic amounts | |
WO2017066944A1 (zh) | 一种存储设备访问方法、装置和系统 | |
US11336521B2 (en) | Acceleration resource scheduling method and apparatus, and acceleration system | |
US10621124B2 (en) | Method, device and computer program product for enabling SR-IOV functions in endpoint device | |
US20130332678A1 (en) | Shared physical memory protocol | |
US11843508B2 (en) | Methods and apparatus to configure virtual and physical networks for hosts in a physical rack | |
CN115858102A (zh) | 一种用于部署支持虚拟化硬件加速的虚拟机的方法 | |
CN105743808A (zh) | 一种适配QoS的方法和装置 | |
CN112905304A (zh) | 一种虚拟机间通信方法、装置、物理主机及介质 | |
CN112749111B (zh) | 访问数据的方法、计算设备和计算机系统 | |
US11132215B2 (en) | Techniques to facilitate out of band management in a virtualization environment | |
CN1976310B (zh) | 在网络中通过总线接口进行通信的方法 | |
US10785120B2 (en) | Systems and methods for extending link layer discovery over virtual Ethernet bridges | |
EP3188446B1 (en) | Remote resource access method and switching device | |
CN113127144B (zh) | 一种处理方法、装置及存储介质 | |
US11070515B2 (en) | Discovery-less virtual addressing in software defined networks | |
US20090182927A1 (en) | Direct Memory Move of Multiple Buffers Between Logical Partitions | |
KR102108526B1 (ko) | 서버 내 네트워크 지연시간 측정 방법 및 그 시스템 | |
WO2023051504A1 (zh) | 应用升级方法、装置、网卡和设备 | |
US12111779B2 (en) | Node identification allocation in a multi-tile system with multiple derivatives | |
WO2023040330A1 (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 |