CN108021518A - 一种数据交互方法和计算设备 - Google Patents
一种数据交互方法和计算设备 Download PDFInfo
- Publication number
- CN108021518A CN108021518A CN201711153859.6A CN201711153859A CN108021518A CN 108021518 A CN108021518 A CN 108021518A CN 201711153859 A CN201711153859 A CN 201711153859A CN 108021518 A CN108021518 A CN 108021518A
- Authority
- CN
- China
- Prior art keywords
- data packet
- bios
- bmc
- interaction area
- application
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Systems (AREA)
Abstract
本申请实施例提供一种数据交互方法和计算设备,涉及IT领域,能够提高BIOS与BMC的数据交互效率。其方法为:BIOS通过PCIE通道将第一应用的第一数据包拷贝到第一共享交互区域;BMC通过内存通道从第一共享交互区域获取第一数据包;BMC根据第一应用与第二应用的映射关系确定指示第二应用获取第一数据包。其中,BMC中包括虚拟的PCIE设备,虚拟的PCIE设备中包括I/O内存空间,I/O内存空间包括第一共享交互区域。本申请实施例应用于包含BIOS和BMC的数据传输场景。
Description
技术领域
本申请涉及信息技术(Information Technology,IT)领域,尤其涉及一种数据交互方法和计算设备。
背景技术
随着IT技术的加速发展,对服务器处理数据的效率和可靠性的要求越来越高,从而对服务器中的基本输入输出系统(Basic Input Output System,BIOS)和基板管理控制器(Baseboard Management Controller,BMC)间的数据交互的效率和可靠性要求也越来越高。其中,BIOS是一组固化到服务器中的只读存储器(Read-Only Memory,ROM)芯片上的程序,其保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序等。BMC通常被包含在模板或者被监控的设备的主电路板里。BMC可以利用传感器监控计算机、网络服务器、或其他硬件驱动设备的状态,并且通过独立的连接线路和系统管理员进行通信。BIOS在启动过程中可以通过基于硬件低速总线(Low Pin Count,LPC)和块传输(BlockTransfer,BT)协议的智能平台管理接口(Intelligent Platform Management Interface,IPMI)与BMC进行数据交互。但是,LPC最大传输值仅有16兆比特每秒(MB/s),一般应用于鼠标,键盘等一些低速外设,对于BIOS和BMC之间进行的大数据传输,例如系统管理BIOS(System Management BIOS,SMBIOS)数据,需对数据包进行拆包传输。
举例来说,电源接口为8针以上的服务器的SMBIOS数据通常可以达到110千字节(Kb)左右,此时需要将数据包拆成400多个IPMI消息才能传完,传输时间长,数据传输效率低。而且,由于IPMI是服务器/客户端(Client/Server,CS)架构,BMC作为服务端,BIOS作为客户端,不支持BMC主动发送消息给BIOS。当前BMC主动通知BIOS机制主要是采用通用输入/输出(General Purpose Input Output,GPIO)触发,由于GPIO管脚个数的限制,降低了BMC主动通知的灵活性。另外,BMC重启过程中无法接收BIOS上报的事件,会导致数据丢失。且BT只支持同步传输,不支持异步传输。
发明内容
本申请实施例提供一种数据交互方法和计算设备,能够提高BIOS与BMC的数据交互效率。
第一方面,本申请实施例提供一种数据交互方法,应用于包含BIOS和BMC的数据传输场景,BMC中包括虚拟的外部设备互连总线(PCI(Peripheral Component Interconnect)Express,PCIE)设备,虚拟的PCIE设备中包括输入/输出(input/output,I/O)内存空间,I/O内存空间包括第一共享交互区域;数据交互方法包括:BIOS通过PCI E通道将第一应用的第一数据包拷贝到第一共享交互区域;BMC通过内存通道从第一共享交互区域获取第一数据包;BMC根据第一应用与第二应用的映射关系确定指示第二应用获取第一数据包。由此,相比现有技术,BIOS基于LPC与BMC进行数据交互,而LPC最大传输值仅有16MB/s,导致数据包传输效率低。本申请实施例中,BIOS和BMC可以通过虚拟的PCIE设备进行数据交互,例如将第一应用的第一数据包传输给第二应用。由于虚拟的PCIE设备中的第一共享交互区域的大小是可设置的,例如可以为32M、64M、128M等,能够在短时间内传输更多、更大的数据包,从而能够提高BIOS与BMC的数据交互效率。
在一种可能的设计中,BMC通过内存通道从第一共享交互区域获取第一数据包包括:BMC在预设时间内从第一共享交互区域获取第一数据包。这样一来,BMC可以在预设时间内从第一共享交互区域获取第一数据包,能够解决BMC重启期间,BIOS拷贝数据包到第一共享交互区域时,BMC无法接收BIOS发送的数据包导致数据包丢失的问题。
在一种可能的设计中,BMC根据中断通知从第一共享交互区域获取第一数据包。当然,本申请不限于此。
在一种可能的设计中,BIOS通过PCIE通道将第一数据包拷贝到第一共享交互区域之前,该方法还包括:BIOS通过中央处理器(Central Processing Unit,CPU)与虚拟的PCIE设备之间的PCIE通道访问虚拟的PCIE设备的配置空间;BIOS通过访问虚拟的PCIE设备的配置空间确定第一共享交互区域的物理地址;BIOS通过第一共享交互区域的物理地址确定第一共享交互区域。可以理解的是,CPU可以与至少一个PCIE设备分别建立串行链路,对于每个PCIE设备来说,该PCIE设备与CPU之间的串行链路认为是一个PCIE通道。CPU上的PCIE管理模块可以控制PCIE通道,例如PCIE管理模块可以控制CPU与虚拟的PCIE设备的PCIE通道。由此BIOS可以通过CPU上的PCIE管理模块来访问虚拟的PCIE设备的配置空间,即BIOS可以通过PCIE通道访问虚拟的PCIE设备的配置空间。
在一种可能的设计中,BIOS通过PCIE通道将第一应用的第一数据包拷贝到第一共享交互区域之前,该方法还包括:BIOS确定第一共享交互区域是否超出最大容量限制;若BIOS确定第一共享交互区域未超出最大容量限制,BIOS将第一数据包拷贝到第一共享交互区域。若BIOS确定第一共享交互区域超出最大容量限制,BIOS可以等待第一共享交互区域空闲时,再将第一数据包拷贝到第一共享交互区域。
在一种可能的设计中,BIOS通过PCIE通道将第一应用的第一数据包拷贝到第一共享交互区域之前,该方法还包括:BIOS获取第二数据包的发送地址、接收地址以及第二数据包的长度,第二数据包的发送地址用于指示BIOS的内存单元,第二数据包的接收地址用于指示BMC的内存单元;虚拟的PCIE设备根据第二数据包的发送地址从BIOS的内存单元获取第二数据包,并根据第二数据包的接收地址将第二数据包发送至BMC的内存单元。由此,相比现有技术,BIOS基于LPC与BMC进行数据交互,而LPC最大传输值仅有16MB/s,导致数据包传输效率低。本申请实施例中,BIOS和BMC可以通过虚拟的PCIE设备进行数据交互,例如将第一应用的第二数据包传输给第二应用,第二数据包可以是直接内存存取(Direct MemoryAccess,DMA)数据包。由于虚拟的PCIE设备可以进行DMA传输,能够在短时间内传输数据量很大的DMA数据包,从而能够提高BIOS与BMC的数据交互效率。
在一种可能的设计中,第一数据包包括第二数据包的发送地址、接收地址以及第二数据包的长度。由此,当BMC解析第一数据包后,确定其中携带第二数据包的发送地址、接收地址以及第二数据包的长度等信息时,BMC可以确定第二数据包已传输完毕,从而可以从BMC侧的内存单元获取第二数据包。可选的,第一数据包可以不携带第二数据包的发送地址和接收地址。
在一种可能的设计中,I/O内存空间还包括第二共享交互区域,该方法还包括:BMC通过内存通道将第二应用的第三数据包拷贝到第二共享交互区域;BIOS通过PCIE通道从第二共享交互区域获取第三数据包;BIOS根据第二应用与第一应用的映射关系确定指示第一应用获取第三数据包。由此,相比现有技术,BIOS基于LPC与BMC进行数据交互,而LPC最大传输值仅有16MB/s,导致数据包传输效率低。本申请实施例中,BIOS和BMC可以通过虚拟的PCIE设备进行数据交互,例如将第二应用的第三数据包传输给第一应用。由于虚拟的PCIE设备中的第二共享交互区域的大小是可设置的,例如可以为32M、64M、128M等,从而能够在短时间内传输更多、更大的数据包,从而能够提高BIOS与BMC的数据交互效率。
在一种可能的设计中,BMC通过内存通道将第三数据包拷贝到第二共享交互区域之前,该方法还包括:BMC确定第二共享交互区域是否超出最大容量限制;若BMC确定第二共享交互区域未超出最大容量限制,BMC将第三数据包拷贝到第二共享交互区域。若BMC确定第二共享交互区域超出最大容量限制,BMC可以等待第二共享交互区域空闲时,再将第三数据包拷贝到第二共享交互区域。
在一种可能的设计中,该方法还包括:BMC获取第四数据包的发送地址、接收地址以及第四数据包的长度,第四数据包的发送地址用于指示BMC的内存单元,第四数据包的接收地址用于指示BIOS的内存单元;虚拟的PCI E设备根据第四数据包的发送地址从BMC的内存单元获取第四数据包,并根据第四数据包的接收地址将第四数据包发送至BIOS的内存单元。由此,相比现有技术,BIOS基于LPC与BMC进行数据交互,而LPC最大传输值仅有16MB/s,导致数据包传输效率低。本申请实施例中,BIOS和BMC可以通过虚拟的PCIE设备进行数据交互,例如将第二应用的第四数据包传输给第一应用,第四数据包可以为DMA数据包。由于虚拟的PCIE设备可以进行DMA传输,能够在短时间内传输数据量很大的DMA数据包,从而能够提高BIOS与BMC的数据交互效率。
在一种可能的设计中,第三数据包包括第四数据包的发送地址、接收地址以及第四数据包的长度。BIOS对第三数据包进行解析后,可以获取第四数据包的发送地址、接收地址以及第四数据包的长度,并将第四数据包的发送地址、接收地址以及第四数据包的长度写入虚拟的PCIE设备的配置空间中的寄存器,并可以启动DMA传输。
在一种可能的设计中,该方法还包括:BIOS采用同步通信方式或异步通信方式与BMC通信;其中,同步通信方式用于指示BIOS接收BMC发送的第一数据包的回复报文以及BMC接收BIOS发送的第三数据包的回复报文,异步通信方式用于指示BIOS不接收BMC发送的第一数据包的回复报文以及BMC不接收BIOS发送的第三数据包的回复报文。由此,BIOS通过异步通信方式与BMC通信时,无需等待数据包的回复报文,在进行大量数据报文交互时,可以不受BMC重启的影响,且BMC重启后可以处理BIOS异步发送的数据包。
第二方面,提供一种计算设备,包括BIOS和BMC,BMC中包括虚拟的PCIE设备,虚拟的PCIE设备中包括输入/输出I/O内存空间,I/O内存空间包括第一共享交互区域;,BIOS用于:通过PCIE通道将第一应用的第一数据包拷贝到第一共享交互区域;BMC用于:通过内存通道从第一共享交互区域获取第一数据包;BMC还用于:根据第一应用与第二应用的映射关系确定指示第二应用获取第一数据包。
在一种可能的设计中,BMC用于:在预设时间内从第一共享交互区域获取第一数据包;或根据中断通知从第一共享交互区域获取第一数据包。
在一种可能的设计中,BIOS还用于:通过中央处理器CPU与虚拟的PCIE设备之间的PCIE通道访问虚拟的PCIE设备的配置空间;通过访问虚拟的PCIE设备的配置空间确定第一共享交互区域的物理地址;通过第一共享交互区域的物理地址确定第一共享交互区域。
在一种可能的设计中,BIOS还用于:确定第一共享交互区域是否超出最大容量限制;若确定第一共享交互区域未超出最大容量限制,将第一数据包拷贝到第一共享交互区域。
在一种可能的设计中,BIOS还用于:获取第二数据包的发送地址、接收地址以及第二数据包的长度,第二数据包的发送地址用于指示BIOS的内存单元,第二数据包的接收地址用于指示BMC的内存单元;虚拟的PCIE设备用于:根据第二数据包的发送地址从BIOS的内存单元获取第二数据包,并根据第二数据包的接收地址将第二数据包发送至BMC的内存单元。
在一种可能的设计中,第一数据包包括第二数据包的发送地址、接收地址以及第二数据包的长度。
在一种可能的设计中,I/O内存空间还包括第二共享交互区域,BMC还用于:通过内存通道将第二应用的第三数据包拷贝到第二共享交互区域;BIOS还用于:通过PCIE通道从第二共享交互区域获取第三数据包;根据第二应用与第一应用的映射关系确定指示第一应用获取第三数据包。
在一种可能的设计中,BMC还用于:确定第二共享交互区域是否超出最大容量限制;若确定第二共享交互区域未超出最大容量限制,将第三数据包拷贝到第二共享交互区域。
在一种可能的设计中,BMC还用于:获取第四数据包的发送地址、接收地址以及第四数据包的长度,第四数据包的发送地址用于指示BMC的内存单元,第四数据包的接收地址用于指示BIOS的内存单元;虚拟的PCI E设备还用于:根据第四数据包的发送地址从BMC的内存单元获取第四数据包,并根据第四数据包的接收地址将第四数据包发送至BIOS的内存单元。
在一种可能的设计中,第三数据包包括第四数据包的发送地址、接收地址以及第四数据包的长度。
在一种可能的设计中,BIOS采用同步通信方式或异步通信方式与BMC通信;其中,同步通信方式用于指示BIOS接收BMC发送的第一数据包的回复报文以及BMC接收BIOS发送的第三数据包的回复报文,异步通信方式用于指示BIOS不接收BMC发送的第一数据包的回复报文以及BMC不接收BIOS发送的第三数据包的回复报文。
第二方面及其各种可能的实现方式的技术效果可以参见第一方面及其各种可能的实现方式的技术效果,此处不再赘述。
第三方面,本发明实施例提供了一种计算设备,该计算设备以芯片的产品形态存在,该计算设备的结构中包括处理器和存储器,该存储器用于与处理器耦合,保存该计算设备必要的程序指令和数据,该处理器用于执行存储器中存储的程序指令,使得该计算设备执行上述方法中计算设备的功能。
第四方面,本发明实施例提供了一种计算设备,该计算设备可以实现上述方法中计算设备所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。
在一种可能的设计中,该计算设备的结构中包括处理器和通信接口,该处理器被配置为支持该计算设备执行上述方法中相应的功能。该通信接口用于支持该计算设备与其他网元之间的通信。该计算设备还可以包括存储器,该存储器用于与处理器耦合,其保存该计算设备必要的程序指令和数据。
第五方面,本发明实施例提供一种计算设备可读存储介质,包括指令,当其在计算设备上运行时,使得计算设备执行第一方面提供的任意一种方法。
第六方面,本发明实施例提供了一种包含指令的程序产品,当其在计算设备上运行时,使得计算设备执行第一方面提供的任意一种方法。
由此,相比现有技术,BIOS基于LPC与BMC进行数据交互,而LPC最大传输值仅有16MB/s,导致数据包传输效率低。本申请实施例中,BIOS和BMC可以通过虚拟的PCIE设备进行数据交互,例如将第一应用的第一数据包传输给第二应用,或将第二应用的第三数据包传输给第一应用。由于虚拟的PCIE设备中的第一共享交互区域和第二共享交互区域的大小是可设置的,例如可以为32M、64M、128M等,能够在短时间内传输更多、更大的数据包,从而能够提高BIOS与BMC的数据交互效率。而且,本申请实施例中,BIOS和BMC可以通过虚拟的PCIE设备进行数据交互,例如将第一应用的第二数据包传输给第二应用,或将第二应用的第四数据包传输给第一应用。其中,第二数据包或第四数据包可以为DMA数据包。由于虚拟的PCIE设备可以进行DMA传输,从而能够在短时间内传输数据量很大的DMA数据包,从而能够提高BIOS与BMC的数据交互效率。
附图说明
图1为本申请实施例提供的一种架构示意图;
图2为本申请实施例提供的一种数据交互方法的信号交互示意图;
图3为本申请实施例提供的一种BMC的数据包处理机制示意图;
图4为本申请实施例提供的一种数据交互方法的信号交互示意图;
图5为本申请实施例提供的一种数据交互方法的信号交互示意图;
图6为本申请实施例提供的一种数据交互方法的信号交互示意图;
图7为本申请实施例提供的一种计算设备的结构示意图;
图8为本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
本申请实施例可以应用于BIOS和BMC的数据交互的场景中,包括小数据传输场景和大数据传输场景。小数据传输场景例如,BIOS接收BMC发送的系统启动项信息或柜级硬分区服务器交互的信息等;大数据传输场景例如,BIOS向BMC发送系统SMBIOS数据等。本申请实施例还可以应用于其他数据交互的场景中,例如操作系统(Operating System,OS)和BMC的数据交互场景,本申请不做限定。
如图1所示,本申请的架构可以包括BIOS和BMC。BIOS中包括第一应用和增强型直接内存存取(Enhanced Direct Memory Access,EDMA)控制模块。BMC中包括第二应用、EDMA管理模块以及虚拟的PCIE设备。BIOS和BMC可以通过虚拟的PCIE设备进行数据交互。虚拟的PCIE设备中包括I/O内存空间、配置空间以及DMA控制器。I/O内存空间包括第一共享交互区域和第二共享交互区域,第一共享交互区域和第二共享交互区域的大小可在初始化时进行设置,例如可以为32M、64M、128M等。I/O内存空间还可以包括DMA标示区域(图1中未示出)。配置空间用于存储第一共享交互区域、第二共享交互区域和DMA标示区域的物理地址,还可以包括用于触发DMA传输的寄存器。DMA控制器用于根据触发DMA传输的寄存器的取值进行DMA传输。BIOS和BMC中还可以包括更多或更少的功能模块,本申请实施例不做限定。
需要说明的是,BIOS中可以包括多种类型的应用,BMC中也可以包括多种类型的应用,且BIOS中的应用与BMC中的应用是一一对应的。本申请实施例以BIOS包括第一应用,BMC包括第二应用为例进行说明,第一应用与第二应用对应。
BIOS中的EDMA控制模块用于,将BIOS中的第一应用发送的第一数据包复制到虚拟的PCIE设备的第一共享交互区域,或从虚拟的PCIE设备的第二共享交互区域获取第二应用发送的第三数据包。BMC中的EDMA管理模块用于,将BMC中的第二应用发送的第三数据包复制到虚拟的PCIE设备的第二共享交互区域,或从第一共享交互区域获取第一应用发送的第一数据包。EDMA控制模块还可以预设BIOS中,用于存储DMA数据包的内存单元的物理地址。在BIOS侧,DMA数据包的物理地址即第一应用的第二数据包的发送地址,或第二应用的第四数据包的接收地址。EDMA管理模块还可以预设BMC中,用于存储DMA数据包的内存单元的物理地址。在BMC侧,DMA数据包的物理地址即第二应用的第四数据包的发送地址,或第一应用的第二数据包的接收地址。其中,第一应用发送的第一数据包小于第一应用发送的第二数据包,第二应用发送的第三数据包小于第二应用发送的第四数据包。举例来说,第一应用发送的第一数据包可以包括部件健康事件等信息。第一应用发送的第二数据包可以为DMA数据包,该DMA数据包可以包括SMBIOS数据等。第二应用发送的第三数据包可以包括系统启动项信息或柜级硬分区服务器交互的信息等。第二应用发送的第四数据包可以为DMA数据包,该DMA数据包可以包括BIOS的设置信息等。
本申请实施例提供一种数据交互方法,以第一应用向第二应用发送第一数据包为例进行说明,如图2所示,包括:
201、第一应用在BIOS上注册类型标识,第二应用在BMC上注册类型标识。
如图1所示,第一应用可以在EDMA控制模块上注册第一应用的类型标识,第二应用可以在EDMA管理模块上注册第二应用的类型标识。第一应用的类型标识和第二应用的类型标识可以相同,以指示第一应用和第二应用具有映射关系,当然,本申请不限于此。
202、BIOS访问虚拟的PCIE设备的配置空间。
BIOS可以通过CPU上的PCIE管理模块访问虚拟的PCIE设备的配置空间,获取第一共享交互区域的物理地址、第二共享交互区域的物理地址等。
需要说明的是,CPU可以与至少一个PCIE设备分别建立串行链路,对于每个PCIE设备来说,该PCIE设备与CPU之间的串行链路认为是一个PCIE通道。CPU上的PCIE管理模块可以控制PCIE通道,例如PCIE管理模块可以控制CPU与虚拟的PCIE设备的PCIE通道。由此BIOS可以通过CPU上的PCIE管理模块来访问虚拟的PCIE设备的配置空间,即BIOS可以通过PCIE通道访问虚拟的PCIE设备的配置空间。
BIOS可以根据第一共享交互区域的物理地址以及第二共享交互区域的物理地址访问第一共享交互区域以及第二共享交互区域。访问包括读取相应区域的数据以及向相应区域写入数据。
203、BIOS通过PCIE通道将第一应用的第一数据包拷贝到第一共享交互区域。
第一数据包包括第一应用的类型标识。
具体的,第一应用注册第一应用的类型标识后,EDMA控制模块可以将第一应用的类型标识添加到第一应用发送的第一数据包,并通过PCIE通道将该数据包拷贝到第一共享交互区域。
需要说明的是,第一数据包为至少一层业务协议封装的数据包,业务协议可以包括:传输控制协议(Transmission Control Protocol,TCP)/网际协议(InternetProtocol,IP)、互联网数据包交互协议(Internet work Packet Exchange,IPX)/序列分组交换协议(Sequenced Packet Exchange protocol,SPX)、网络基本输入输出系统用户扩展接口(NetBios Enhanced User Interface,NetBEUI)或自定义协议。业务协议还可以包括其他类型的通信协议,本申请不做限定。
在一种可能的设计中,EDMA控制模块将第一数据包拷贝到第一共享交互区域之前,可以确定第一共享交互区域是否超出最大容量限制;若第一共享交互区域未超出最大容量限制,EDMA控制模块可以将第一数据包拷贝到第一共享交互区域;若第一共享交互区域超出最大容量限制,EDMA控制模块可以通过触发相应的中断来通知EDMA管理模块对第一共享交互区域中的数据进行处理。可选的,EDMA控制模块可以每隔预设时间间隔确定第一共享交互区域是否超出最大容量。
在一种可能的设计中,若BIOS采用同步通信方式与BMC通信,BIOS可以接收BMC发送的第一数据包的回复报文。若BIOS采用异步通信方式与BMC通信,BIOS可以不接收BMC发送的第一数据包的回复报文。
另外,若本申请实施例应用在OS和BMC的数据交互场景中,则OS将第一数据包复制到第一共享交互区域之前,可以确定OS的预发送缓存区是否空闲,若确定OS的发送缓存区空闲,OS可以将第一数据包导入OS的预发送缓存区,以便将预发送缓存区中的数据包一并拷贝到第一共享交互区域。
204、BMC通过内存通道从第一共享交互区域获取第一数据包。
BMC可以包括系统内存、系统内存总线和控制芯片。系统内存通过系统内存总线接入控制芯片,形成内存通道。BMC的系统内存包括第一共享交互区域。
当BIOS在第一共享交互区域拷贝第一数据包完成时,可以发送中断通知,以便通知BMC获取第一数据包。BMC接收到中断通知后,可以通过内存通道从第一共享交互区域获取第一数据包。
在一种可能的设计中,BMC可以在预设时间内从第一共享交互区域获取第一数据包。例如,BMC可以每经过一个预设时间间隔就检测第一共享交互区域是否有BIOS拷贝的数据包;或BMC可以在预设时刻检测第一共享交互区域是否有BIOS拷贝的数据包。若BMC在预设时间内检测到第一共享交互区域有BIOS拷贝的数据包,例如第一数据包,BMC可以读取第一数据包。这样一来,BMC可以在预设时间内从第一共享交互区域获取第一数据包,能够解决BMC重启期间,BIOS拷贝数据包到第一共享交互区域时,BMC无法接收BIOS发送的数据包导致数据包丢失的问题。
205、BMC根据第一应用与第二应用的映射关系确定指示第二应用获取第一数据包。
需要说明的是,第一应用的类型标识虽然是第一应用向BIOS注册的,但是BIOS和BMC在设计阶段会协商应用注册的类型标识所代表的含义,因此BMC可以根据第一应用的类型标识确定第一数据包对应第二应用,进而可以根据第一应用与第二应用的映射关系确定指示第二应用获取第一数据包。
示例性的,如图3所示,EDMA管理模块根据第一应用的类型标识确定第一数据包对应第二应用时,可以将第一数据包拷贝到第二应用对应的内存区域,第二应用的检测模块(poll)可以在预设时间内检测第二应用对应的内存区域是否有数据包,若poll检测到第一数据包,可以将该数据包发送到第二应用的处理缓存中,并通知第二应用的处理模块对第一数据包进行处理。
由此,相比现有技术,BIOS基于LPC与BMC进行数据交互,而LPC最大传输值仅有16MB/s,导致数据包传输效率低。本申请实施例中,BIOS和BMC可以通过虚拟的PCIE设备进行数据交互,例如将第一应用的数据包传输给第二应用。由于虚拟的PCIE设备中的第一共享交互区域和第二共享交互区域的大小是可设置的,例如可以为32M、64M、128M等,能够在短时间内传输更多、更大的数据包,从而能够提高BIOS与BMC的数据交互效率。
本申请实施例提供一种数据交互方法,以第一应用向第二应用发送第二数据包和第一数据包为例进行说明,如图4所示,包括:
401、第一应用在BIOS上注册类型标识,第二应用在BMC上注册类型标识。
具体过程可以参考步骤201。
402、BIOS访问虚拟的PCIE设备的配置空间。
具体过程可以参考步骤202。
需要说明的是,BIOS还可以通过访问虚拟的PCIE设备的配置空间确定DMA标示区域的物理地址,并可以根据DMA标示区域的物理地址访问DMA标示区域。
403、BIOS获取第二数据包的发送地址、接收地址以及第二数据包的长度。
BIOS可以通过访问DMA标示区域,从而获取第二数据包的发送地址、接收地址以及第二数据包的长度。
其中,第二数据包可以为第一应用待发送的DMA数据包,第二数据包的发送地址用于指示BIOS的内存单元,第二数据包的接收地址用于指示BMC的内存单元。即第二数据包的发送地址为BIOS侧用于存储DMA数据包的内存单元的物理地址,第二数据包的接收地址为BMC侧用于存储DMA数据包的内存单元的物理地址。
404、BIOS将第二数据包的发送地址、接收地址以及第二数据包的长度写入虚拟的PCIE设备的配置空间中的寄存器。
可以理解的是,虚拟的PCIE设备的配置空间可以包括用于触发DMA传输的寄存器,寄存器可以包括DMA数据包的发送地址寄存器、DMA数据包的接收地址寄存器、DMA数据包的数据包长度寄存器以及是否启动DMA传输寄存器。
具体的,BIOS可以将第二数据包的发送地址写入DMA数据包的发送地址寄存器;将第二数据包的接收地址写入DMA数据包的接收地址寄存器;将第二数据包的长度写入DMA数据包的数据包长度寄存器;并将是否启动DMA传输寄存器的值置1,以启动DMA传输。
405、虚拟的PCIE设备从第二数据包的发送地址指示的内存单元获取第二数据包,并将第二数据包发送至第二数据包的接收地址指示的内存单元。
具体的,虚拟的PCIE设备中的DMA控制器确定是否启动DMA传输寄存器的值置1时,可以从第二数据包的发送地址指示的内存单元获取第二数据包,并将第二数据包发送至第二数据包的接收地址指示的内存单元。即DMA控制器从BIOS侧用于存储DMA数据包的内存单元获取第二数据包,并将第二数据包发送至BMC侧用于存储DMA数据包的内存单元。
虚拟的PCIE设备将第二数据包发送至BMC侧的内存单元完成时,可以通过中断通知或预设的标识向BIOS通知DMA传输结束。而后,BIOS可以根据第二数据包生成第一数据包,第一数据包用于通知BMC,第二数据包已经传输至BMC侧的DMA数据包的物理地址以及该第二数据包的相关参数。具体的,第一数据包可以包括第一应用的类型标识和第二数据包的长度(即第二数据包的大小)。
406、BIOS将第一数据包拷贝到第一共享交互区域。
具体过程可以参考步骤203。
407、BMC从第一共享交互区域获取第一数据包。
具体过程可以参考步骤204。
408、BMC根据第一数据包确定第二数据包,并从BMC侧的内存单元获取第二数据包。
当BMC解析第一数据包后,确定其中携带第二数据包的发送地址、接收地址以及第二数据包的长度等信息时,BMC可以确定第二数据包已传输完毕,从而EDMA管理模块可以从BMC侧的内存单元获取第二数据包。可选的,第一数据包可以不携带第二数据包的发送地址和接收地址。
在一种可能的设计中,可以将第二数据包拆分为多个数据包来传输,每个数据包的传输方式可以参考图2所示实施例中的第一数据包的传输方式。
由此,相比现有技术,BIOS基于LPC与BMC进行数据交互,而LPC最大传输值仅有16MB/s,导致数据包传输效率低。本申请实施例中,BIOS和BMC可以通过虚拟的PCIE设备进行数据交互,例如将第一应用的DMA数据包传输给第二应用。由于虚拟的PCIE设备可以进行DMA传输,从而能够在短时间内传输数据量很大的DMA数据包,从而能够提高BIOS与BMC的数据交互效率。
本申请实施例提供一种数据交互方法,如图5所示,以第二应用向第一应用发送第三数据包为例进行说明,包括:
501、第一应用在BIOS上注册类型标识,第二应用在BMC上注册类型标识。
具体过程可以参考步骤201。
502、BIOS访问虚拟的PCIE设备的配置空间。
具体过程可以参考步骤202。
503、BMC将第三数据包拷贝到第二共享交互区域。
第三数据包包括第二应用的类型标识。
具体的,第二应用注册第二应用的类型标识后,EDMA管理模块可以将第二应用的类型标识添加到第二应用发送的第三数据包,并将该数据包拷贝到第二共享交互区域。
需要说明的是,第三数据包为至少一层业务协议封装的数据包,业务协议可以包括以下协议:TCP/IP、IPX/SPX协议、NetBEUI协议以及自定义协议。业务协议还可以包括其他类型的通信协议,本申请不做限定。
在一种可能的设计中,若BMC采用同步通信方式与BIOS通信,BMC接收BIOS发送的第三数据包的回复报文。若BMC采用异步通信方式与BIOS通信,BMC不接收BIOS发送的第三数据包的回复报文。
504、BIOS通过PCIE通道从第二共享交互区域获取第三数据包。
在一种可能的设计中,BIOS可以每经过一个运行阶段就从第二共享交互区域获取第三数据包。例如,BIOS可以在每个运行阶段完成时检测第二共享交互区域是否有BMC拷贝的数据包;或BIOS可以在每个运行阶段开始时检测第二共享交互区域是否有BMC拷贝的数据包。若BIOS检测到第二共享交互区域有BMC拷贝的数据包,例如第三数据包,BIOS可以读取第三数据包。这样一来,BMC在BIOS启动前就可以将BIOS各个阶段需要的数据通过第三数据包发送到第二共享交互区域内,BIOS可以在每个运行阶段从第二共享交互区域获取所需的第三数据包,相比现有技术,BMC只能通过有限的GPIO通知BIOS,而GPIO管脚个数的限制,降低了BMC主动通知的灵活性,可能导致BIOS不能及时获取所需的数据包。本申请实施例能够解决BIOS不能及时获取所需的数据包的问题。
505、BIOS根据第二应用与第一应用的映射关系确定指示第一应用获取第三数据包。
在一种可能的设计中,EDMA控制模块确定第三数据包中携带的类型标识和第一应用的类型标识相同,从而可以根据第二应用与第一应用的映射关系将第三数据包发送给第一应用,以便第一应用对第三数据包进行处理。当然,本申请不限于此。
由此,相比现有技术,BIOS基于LPC与BMC进行数据交互,而LPC最大传输值仅有16MB/s,导致数据包传输效率低。本申请实施例中,BIOS和BMC可以通过虚拟的PCIE设备进行数据交互,例如将第二应用的第三数据包传输给第一应用。由于虚拟的PCIE设备中的第一共享交互区域和第二共享交互区域的大小是可设置的,例如可以为32M、64M、128M等,从而能够在短时间内传输更多、更大的数据包,从而能够提高BIOS与BMC的数据交互效率。
本申请实施例提供一种数据交互方法,如图6所示,以第二应用向第一应用发送第四数据包和第三数据包为例进行说明,包括:
601、第一应用在BIOS上注册类型标识,第二应用在BMC上注册类型标识。
具体过程可以参考步骤201。
602、BIOS访问虚拟的PCIE设备的配置空间。
具体过程可以参考步骤202。
603、BMC获取第四数据包的发送地址、接收地址以及第四数据包的长度。
其中,第四数据包可以为第二应用待发送的DMA数据包,第四数据包的发送地址即BMC侧用于存储DMA数据包的内存单元的物理地址,第四数据包的接收地址即BIOS侧用于存储DMA数据包的内存单元的物理地址。
604、BMC根据第四数据包生成第三数据包,并将第三数据包拷贝到第二共享交互区域。
需要说明的是,在发送第四数据包时,即启动DMA传输时,需要将第四数据包的相关内容写入虚拟的PCIE设备中的寄存器。由于BMC无法对虚拟的PCIE设备中的寄存器进行读写操作,因此,BMC可以根据第四数据包生成第三数据包,通过第三数据包通知BIOS启动DMA传输。其中,第三数据包包括第二应用的类型标识、第四数据包的发送地址、接收地址以及第四数据包的长度等内容。
605、BIOS通过PCIE通道从第二共享交互区域获取第三数据包。
可以理解的是,BMC可以将第三数据包复制到第二共享交互区域,BIOS可以从第二共享交互区域获取第三数据包。
BIOS对第三数据包进行解析后,可以获取第四数据包的发送地址、接收地址以及第四数据包的长度,并将第四数据包的发送地址、接收地址以及第四数据包的长度写入虚拟的PCIE设备的配置空间中的寄存器。
具体的,BIOS可以将第四数据包的发送地址写入DMA数据包的发送地址寄存器;将第四数据包的接收地址写入DMA数据包的接收地址寄存器;将第四数据包的长度写入DMA数据包的数据包长度寄存器;并将是否启动DMA传输寄存器的值置1,以启动DMA传输。
606、虚拟的PCIE设备从第四数据包的发送地址指示的内存单元获取第四数据包,并将第四数据包发送至第四数据包的接收地址指示的内存单元。
具体的,虚拟的PCIE设备中的DMA控制器确定是否启动DMA传输寄存器的值置1时,可以从第四数据包的发送地址指示的内存单元获取第四数据包,并将第四数据包发送至第四数据包的接收地址指示的内存单元。即DMA控制器从BMC侧的内存单元获取第四数据包,并将第四数据包发送至BIOS侧的内存单元。
607、BIOS获取第四数据包。
DMA传输完成时,可以通过预设的标识通知BIOS,以便从BIOS侧的内存单元获取第四数据包。
在一种可能的设计中,可以将第四数据包拆分为多个数据包来传输,每个数据包的传输方式可以参考图5所示实施例中的第三数据包的传输方式。
由此,相比现有技术,BIOS基于LPC与BMC进行数据交互,而LPC最大传输值仅有16MB/s,导致数据包传输效率低。本申请实施例中,BIOS和BMC可以通过虚拟的PCIE设备进行数据交互,例如将第二应用的DMA数据包传输给第一应用。由于虚拟的PCIE设备可以进行DMA传输,从而能够在短时间内传输数据量很大的DMA数据包,从而能够提高BIOS与BMC的数据交互效率。
上述主要从计算设备的角度对本申请实施例提供的方案进行了介绍。可以理解的是,计算设备为了实现上述功能,其包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的算法步骤,本申请能够以硬件或硬件和软件的结合形式来实现。某个功能究竟以硬件还是软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对计算设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图7示出了上述实施例中所涉及的计算设备7的一种可能的结构示意图,计算设备包括:BIOS 701、BMC 702和虚拟的PCIE设备703。BIOS 701用于支持计算设备执行图2中的过程201-203,图4中的过程401、402、403、404和406,图5中的过程501、502、504和505,图6中的过程601、602、605和607。BMC 702用于支持计算设备执行图2中的过程201、204和205,图4中的过程401、407和408,图5中的过程501和503,图6中的过程601、603和604。虚拟的PCIE设备703用于支持计算设备执行图4中的过程405,图6中的过程606。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在一种可能的设计中,计算设备可以通过图8中的计算设备(或系统)来实现。
图8所示为本申请实施例提供的计算设备示意图。计算设备800包括至少一个处理器801,通信总线802,存储器803以及至少一个通信接口804。
处理器801可以是一个通用CPU,微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信总线802可包括一通路,在上述组件之间传送信息。
通信接口804,计算设备用于与其他计算设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local area networks,WLAN)等。
存储器803可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算设备存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器803用于存储执行本申请方案的应用程序代码,例如BIOS,并由处理器801来控制执行。处理器801用于执行存储器803中存储的应用程序代码,从而实现本专利方法中的功能。
在具体实现中,作为一种实施例,处理器801可以包括一个或多个CPU,例如图8中的CPU0和CPU1。
在具体实现中,作为一种实施例,计算设备800可以包括多个处理器,例如图8中的处理器801和处理器807。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算设备程序指令)的处理核。
在具体实现中,作为一种实施例,计算设备800还可以包括输出设备805和输入设备806。输出设备805和处理器801通信,可以以多种方式来显示信息。例如,输出设备805可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备806和处理器801通信,可以以多种方式接受用户的输入。例如,输入设备806可以是鼠标、键盘、触摸屏设备、传感设备或被监控的设备等。其中,被监控的设备里可以包括BMC。
上述的计算设备800可以是一个通用计算设备或者是一个专用计算设备。在具体实现中,计算设备800可以是台式机、便携式电脑、网络服务器、掌上电脑(personaldigital assistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备或有图8中类似结构的设备。本申请实施例不限定计算设备800的类型。
结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM、闪存、ROM、EPROM、EEPROM、寄存器、硬盘、移动硬盘、只读光盘或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算设备可读介质中或者作为计算设备可读介质上的一个或多个指令或代码进行传输。计算设备可读介质包括计算设备存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算设备程序的任何介质。存储介质可以是通用或专用计算设备能够存取的任何可用介质。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。
Claims (17)
1.一种数据交互方法,应用于包含基本输入输出系统BIOS和基板管理控制器BMC的数据传输场景,所述BMC中包括虚拟的外部设备互连总线PCIE设备,所述虚拟的PCIE设备中包括输入/输出I/O内存空间,所述I/O内存空间包括第一共享交互区域;其特征在于,所述数据交互方法包括:
所述BIOS通过PCIE通道将第一应用的第一数据包拷贝到第一共享交互区域;
所述BMC通过内存通道从所述第一共享交互区域获取所述第一数据包;
所述BMC根据所述第一应用与第二应用的映射关系确定指示所述第二应用获取所述第一数据包。
2.根据权利要求1所述的方法,其特征在于,所述BIOS通过PCIE通道将第一应用的第一数据包拷贝到第一共享交互区域之前,所述方法还包括:
所述BIOS通过中央处理器CPU与所述虚拟的PCIE设备之间的PCIE通道访问所述虚拟的PCIE设备的配置空间;
所述BIOS通过访问所述虚拟的PCIE设备的配置空间确定所述第一共享交互区域的物理地址;
所述BIOS通过所述第一共享交互区域的物理地址确定所述第一共享交互区域。
3.根据权利要求1或2所述的方法,其特征在于,所述BIOS通过PCIE通道将第一应用的第一数据包拷贝到第一共享交互区域之前,所述方法还包括:
所述BIOS确定所述第一共享交互区域是否超出最大容量限制;
若所述BIOS确定所述第一共享交互区域未超出最大容量限制,所述BIOS将所述第一数据包拷贝到第一共享交互区域。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述BIOS通过PCIE通道将第一应用的第一数据包拷贝到第一共享交互区域之前,所述方法还包括:
所述BIOS获取第二数据包的发送地址、接收地址以及所述第二数据包的长度,所述第二数据包的发送地址用于指示所述BIOS的内存单元,所述第二数据包的接收地址用于指示所述BMC的内存单元;
所述虚拟的PCIE设备根据所述第二数据包的发送地址从所述BIOS的内存单元获取所述第二数据包,并根据所述第二数据包的接收地址将所述第二数据包发送至所述BMC的内存单元。
5.根据权利要求1-4任一项所述的方法,所述I/O内存空间还包括第二共享交互区域,其特征在于,所述方法还包括:
所述BMC通过所述内存通道将所述第二应用的第三数据包拷贝到所述第二共享交互区域;
所述BIOS通过所述PCIE通道从所述第二共享交互区域获取所述第三数据包;
所述BIOS根据所述第二应用与所述第一应用的映射关系确定指示所述第一应用获取所述第三数据包。
6.根据权利要求5所述的方法,其特征在于,所述BMC通过所述内存通道将所述第二应用的第三数据包拷贝到所述第二共享交互区域之前,所述方法还包括:
所述BMC确定所述第二共享交互区域是否超出最大容量限制;
若所述BMC确定所述第二共享交互区域未超出最大容量限制,所述BMC将所述第三数据包拷贝到第二共享交互区域。
7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
所述BMC获取第四数据包的发送地址、接收地址以及所述第四数据包的长度,所述第四数据包的发送地址用于指示所述BMC的内存单元,所述第四数据包的接收地址用于指示所述BIOS的内存单元;
所述虚拟的PCIE设备根据所述第四数据包的发送地址从所述BMC的内存单元获取所述第四数据包,并根据所述第四数据包的接收地址将所述第四数据包发送至所述BIOS的内存单元。
8.根据权利要求5-7任一项所述的方法,其特征在于,所述方法还包括:
所述BIOS采用同步通信方式或异步通信方式与所述BMC通信;
其中,所述同步通信方式用于指示所述BIOS接收所述BMC发送的所述第一数据包的回复报文以及所述BMC接收所述BIOS发送的所述第三数据包的回复报文,所述异步通信方式用于指示所述BIOS不接收所述BMC发送的所述第一数据包的回复报文以及所述BMC不接收所述BIOS发送的所述第三数据包的回复报文。
9.一种计算设备,包括基本输入输出系统BIOS和基板管理控制器BMC,所述BMC中包括虚拟的外部设备互连总线PCIE设备,所述虚拟的PCIE设备中包括输入/输出I/O内存空间,所述I/O内存空间包括第一共享交互区域;其特征在于,所述BIOS用于:
通过PCIE通道将第一应用的第一数据包拷贝到第一共享交互区域;
所述BMC用于:通过内存通道从所述第一共享交互区域获取所述第一数据包;
所述BMC还用于:根据所述第一应用与第二应用的映射关系确定指示所述第二应用获取所述第一数据包。
10.根据权利要求9所述的计算设备,其特征在于,所述BIOS还用于:
通过中央处理器CPU与所述虚拟的PCIE设备之间的PCIE通道访问所述虚拟的PCIE设备的配置空间;
通过访问所述虚拟的PCIE设备的配置空间确定所述第一共享交互区域的物理地址;
通过所述第一共享交互区域的物理地址确定所述第一共享交互区域。
11.根据权利要求9或10所述的计算设备,其特征在于,所述BIOS还用于:
确定所述第一共享交互区域是否超出最大容量限制;
若确定所述第一共享交互区域未超出最大容量限制,将所述第一数据包拷贝到第一共享交互区域。
12.根据权利要求9-11任一项所述的计算设备,其特征在于,所述BIOS还用于:
获取第二数据包的发送地址、接收地址以及所述第二数据包的长度,所述第二数据包的发送地址用于指示所述BIOS的内存单元,所述第二数据包的接收地址用于指示所述BMC的内存单元;
所述虚拟的PCIE设备用于:根据所述第二数据包的发送地址从所述BIOS的内存单元获取所述第二数据包,并根据所述第二数据包的接收地址将所述第二数据包发送至所述BMC的内存单元。
13.根据权利要求9-12任一项所述的计算设备,所述I/O内存空间还包括第二共享交互区域,其特征在于,所述BMC还用于:
通过所述内存通道将所述第二应用的第三数据包拷贝到所述第二共享交互区域;
所述BIOS还用于:通过所述PCIE通道从所述第二共享交互区域获取所述第三数据包;
根据所述第二应用与所述第一应用的映射关系确定指示所述第一应用获取所述第三数据包。
14.根据权利要求13所述的计算设备,其特征在于,所述BMC还用于:
确定所述第二共享交互区域是否超出最大容量限制;
若确定所述第二共享交互区域未超出最大容量限制,将所述第三数据包拷贝到第二共享交互区域。
15.根据权利要求13或14所述的计算设备,其特征在于,所述BMC还用于:
获取第四数据包的发送地址、接收地址以及所述第四数据包的长度,所述第四数据包的发送地址用于指示所述BMC的内存单元,所述第四数据包的接收地址用于指示所述BIOS的内存单元;
所述虚拟的PCIE设备还用于:根据所述第四数据包的发送地址从所述BMC的内存单元获取所述第四数据包,并根据所述第四数据包的接收地址将所述第四数据包发送至所述BIOS的内存单元。
16.根据权利要求13-15任一项所述的计算设备,其特征在于,
所述BIOS采用同步通信方式或异步通信方式与所述BMC通信;
其中,所述同步通信方式用于指示所述BIOS接收所述BMC发送的所述第一数据包的回复报文以及所述BMC接收所述BIOS发送的所述第三数据包的回复报文,所述异步通信方式用于指示所述BIOS不接收所述BMC发送的所述第一数据包的回复报文以及所述BMC不接收所述BIOS发送的所述第三数据包的回复报文。
17.一种程序产品,所述程序产品包括指令;当所述指令被计算设备运行时,计算设备执行权利要求1至8任一项所述的数据交互方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711153859.6A CN108021518B (zh) | 2017-11-17 | 2017-11-17 | 一种数据交互方法和计算设备 |
PCT/CN2018/087408 WO2019095655A1 (zh) | 2017-11-17 | 2018-05-18 | 一种数据交互方法和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711153859.6A CN108021518B (zh) | 2017-11-17 | 2017-11-17 | 一种数据交互方法和计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108021518A true CN108021518A (zh) | 2018-05-11 |
CN108021518B CN108021518B (zh) | 2019-11-29 |
Family
ID=62080754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711153859.6A Active CN108021518B (zh) | 2017-11-17 | 2017-11-17 | 一种数据交互方法和计算设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108021518B (zh) |
WO (1) | WO2019095655A1 (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108965382A (zh) * | 2018-05-31 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种基于bmc的文件传输方法、装置、设备及介质 |
CN109471770A (zh) * | 2018-09-11 | 2019-03-15 | 华为技术有限公司 | 一种系统管理方法和装置 |
WO2019095655A1 (zh) * | 2017-11-17 | 2019-05-23 | 华为技术有限公司 | 一种数据交互方法和计算设备 |
CN110781517A (zh) * | 2019-10-31 | 2020-02-11 | 山东超越数控电子股份有限公司 | 一种bios与bmc沟通实现数据交互的方法 |
CN111190749A (zh) * | 2019-12-24 | 2020-05-22 | 曙光信息产业(北京)有限公司 | 服务器以及bmc和bios之间数据交换的方法 |
CN111666236A (zh) * | 2020-06-13 | 2020-09-15 | 曙光信息产业(北京)有限公司 | 服务器和通信方法 |
CN112130910A (zh) * | 2020-08-24 | 2020-12-25 | 中科可控信息产业有限公司 | 设备启动方法、装置、计算机设备和存储介质 |
CN113010303A (zh) * | 2021-02-02 | 2021-06-22 | 新华三信息技术有限公司 | 一种处理器间的数据交互方法、装置以及服务器 |
CN113238863A (zh) * | 2021-05-13 | 2021-08-10 | 浪潮商用机器有限公司 | 一种bmc与bios的数据交互方法、装置及系统 |
CN113626214A (zh) * | 2021-07-16 | 2021-11-09 | 浪潮电子信息产业股份有限公司 | 一种信息传输方法、系统、电子设备及存储介质 |
CN114020665A (zh) * | 2021-11-03 | 2022-02-08 | 联想(北京)有限公司 | 一种信息传输方法、装置及传输系统 |
WO2022063185A1 (zh) * | 2020-09-27 | 2022-03-31 | 中兴通讯股份有限公司 | 数据采集、上报方法、系统、芯片、cpu及存储介质 |
CN114579329A (zh) * | 2022-01-30 | 2022-06-03 | 阿里巴巴(中国)有限公司 | 应用于服务器的数据处理方法及装置 |
WO2022160893A1 (zh) * | 2021-01-29 | 2022-08-04 | Oppo广东移动通信有限公司 | 存储区域共享方法及电子设备 |
WO2022222517A1 (zh) * | 2021-04-23 | 2022-10-27 | 华为技术有限公司 | 一种管理系统、处理芯片、装置、设备及方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI760036B (zh) * | 2020-12-30 | 2022-04-01 | 技嘉科技股份有限公司 | 透過http/https的伺服器韌體的資料傳輸方法及伺服器 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398787A (zh) * | 2007-09-28 | 2009-04-01 | 英特尔公司 | 虚拟化环境中地址转换缓存操作和i/o高速缓存性能的改善 |
CN101520738A (zh) * | 2008-02-27 | 2009-09-02 | 黄歆媚 | 基于设备访存管理技术的虚拟机系统及其设备访问方法 |
CN101944013A (zh) * | 2008-12-31 | 2011-01-12 | 英特尔公司 | 用于执行安全嵌入式容器的处理器扩展 |
CN102169439A (zh) * | 2010-02-26 | 2011-08-31 | 英业达股份有限公司 | 数据传输系统 |
CN104052621A (zh) * | 2013-03-15 | 2014-09-17 | 英特尔公司 | 用于跨快速外围组件互连(pcie)段的平台管理消息的方法和系统 |
TW201529991A (zh) * | 2014-01-16 | 2015-08-01 | Hon Hai Prec Ind Co Ltd | 風扇控制系統及方法 |
CN105404597A (zh) * | 2015-10-21 | 2016-03-16 | 华为技术有限公司 | 数据传输的方法、设备及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679543A (zh) * | 2013-11-29 | 2015-06-03 | 英业达科技有限公司 | 电子装置及其操作方法 |
CN106569904A (zh) * | 2015-10-09 | 2017-04-19 | 中兴通讯股份有限公司 | 一种信息存储方法和装置、及服务器 |
US9940143B2 (en) * | 2016-03-17 | 2018-04-10 | Dell Products, L.P. | Using peripheral component interconnect express vendor-defined message (PCIe-VDM) and inter-integrated circuit (I2C) transport for network communications |
CN108021518B (zh) * | 2017-11-17 | 2019-11-29 | 华为技术有限公司 | 一种数据交互方法和计算设备 |
-
2017
- 2017-11-17 CN CN201711153859.6A patent/CN108021518B/zh active Active
-
2018
- 2018-05-18 WO PCT/CN2018/087408 patent/WO2019095655A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398787A (zh) * | 2007-09-28 | 2009-04-01 | 英特尔公司 | 虚拟化环境中地址转换缓存操作和i/o高速缓存性能的改善 |
CN101520738A (zh) * | 2008-02-27 | 2009-09-02 | 黄歆媚 | 基于设备访存管理技术的虚拟机系统及其设备访问方法 |
CN101944013A (zh) * | 2008-12-31 | 2011-01-12 | 英特尔公司 | 用于执行安全嵌入式容器的处理器扩展 |
CN102169439A (zh) * | 2010-02-26 | 2011-08-31 | 英业达股份有限公司 | 数据传输系统 |
CN104052621A (zh) * | 2013-03-15 | 2014-09-17 | 英特尔公司 | 用于跨快速外围组件互连(pcie)段的平台管理消息的方法和系统 |
TW201529991A (zh) * | 2014-01-16 | 2015-08-01 | Hon Hai Prec Ind Co Ltd | 風扇控制系統及方法 |
CN105404597A (zh) * | 2015-10-21 | 2016-03-16 | 华为技术有限公司 | 数据传输的方法、设备及系统 |
Non-Patent Citations (1)
Title |
---|
程奇: ""基于Intel Nehalem-ep服务器主板的设计与研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019095655A1 (zh) * | 2017-11-17 | 2019-05-23 | 华为技术有限公司 | 一种数据交互方法和计算设备 |
CN108965382B (zh) * | 2018-05-31 | 2021-06-29 | 郑州云海信息技术有限公司 | 一种基于bmc的文件传输方法、装置、设备及介质 |
CN108965382A (zh) * | 2018-05-31 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种基于bmc的文件传输方法、装置、设备及介质 |
US11431782B2 (en) | 2018-05-31 | 2022-08-30 | Zhengzhou Yunhai Information Technology Co., Ltd. | Method, apparatus, and device for transmitting file based on BMC, and medium |
CN109471770A (zh) * | 2018-09-11 | 2019-03-15 | 华为技术有限公司 | 一种系统管理方法和装置 |
CN110781517A (zh) * | 2019-10-31 | 2020-02-11 | 山东超越数控电子股份有限公司 | 一种bios与bmc沟通实现数据交互的方法 |
CN110781517B (zh) * | 2019-10-31 | 2023-11-17 | 超越科技股份有限公司 | 一种bios与bmc沟通实现数据交互的方法 |
CN111190749A (zh) * | 2019-12-24 | 2020-05-22 | 曙光信息产业(北京)有限公司 | 服务器以及bmc和bios之间数据交换的方法 |
CN111666236A (zh) * | 2020-06-13 | 2020-09-15 | 曙光信息产业(北京)有限公司 | 服务器和通信方法 |
CN112130910A (zh) * | 2020-08-24 | 2020-12-25 | 中科可控信息产业有限公司 | 设备启动方法、装置、计算机设备和存储介质 |
WO2022063185A1 (zh) * | 2020-09-27 | 2022-03-31 | 中兴通讯股份有限公司 | 数据采集、上报方法、系统、芯片、cpu及存储介质 |
WO2022160893A1 (zh) * | 2021-01-29 | 2022-08-04 | Oppo广东移动通信有限公司 | 存储区域共享方法及电子设备 |
CN113010303A (zh) * | 2021-02-02 | 2021-06-22 | 新华三信息技术有限公司 | 一种处理器间的数据交互方法、装置以及服务器 |
WO2022222517A1 (zh) * | 2021-04-23 | 2022-10-27 | 华为技术有限公司 | 一种管理系统、处理芯片、装置、设备及方法 |
CN113238863A (zh) * | 2021-05-13 | 2021-08-10 | 浪潮商用机器有限公司 | 一种bmc与bios的数据交互方法、装置及系统 |
CN113626214A (zh) * | 2021-07-16 | 2021-11-09 | 浪潮电子信息产业股份有限公司 | 一种信息传输方法、系统、电子设备及存储介质 |
CN113626214B (zh) * | 2021-07-16 | 2024-02-09 | 浪潮电子信息产业股份有限公司 | 一种信息传输方法、系统、电子设备及存储介质 |
CN114020665A (zh) * | 2021-11-03 | 2022-02-08 | 联想(北京)有限公司 | 一种信息传输方法、装置及传输系统 |
CN114579329A (zh) * | 2022-01-30 | 2022-06-03 | 阿里巴巴(中国)有限公司 | 应用于服务器的数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2019095655A1 (zh) | 2019-05-23 |
CN108021518B (zh) | 2019-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108021518B (zh) | 一种数据交互方法和计算设备 | |
US11500810B2 (en) | Techniques for command validation for access to a storage device by a remote client | |
US9311110B2 (en) | Techniques to initialize from a remotely accessible storage device | |
JP6871957B2 (ja) | エミュレートされたエンドポイントコンフィグレーション | |
TWI239187B (en) | System and method for managing and validating remote keys which correspond to outstanding data transactions | |
TWI244288B (en) | Network interface and protocol | |
CN113867993B (zh) | 虚拟化的rdma方法、系统、存储介质及电子设备 | |
WO2018000195A1 (zh) | 一种报文传输方法、虚拟交换机及服务器 | |
CN104915302B (zh) | 数据传输处理方法和数据传输器 | |
CN112099916B (zh) | 虚拟机数据的迁移方法、装置、计算机设备及存储介质 | |
US10585689B1 (en) | Shared memory interface for application processes | |
CN115002840A (zh) | 设备数据传输方法、装置、电子设备及存储介质 | |
CN110007863A (zh) | 一种基于lib库接口的存储服务访问方法及相关装置 | |
CN116974736A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211224 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee after: Super fusion Digital Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |