快速输入输出报文处理方法、装置及系统与流程

文档序号:17748207发布日期:2019-05-24 20:47阅读:289来源:国知局
快速输入输出报文处理方法、装置及系统与流程

本发明实施例涉及通信技术,尤其涉及一种适用于多虚拟机系统互连的快速输入输出报文处理方法、装置及系统。



背景技术:

快速输入输出(英文:Rapid Input/Output,简称:RapidIO)是一种高可靠性、高性能的互连技术,包括并行RapidIO和串行RapidIO,并行RapidIO和串行RapidIO具有相同的编程模型、事务处理和寻址机制。RapidIO互连架构是一个开放的标准,可用于连接多处理器、存储器、网络设备上的存储器映射I/O器件、存储子系统和通用计算平台,以提高系统的软硬件接口处理性能。

RapidIO协议分为三层:逻辑层、传输层和物理层,其中逻辑层定义了操作协议和相应的包格式;传输层定义了包交换、路由和寻址机制;物理层定义了电气特性、链路控制和纠错重传等。RapidIO是一种基于包交换的互连技术,RapidIO数据报文由包头、载荷(英文:payload)和循环冗余校验(英文:Cyclic Redundancy Check,简称:CRC)三部分组成。RapidIO报文类型包括IO类型和包类型,在包头部分的格式类型(Format Type,简称:Ftype)字段定义。IO类型报文用于直接读写目的器件的存储器,基于统一的地址窗口映射方式进行IO数据的收发,包括:读操作(NREAD),写操作(NWRITE),带响应写操作(NWRITE_R),流写(SWRITE)等。包类型报文,主要用于消息传递(Message Passing),通过邮箱号(mbox)确定数据在目的器件中的位置,根据接收到的报文的邮箱号把数据保存到对应的缓冲区,使用统一的地址接收空间,包括:消息(Message),数据流(Data Streaming),门铃(Doorbell)等。

随着虚拟机(英文:Virtual Machine,简称:VM)应用的不断发展,多虚拟机系统由于其灵活性广泛存在,可以为不同的虚拟机配置不同的优先级、访问权限、IO带宽、服务质量(英文:Quality of Service,简称:QoS)等,以灵活处理不同的事务。

现有技术中,对于多虚拟机系统而言,RapidIO报文的传输是物理资源共享的,不能灵活处理不同配置的虚拟机的RapidIO报文传输,影响RapidIO报文在多虚拟机系统中的处理效率。



技术实现要素:

本发明实施例提供一种快速输入输出报文处理方法、装置及系统,以解决现有技术中RapidIO不能灵活处理不同配置的虚拟机的RapidIO报文传输,影响RapidIO报文在多虚拟机系统中的处理效率的问题。

第一方面,本发明实施例提供一种快速输入输出RapidIO报文处理方法,包括:

RapidIO报文发送装置获取本地虚拟机待发送的RapidIO报文;

所述RapidIO报文发送装置采用与所述本地虚拟机对应的虚拟RapidIO通道向对端发送所述RapidIO报文。

结合第一方面,在第一方面的第一种可能的实现方式中,所述RapidIO报文发送装置采用所述本地虚拟机对应的虚拟RapidIO通道向对端发送所述RapidIO报文之前,还包括:

所述RapidIO报文发送装置为所述本地虚拟机分配对应的虚拟RapidIO通道。

结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述RapidIO报文发送装置为所述本地虚拟机分配对应的虚拟RapidIO通道,包括:

所述RapidIO报文发送装置获取所述本地虚拟机的性能需求信息,所述性能需求信息包括:输入输出IO带宽和/或服务质量QoS配置;

所述RapidIO报文发送装置为所述本地虚拟机分配满足所述性能需求信息的虚拟RapidIO通道。

结合第一方面以及第一方面的第一至第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述RapidIO报文发送装置获取本地虚拟机待发送的RapidIO报文,包括:

所述RapidIO报文发送装置,按照本地虚拟机的优先级,优先获取具有较高优先级的本地虚拟机的待发送RapidIO报文。

结合第一方面以及第一方面的第一至第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述RapidIO报文发送装置采用所述本地虚拟机对应的虚拟RapidIO通道向对端发送所述RapidIO报文,包括:

所述RapidIO报文发送装置确定与所述RapidIO报文的报文类型对应模式的发送引擎;

所述RapidIO报文发送装置采用确定的发送引擎,在所述本地虚拟机对应的虚拟RapidIO通道上向对端发送所述RapidIO报文。

结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述RapidIO报文发送装置确定与所述RapidIO报文的报文类型对应模式的发送引擎,包括:

若所述RapidIO报文的报文类型为I/O类型,则所述RapidIO报文发送装置确定与所述RapidIO报文的报文类型对应模式的发送引擎为直接内存访问DMA模式的发送引擎;

若所述RapidIO报文的报文类型为包类型,则所述RapidIO报文发送装置确定与所述RapidIO报文的报文类型对应模式的发送引擎为消息模式的发送引擎。

结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述RapidIO报文发送装置确定与所述RapidIO报文的报文类型对应模式的发送引擎为直接内存访问DMA模式的发送引擎,包括:

若所述RapidIO报文为DMA读操作,则所述RapidIO发送引擎,确定与所述RapidIO报文的报文类型对应模式的发送引擎为DMA读模式的发送引擎;

若所述RapidIO报文为DMA写操作,则所述RapidIO发送引擎,确定与所述RapidIO报文的报文类型对应模式的发送引擎为DMA写模式的发送引擎。

结合第一方面以及第一方面的第一至第六种可能的实现方式,在第一方面的第七种可能的实现方式中,所述RapidIO报文发送装置采用与所述本地虚拟机对应的虚拟RapidIO通道向对端发送所述RapidIO报文之后,还包括:

若所述RapidIO报文的报文类型为包类型,所述RapidIO报文发送装置接收所述对端返回的报文接收通知消息,并且将所述报文接收通知消息转发给所述本地虚拟机。

第二方面,本发明实施例提供一种快速输入输出RapidIO报文处理方法,包括:

RapidIO报文发送装置,获取所述本地虚拟机的待发送RapidIO报文;

所述RapidIO报文发送装置,确定所述RapidIO报文对应的对端虚拟机的虚拟机标识VMID;

所述RapidIO报文发送装置,将所述VMID封装到所述RapidIO报文中;

所述RapidIO报文发送装置,向对端发送所述RapidIO报文,以使所述对端将所述RapidIO报文转发给与所述VMID对应的虚拟机。

结合第二方面,在第二方面的第一种可能的实现方式中,所述RapidIO报文发送装置将所述VMID封装到所述RapidIO报文中,包括:

所述RapidIO报文发送装置将所述VMID封装到所述RapidIO报文的包头部分的业务Transaction字段中;

或者,所述RapidIO报文发送装置将所述VMID封装到所述RapidIO报文的载荷payload部分的首部。

结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述RapidIO报文发送装置确定所述RapidIO报文对应的对端虚拟机的虚拟机标识VMID时,还包括:

所述RapidIO报文发送装置确定所述RapidIO报文对应的对端虚拟机的分组Group信息,其中所述Group信息对应所述VMID对应的对端虚拟机处理所述RapidIO报文采用的虚拟处理器;

所述RapidIO报文发送装置将所述VMID封装到所述RapidIO报文中时,还包括:

所述RapidIO报文发送装置将所述Group信息封装到所述RapidIO报文中;

所述RapidIO报文发送装置,向对端发送所述RapidIO报文,包括:

所述RapidIO报文发送装置,向对端发送所述RapidIO报文,以使所述对端将所述RapidIO报文,转发到所述Group信息对应的虚拟处理器。

结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述RapidIO报文发送装置将所述Group信息封装到所述RapidIO报文中,包括:

所述RapidIO报文发送装置将所述Group信息封装到所述RapidIO报文的载荷payload部分的首部。

结合第二方面以及第二方面的第一至第三种可能的实现方式中的任一项,在第二方面的第四种可能的实现方式中,所述RapidIO报文发送装置获取所述本地虚拟机的待发送RapidIO报文,包括:

所述RapidIO报文发送装置,按照本地虚拟机的优先级,优先获取具有较高优先级的本地虚拟机的待发送RapidIO报文。

结合第二方面以及第二方面的第一至第四种可能的实现方式中的任一项,在第二方面的第五种可能的实现方式中,所述RapidIO报文发送装置,向对端RapidIO报文接收装置发送所述RapidIO报文,包括:

所述RapidIO报文发送装置,采用与所述本地虚拟机对应的虚拟RapidIO通道,向对端发送所述RapidIO报文。

结合第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述RapidIO报文发送装置,采用所述本地虚拟机对应的虚拟RapidIO通道,向对端RapidIO报文接收装置发送所述RapidIO报文之前,还包括:

所述RapidIO报文发送装置,为所述本地虚拟机分配对应的虚拟RapidIO通道。

结合第二方面的第六种可能的实现方式,在第二方面的第七种可能的实现方式中,所述RapidIO报文发送装置,为所述本地虚拟机分配对应的虚拟RapidIO通道,包括:

所述RapidIO报文发送装置获取所述本地虚拟机的性能需求信息,所述性能需求信息包括:输入输出IO带宽和/或服务质量QoS配置;

所述RapidIO报文发送装置为所述本地虚拟机分配满足所述性能需求信息的虚拟RapidIO通道。

结合第二方面的第五至第七种可能的实现方式中的任一种,在第二方面的第八种可能的实现方式中,所述RapidIO报文发送装置采用所述本地虚拟机对应的虚拟RapidIO通道向对端发送所述RapidIO报文,包括:

所述RapidIO报文发送装置确定与所述RapidIO报文的报文类型对应模式的发送引擎;

所述RapidIO报文发送装置采用确定的发送引擎,在所述本地虚拟机对应的虚拟RapidIO通道上向对端发送所述RapidIO报文。

结合第二方面的第八种可能的实现方式,在第二方面的第九种可能的实现方式中,所述RapidIO报文发送装置确定与所述RapidIO报文的报文类型对应模式的发送引擎,包括:

若所述RapidIO报文的报文类型为I/O类型,则所述RapidIO报文发送装置确定与所述RapidIO报文的报文类型对应模式的发送引擎为直接内存访问DMA模式的发送引擎;

若所述RapidIO报文的报文类型为包类型,则所述RapidIO报文发送装置确定与所述RapidIO报文的报文类型对应模式的发送引擎为消息模式的发送引擎。

结合第二方面的第九种可能的实现方式,在第二方面的第十种可能的实现方式中,所述RapidIO报文发送装置确定与所述RapidIO报文的报文类型对应模式的发送引擎为直接内存访问DMA模式的发送引擎,包括:

若所述RapidIO报文为DMA读操作,则所述RapidIO发送引擎,确定与所述RapidIO报文的报文类型对应模式的发送引擎为DMA读模式的发送引擎;

若所述RapidIO报文为DMA写操作,则所述RapidIO发送引擎,确定与所述RapidIO报文的报文类型对应模式的发送引擎为DMA写模式的发送引擎。

结合第二方面以及第二方面的第一至第十种可能的实现方式中的任一种,在第二方面的第十一种可能的实现方式中,所述RapidIO报文发送装置,向对端发送所述RapidIO报文之后,还包括:

若所述RapidIO报文的报文类型为包类型,所述RapidIO报文发送装置接收所述对端返回的报文接收通知消息,并且将所述报文接收通知消息转发给所述本地虚拟机。

第三方面,本发明实施例提供一种快速输入输出RapidIO报文处理方法,包括:

RapidIO报文接收装置接收对端发送的RapidIO报文,所述RapidIO报文中封装有本地虚拟机的虚拟机标识VMID;

所述RapidIO报文接收装置,解析获取所述VMID;

所述RapidIO报文接收装置将所述RapidIO报文转发到所述VMID对应的本地虚拟机。

结合第三方面,在第三方面的第一种可能的实现方式中,所述RapidIO报文接收装置,解析获取所述VMID,包括:

所述RapidIO报文接收装置从所述RapidIO报文包头部分的业务Transaction字段或者从所述RapidIO报文载荷payload部分的首部解析获取所述VMID。

结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述RapidIO报文接收装置将所述RapidIO报文转发到所述VMID对应的本地虚拟机之前,还包括:

所述RapidIO报文接收装置为本地虚拟机分配对应的RapidIO接收窗口和/或RapidIO包接收通道;

所述RapidIO报文接收装置将所述RapidIO报文转发到所述VMID对应的本地虚拟机,包括:

若所述RapidIO报文的报文类型为输入输出IO类型,则所述RapidIO报文接收装置将所述RapidIO报文转发到所述VMID对应的RapidIO接收窗口;

若所述RapidIO报文的报文类型为包类型,则所述RapidIO报文接收装置将所述RapidIO报文转发到所述VMID对应的RapidIO包接收通道。

结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述RapidIO报文接收装置将所述RapidIO报文转发到所述VMID对应的RapidIO接收窗口,包括:

所述RapidIO报文接收装置根据所述RapidIO报文中包头部分的偏移地址字段包括的地址信息,将所述RapidIO报文发送到所述地址信息对应的报文接收地址;

所述RapidIO报文接收装置将所述RapidIO报文转发到所述VMID对应的RapidIO包接收通道,包括:

所述RapidIO报文接收装置根据所述Rapid报文中包头部分的偏移地址字段包括的地址信息,将所述RapidIO报文转发到所述地址信息对应的接收报文存储地址。

结合第三方面以及第三方面的第一至第三种可能的实现方式中的任一种,在第三方面的第四种可能的实现方式中,所述RapidIO报文接收装置根据所述RapidIO报文中包头部分的地址字段中包括的地址信息,将所述RapidIO报文转发到所述地址信息对应的接收报文存储地址之后,还包括:

若所述RapidIO报文的报文类型为包类型,则所述RapidIO报文接收装置向对端返回报文接收通知消息。

结合第三方面以及第三方面的第一至第四种可能的实现方式中的任一种,在第三方面的第五种可能的实现方式中,所述RapidIO报文还封装有分组Group信息,其中所述Group信息对应所述VMID对应的本地虚拟机处理所述RapidIO报文采用的虚拟处理器;

所述RapidIO报文接收装置,解析获取所述Group信息;

所述RapidIO报文接收装置将所述RapidIO报文转发到所述VMID对应的本地虚拟机,包括:

所述RapidIO报文接收装置将所述RapidIO报文转发到所述VMID对应的本地虚拟机的所述Group信息对应的虚拟处理器,以使所述虚拟处理器对所述RapidIO报文进行处理。

结合第三方面的第五种可能的实现方式,在第三方面的第六种可能的实现方式中,所述RapidIO报文接收装置,解析获取所述Group信息,包括:

所述RapidIO报文接收装置从所述RapidIO报文载荷payload部分的首部解析获取所述Group信息。

第四方面,本发明实施例提供一种快速输入输出RapidIO报文发送装置,包括:

获取模块,用于获取本地虚拟机待发送的RapidIO报文;

发送模块,用于采用与所述本地虚拟机对应的虚拟RapidIO通道向对端发送所述RapidIO报文。

结合第四方面,在第四方面的第一种可能的实现方式中,还包括:

分配模块,用于在所述发送模块采用所述本地虚拟机对应的虚拟RapidIO通道向对端发送所述RapidIO报文之前,为所述本地虚拟机分配对应的虚拟RapidIO通道。

结合第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述分配模块,具体用于:

获取所述本地虚拟机的性能需求信息,所述性能需求信息包括:输入输出IO带宽和/或服务质量QoS配置;

为所述本地虚拟机分配满足所述性能需求信息的虚拟RapidIO通道。

结合第四方面以及第四方面的第一至第二种可能的实现方式,在第四方面的第三种可能的实现方式中,所述获取模块,具体用于:

按照本地虚拟机的优先级,优先获取具有较高优先级的本地虚拟机的待发送RapidIO报文。

结合第四方面以及第四方面的第一至第三种可能的实现方式,在第四方面的第四种可能的实现方式中,还包括确定模块;

所述确定模块,用于确定与所述RapidIO报文的报文类型对应模式的发送引擎;

所述发送模块,具体用于:

采用所述确定模块确定的发送引擎,在所述本地虚拟机对应的虚拟RapidIO通道上向对端发送所述RapidIO报文。

结合第四方面的第四种可能的实现方式,在第四方面的第五种可能的实现方式中,所述确定模块,具体用于:

若所述RapidIO报文的报文类型为I/O类型,则确定与所述RapidIO报文的报文类型对应模式的发送引擎为直接内存访问DMA模式的发送引擎;

若所述RapidIO报文的报文类型为包类型,则确定与所述RapidIO报文的报文类型对应模式的发送引擎为消息模式的发送引擎。

结合第四方面的第五种可能的实现方式,在第四方面的第六种可能的实现方式中,所述确定模块,具体用于:

若所述RapidIO报文为DMA读操作,则确定与所述RapidIO报文的报文类型对应模式的发送引擎为DMA读模式的发送引擎;

若所述RapidIO报文为DMA写操作,则确定与所述RapidIO报文的报文类型对应模式的发送引擎为DMA写模式的发送引擎。

结合第四方面以及第四方面的第一至第六种可能的实现方式,在第四方面的第七种可能的实现方式中,还包括接收模块;

所述接收模块,用于在所述发送模块采用与所述本地虚拟机对应的虚拟RapidIO通道向对端发送所述RapidIO报文之后,

若所述RapidIO报文的报文类型为包类型,接收所述对端返回的报文接收通知消息,并且将所述报文接收通知消息转发给所述本地虚拟机。

第五方面,本发明实施例提供一种RapidIO报文发送装置,包括:

获取模块,用于获取所述本地虚拟机的待发送RapidIO报文;

确定模块,用于确定所述RapidIO报文对应的对端虚拟机的虚拟机标识VMID;

封装模块,用于将所述VMID封装到所述RapidIO报文中;

发送模块,用于向对端发送所述RapidIO报文,以使所述对端将所述RapidIO报文转发给与所述VMID对应的虚拟机。

结合第五方面,在第五方面的第一种可能的实现方式中,所述封装模块,具体用于:

将所述VMID封装到所述RapidIO报文的包头部分的业务Transaction字段中;

或者,将所述VMID封装到所述RapidIO报文的载荷payload部分的首部。

结合第五方面或第五方面的第一种可能的实现方式,在第五方面的第二种可能的实现方式中,所述确定模块在确定所述RapidIO报文对应的对端虚拟机的虚拟机标识VMID时,还用于:

确定所述RapidIO报文对应的对端虚拟机的分组Group信息,其中所述Group信息对应所述VMID对应的对端虚拟机处理所述RapidIO报文采用的虚拟处理器;

所述封装模块,在将所述VMID封装到所述RapidIO报文中时,还用于:

将所述Group信息封装到所述RapidIO报文中;

所述发送模块,具体用于:

向对端发送所述RapidIO报文,以使所述对端将所述RapidIO报文,转发到所述Group信息对应的虚拟处理器。

结合第五方面的第二种可能的实现方式,在第五方面的第三种可能的实现方式中,所述封装模块,具体用于:

将所述Group信息封装到所述RapidIO报文的载荷payload部分的首部。

结合第五方面以及第五方面的第一至第三种可能的实现方式中的任一项,在第五方面的第四种可能的实现方式中,所述获取模块,具体用于:

按照本地虚拟机的优先级,优先获取具有较高优先级的本地虚拟机的待发送RapidIO报文。

结合第五方面以及第五方面的第一至第四种可能的实现方式中的任一项,在第五方面的第五种可能的实现方式中,所述发送模块,具体用于:

采用与所述本地虚拟机对应的虚拟RapidIO通道,向对端发送所述RapidIO报文。

结合第五方面的第五种可能的实现方式,在第五方面的第六种可能的实现方式中,还包括:

分配模块,用于在所述发送模块采用所述本地虚拟机对应的虚拟RapidIO通道向对端发送所述RapidIO报文之前,为所述本地虚拟机分配对应的虚拟RapidIO通道。

结合第五方面的第六种可能的实现方式,在第五方面的第七种可能的实现方式中,所述分配模块,具体用于:

获取所述本地虚拟机的性能需求信息,所述性能需求信息包括:输入输出IO带宽和/或服务质量QoS配置;

为所述本地虚拟机分配满足所述性能需求信息的虚拟RapidIO通道。

结合第五方面的第五至第七种可能的实现方式中的任一种,在第五方面的第八种可能的实现方式中,所述发送模块,具体用于:

确定与所述RapidIO报文的报文类型对应模式的发送引擎;

采用确定的发送引擎,在所述本地虚拟机对应的虚拟RapidIO通道上向对端发送所述RapidIO报文。

结合第五方面的第八种可能的实现方式,在第五方面的第九种可能的实现方式中,所述发送模块,具体用于:

若所述RapidIO报文的报文类型为I/O类型,则确定与所述RapidIO报文的报文类型对应模式的发送引擎为直接内存访问DMA模式的发送引擎;

若所述RapidIO报文的报文类型为包类型,则确定与所述RapidIO报文的报文类型对应模式的发送引擎为消息模式的发送引擎。

结合第五方面的第九种可能的实现方式,在第五方面的第十种可能的实现方式中,所述发送模块,具体用于:

若所述RapidIO报文为DMA读操作,则确定与所述RapidIO报文的报文类型对应模式的发送引擎为DMA读模式的发送引擎;

若所述RapidIO报文为DMA写操作,则确定与所述RapidIO报文的报文类型对应模式的发送引擎为DMA写模式的发送引擎。

结合第五方面以及第五方面的第一至第十种可能的实现方式中的任一种,在第五方面的第十一种可能的实现方式中,还包括接收模块;

所述接收模块用于在所述发送模块采用与所述本地虚拟机对应的虚拟RapidIO通道向对端发送所述RapidIO报文之后,若所述RapidIO报文的报文类型为包类型,接收所述对端返回的报文接收通知消息,并且将所述报文接收通知消息转发给所述本地虚拟机。

第六方面,本发明实施例提供一种快速输入输出RapidIO报文接收装置,包括:

接收模块,用于接收对端发送的RapidIO报文,所述RapidIO报文中封装有本地虚拟机的虚拟机标识VMID;

解析模块,用于解析获取所述VMID;

转发模块,用于将所述RapidIO报文转发到所述VMID对应的本地虚拟机。

结合第六方面,在第六方面的第一种可能的实现方式中,所述解析模块,具体用于:

从所述RapidIO报文包头部分的业务Transaction字段或者从所述RapidIO报文载荷payload部分的首部解析获取所述VMID。

结合第六方面或第六方面的第一种可能的实现方式,在第六方面的第二种可能的实现方式中,还包括:

分配模块,用于在所述转发模块将所述RapidIO报文转发到所述VMID对应的本地虚拟机之前,为本地虚拟机分配对应的RapidIO接收窗口和/或RapidIO包接收通道;

所述转发模块,具体用于:

若所述RapidIO报文的报文类型为输入输出IO类型,则将所述RapidIO报文转发到所述VMID对应的RapidIO接收窗口;

若所述RapidIO报文的报文类型为包类型,则将所述RapidIO报文转发到所述VMID对应的RapidIO包接收通道。

结合第六方面的第二种可能的实现方式,在第六方面的第三种可能的实现方式中,所述转发模块,具体用于:

若所述RapidIO报文的报文类型为IO类型,根据所述RapidIO报文中包头部分的偏移地址字段包括的地址信息,将所述RapidIO报文发送到所述地址信息对应的报文接收地址;

若所述RapidIO报文的报文类型为包类型,根据所述RapidIO报文中包头部分的偏移地址字段包括的地址信息,将所述RapidIO报文转发到所述地址信息对应的接收报文存储地址。

结合第六方面以及第六方面的第一至第三种可能的实现方式中的任一种,在第六方面的第四种可能的实现方式中,还包括发送模块;

所述发送模块,用于在所述转发模块在将所述RapidIO报文转发到所述VMID对应的本地虚拟机之后,若所述RapidIO报文的报文类型为包类型,向对端返回报文接收通知消息。

结合第六方面以及第六方面的第一至第四种可能的实现方式中的任一种,在第六方面的第五种可能的实现方式中,所述RapidIO报文中还封装有分组Group信息,其中所述Group信息对应所述VMID对应的本地虚拟机处理所述RapidIO报文采用的虚拟处理器;

所述解析模块,还用于:解析获取所述Group信息;

所述转发模块,还用于:将所述RapidIO报文转发到所述VMID对应的本地虚拟机的所述Group信息对应的虚拟处理器,以使所述虚拟处理器对所述RapidIO报文进行处理。

结合第六方面的第五种可能的实现方式,在第六方面的第六种可能的实现方式中,所述解析模块,具体用于:

从所述RapidIO报文载荷payload部分的首部解析获取所述Group信息。

第七方面,本发明实施例提供一种快速输入输出RapidIO报文发送装置,包括:第一处理器,以及与所述第一处理器相连的第一存储器,所述第一存储器中存储一组程序代码,所述第一处理器可以执行所述程序代码,以实现如第一方面以及第一方面的第一至第七种可能的实现方式中任一项所述的RapidIO报文处理方法中的步骤。

第八方面,本发明实施例提供一种快速输入输出RapidIO报文发送装置,包括:第二处理器,以及与所述第二处理器相连的第二存储器,所述第二存储器中存储一组程序代码,所述第二处理器可以执行所述程序代码,以实现如第二方面以及第二方面的第一至第十一种可能的实现方式中任一项所述的RapidIO报文处理方法中的步骤。

第九方面,本发明实施例提供一种快速输入输出RapidIO报文接收装置,包括:第三处理器,以及与所述第三处理器相连的第三存储器,所述第三存储器中存储一组程序代码,所述第三处理器可以执行所述程序代码,以实现如第三方面以及第三方面的第一至第六种可能的实现方式中任一项所述的RapidIO报文处理方法中的步骤。

第十方面,本发明实施例提供一种快速输入输出RapidIO报文处理系统,包括:如第八方面所述的RapidIO报文发送装置,以及如第九方面所述的RapidIO报文接收装置,其中所述RapiodIO报文发送装置与所述RapidIO报文接收装置通过RapidIO通道相连接。

本发明实施例,通过RapidIO报文发送装置为每个虚拟机分配对应的虚拟通道,并根据各虚拟机的性能需求分配满足其性能需求的虚拟通道,实现了不同虚拟机RapidIO传输通道物理资源的可配置使用使得RapidIO报文传输支持多虚拟机之间物理资源访问的的相互隔离,并可按照各虚拟机的配置需求灵活处理其RapidIO报文的发送,,同时,通过配置不同模式的发送引擎处理对应类型的RapidIO报文,进一步提升虚拟机对I/O接口的访问效率,从而提升系统的整体处理性能。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的RapidIO报文处理方法实施例一的流程图;

图1a为图1所示方法实施例中一个RapidIO报文的发送过程示意图;

图2为本发明实施例提供的RapidIO报文处理方法实施例二的流程图;

图2a为图2所示方法实施例中RapidIO报文的封装示意图;

图2b为图2所示方法实施例中虚拟处理器对应的系统架构示意图;

图3为本发明实施例提供的RapidIO报文处理方法实施例三的流程图;

图4为本发明实施例提供的RapidIO报文发送装置实施例一的结构示意图;

图5为本发明实施例提供的RapidIO报文发送装置实施例二的结构示意图;

图6为本发明实施例提供的RapidIO报文接收装置实施例一的结构示意图;

图7为本发明实施例提供的RapidIO报文发送装置实施例三的结构示意图;

图8为本发明实施例提供的RapidIO报文发送装置实施例四的结构示意图;

图9为本发明实施例提供的RapidIO报文接收装置实施例二的结构示意图;

图10为本发明实施例提供的RapidIO报文处理系统实施例的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例提供的RapidIO报文处理方法实施例一的流程图,如图1所示,该方法实施例,包括:

步骤101、RapidIO报文发送装置获取本地虚拟机待发送的RapidIO报文;

步骤102、RapidIO报文发送装置采用与本地虚拟机对应的虚拟RapidIO通道向对端发送RapidIO报文。

进一步地,步骤102之前,还包括:

RapidIO报文发送装置,为本地虚拟机分配对应的虚拟RapidIO通道。其中,RapidIO报文发送装置可以获取本地虚拟机的性能需求信息,所述性能需求信息包括但不限于:输入输出(Input and Output,简称:IO)带宽和/或服务质量(Quality of Service,简称:QoS)配置,并为本地虚拟机分配满足性能需求信息的虚拟RapidIO通道,从而可以按照各本地虚拟机的性能需求发送RapidIO报文。

步骤102之后,还包括:若RapidIO报文为包类型的报文,RapidIO报文发送装置接收对端返回的报文接收通知消息,并将该报文接收通知消息转发给本地虚拟机。

优选地,步骤101中,RapidIO报文发送装置,可按照本地虚拟机的优先级,优先获取具有较高优先级的本地虚拟机的待发送RapidIO报文。

优选地,RapidIO报文发送装置,可获取RapidIO报文的报文类型,确定与RapidIO报文的报文类型对应模式的发送引擎,并采用确定的发送引擎,在所述本地虚拟机对应的虚拟RapidIO通道上向对端发送所述RapidIO报文:

若RapidIO报文的报文类型为I/O类型,包括:NREAD,NWRITE,NWRITE_R,SWRITE等,不再赘述,则RapidIO报文发送装置确定与RapidIO报文的报文类型对应模式的发送引擎为直接内存访问(Direct Memory Access,简称:DMA)模式的发送引擎;

若RapidIO报文的报文类型为包类型,包括:消息(Message),数据流(Data Streaming),门铃(Doorbell)等,不再赘述,则RapidIO报文发送装置确定与RapidIO报文的报文类型对应模式的发送引擎为消息模式的发送引擎。

其中,RapidIO报文发送装置确定与RapidIO报文的报文类型对应模式的发送引擎为DMA模式的发送引擎,更进一步地可以确定:

若RapidIO报文为DMA读操作,则对应模式的发送引擎为DMA读模式的发送引擎;

若RapidIO报文为DMA写操作,则对应模式的发送引擎为DMA写模式的发送引擎。

具体来说,本地虚拟机系统包括至少一个虚拟机,RapidIO报文发送装置,可以为每一个本地虚拟机分配相应的虚拟通道,并且根据每一个虚拟机的性能需求信息,分配满足该虚拟机性能需求信息的虚拟RapidIO通道,同时,在获取本地虚拟机待发送报文时,按照各虚拟机的优先等级,优先获取具有较高优先级的本地虚拟机的待发送RapidIO报文。RapidIO报文发送装置,在获取待发送的RapidIO报文后,按照虚拟机的性能需求在虚拟RapidIO通道上发送该RapidIO报文。优选地,该RapidIO报文发送装置,可以包括不同模式的发送引擎,用于发送对应类型的RapidIO报文:对于IO类型的RapidIO报文,可以采用DMA模式的发送引擎发送,对于包类型的RapidIO报文,可以采用消息模式的发送引擎,进一步地,该DMA模式的发送引擎还可以分为DMA读引擎和DMA写引擎,可以分别用于发送IO读类型的Rapid报文和IO写类型的RapidIO报文。

具体实现时,RapidIO报文发送装置,可以根据本地虚拟机的数量,将RapidIO物理传输通道划分为相同数量的虚拟通道,使得每个虚拟机都有相对独立的传输通道,并且可设置相应的IO带宽和/或QoS配置,以保证每台虚拟机相对独立的传输带宽和传输质量。RapidIO报文发送装置,可以为每一个虚拟机分配相应的待发送RapidIO消息队列,给每个消息队列设置与虚拟机相同的优先级,优先从较高优先级的消息队列中获取待发送的报文。在发送RapidIO报文时,RapidIO报文发送装置,可包括多个发送引擎,并且为每个发送引擎分配相应的处理任务,使得每个发送引擎可以专门相同类型的RapidIO报文,减少发送引擎对RapidIO报文类型的解析,提高RapidIO报文的发送效率。图1a为图1所示方法实施例中一个RapidIO报文的发送过程示意图,如图1a所示,该RapidIO报文首先从本地虚拟机,到达本地虚拟机对应的RapidIO消息队列,然后根据该RapidIO报文的报文类型发送到对应模式的发送引擎,最后通过对应的虚拟通道发送到对端。

该方法实施例,通过RapidIO报文发送装置为每个虚拟机分配对应的虚拟通道,并根据各虚拟机的性能需求分配满足其性能需求的虚拟通道,实现了不同虚拟机RapidIO传输通道物理资源的可配置使用使得RapidIO报文传输支持多虚拟机之间物理资源访问的的相互隔离,并可按照各虚拟机的配置需求灵活处理其RapidIO报文的发送,,同时,通过配置不同模式的发送引擎处理对应类型的RapidIO报文,进一步提升虚拟机对I/O接口的访问效率,从而提升系统的整体处理性能。

现有技术中,如果对端也是多虚拟机系统,则对端在接收到RapidIO报文后,不能直接转发到对应的虚拟机上,而需要采用应用软件对RapidIO报文进行分析之后转发到对应的虚拟机,存在处理效率低下的问题,针对此问题,本发明还提供图2所示的RapidIO报文处理方法实施例。

图2为本发明实施例提供的RapidIO报文处理方法实施例二的流程图,如图2所示,该方法实施例,包括:

步骤201、RapidIO报文发送装置获取本地虚拟机的待发送RapidIO报文;

步骤202、RapidIO报文发送装置确定上述RapidIO报文对应的对端虚拟机的虚拟机标识VMID;

步骤203、RapidIO报文发送装置将该VMID封装到上述RapidIO报文中;

步骤204、RapidIO报文发送装置向对端发送RapidIO报文,以使对端将该RapidIO报文转发给与VMID对应的虚拟机。

优选地,步骤201中,RapidIO报文发送装置确定RapidIO报文对应的对端虚拟机的VMID时,还确定该RapidIO报文对应的分组Group信息,并将该Group信息封装在RapidIO报文中,其中该Group信息与对端虚拟机处理该RapidIO报文采用的虚拟处理器对应;

相应地,RapidIO报文发送装置,向对端发送RapidIO报文,以使对端将该RapidIO报文,进一步地转发到Group信息对应的虚拟处理器。

通常地,在多核处理器(Central Processing Unit)系统中,存在多个虚拟机(Virtual Machine,简称:VM),相应的多核处理器为每个VM分配相应的虚拟处理器(英文:Virtual CPU,简称:VCPU),使得在用户看来,每个VM都工作在独立的多核处理器上,可独立使用这多个CPU。以多核处理器系统包括两个处理器为例来说,如图2b所示,该双核CPU系统上安装有VM1和VM2,则CPU1分别给VM1和VM2分配VCPU11和VCPU12,CPU2分别给VM1和VM2分配VCPU21和VCPU22,使得VM1工作在VCPU11和VCPU21上,VM2工作在VCPU12和VCPU22上,看似VM1和VM2各自独立工作在CPU1和CPU2上。该Group信息则用于指示VM到底采用位于那个物理CPU上的VCPU进行处理RapidIO报文,即对于VM1是采用VCPU11还是VCPU21处理该RapidIO报文。

进一步地,该VMID封装到RapidIO报文的包头部分的业务Transaction字段,或者,该VMID封装到RapidIO报文载荷payload部分的首部;该Group信息封装到RapidIO报文的载荷payload部分的首部。

进一步地,该方法实施例中的RapidIO报文发送装置,可以采用图1所示方法实施例中RapidIO报文发送装置的发送方法,按照优先级获取待发送的RapidIO报文,并采用与RapidIO报文对应模式的发送引擎,在本地虚拟机对应的虚拟RapidIO通道上向对端发送RapidIO报文,具体不再赘述。

具体来说,RapidIO报文发送装置,在确定对端虚拟机的VMID和/或分组Group信息后,可将VMID封装在RapidIO报文的包头部分的业务Transcation字段或者该RapidIO报文的载荷payload部分的首部,如图2a中的斜线阴影部分所示,和/或将Group信息分装在该RapidIO报文的载荷payload部分的首部,封装后,将RapidIO报文发送给对端,以使对端的RapidIO报文接收装置,在接收该RapidIO报文后,可以解析获取该VMID和/或Group信息,并将该RapidIO转发到VMID对应的虚拟机上,进一步地,转发到该VMID对应的虚拟机处理该RapidIO对应的虚拟处理器上。

需说明的是,RapidIO报文发送装置可通过应用软件与对端协商,确定对端虚拟机的VMID和Group信息,进而将该VMID和Group信息封装进待发送的Rapid报文中。

该方法实施例,通过RapidIO报文发送装置,封装RapidIO报文对应的对端虚拟机的VMID和/或Group信息,使得对端在接收该RapidIO报文后,可直接将该RapidIO转发到VMID对应的虚拟机上,和/或转发到该Group信息对应的虚拟处理器上,可在图1方法实施例的基础上,进一步地,提高RapidIO报文虚拟机环境下的处理效率。

图3为本发明实施例提供的RapidIO报文处理方法实施例三的流程图,该实施例中所述的RapidIO报文接收装置与图2所示方法实施例中的RapidIO报文发送装置对应,如图3所示,该方法实施例,包括如下步骤:

步骤301、RapidIO报文接收装置接收对端发送的RapidIO报文,该RapidIO报文中封装有本地虚拟机的VMID;

步骤302、RapidIO报文接收装置,解析获取VMID;

步骤303、RapidIO报文接收装置将该RapidIO报文转发到VMID对应的本地虚拟机。

进一步地,步骤302中,RapidIO报文接收装置可以从RapidIO报文包头部分的业务Transaction字段或者从RapidIO报文载荷payload部分的首部解析获取VMID。

进一步地,步骤303之前,还包括:

RapidIO报文接收装置为本地虚拟机分配对应的RapidIO接收窗口和/或RapidIO包接收通道;

相应地,若RapidIO报文的报文类型为输入输出IO类型,则RapidIO报文接收装置将RapidIO报文转发到该VMID对应的RapidIO接收窗口;

若RapidIO报文的报文类型为包类型,则RapidIO报文接收装置将RapidIO报文转发到VMID对应的RapidIO包接收通道。

更进一步地,对于IO类型的RapidIO报文,RapidIO报文接收装置根据该RapidIO报文中包头部分的偏移地址字段包括的地址信息,将该RapidIO报文发送到地址信息对应的报文接收地址;对于包类型的RapidIO报文,RapidIO报文接收装置根据RapidIO报文中包头部分的偏移地址字段包括的地址信息,将该RapidIO报文转发到地址信息对应的接收报文存储地址,并向对端返回报文接收通知消息。

优选地,当RapidIO报文还封装有分组Group信息,其中Group信息对应该VMID对应的本地虚拟机处理RapidIO报文时采用的虚拟处理器,RapidIO报文接收装置,解析获取Group信息,相应地,将该RapidIO报文转发到该VMID对应的本地虚拟机的Group信息对应的虚拟处理器,以使该虚拟处理器对RapidIO报文进行处理,其中,RapidIO报文接收装置可从RapidIO报文载荷payload部分的首部解析获取Group信息。

需说明的是,该实施例中的虚拟处理器,与图2所示方法实施例中相同,具体不再赘述。

具体来说,RapidIO报文接收装置,为本地虚拟机分配对应的用于处理IO类型报文的RapidIO接收窗口,和/或用于处理包类型的RapidIO包接收通道,该RapidIO接收窗口和RapidIO包接收通道与本地虚拟机的VMID对应;在接收到对端发送的RapidIO报文后,解析获取该RapidIO报文对应的本地虚拟机的VMID,然后确定该RapidIO报文的报文类型,若是IO类型报文,则将该RapidIO报文转发到VMID对应的RapidIO接收窗口,若是包类型报文,则将RapidIO报文转发到VMID对应的RapidIO包接收通道。进一步地,获取该RapidIO报文包头部分的偏移地址(如图2a中阴影部分所示的偏移地址)字段包括的地址信息,对于IO类型报文,将该RapidIO报文进一步发送到该地址信息对应的报文接收地址,该地址信息对应虚拟机所在系统的存储器中的偏移地址,使得对端虚拟机可以直接对该虚拟机可访问的存储地址进行直接IO读写;对于包类型的报文,将该RapidIO报文进一步发送到该地址信息对应的接收报文存储地址,使得VMID对应的虚拟机可以从该接收报文存储地址获取该RapidIO报文并进行处理,同时向对端返回该RapidIO报文的报文接收通知消息,其中,RapidIO报文接收装置可以通过消息或中断方式将该报文接收通知消息返回给对端。优选地,若对端在发送的RapidIO报文中封装有Group信息,RapidIO报文接收装置可进一步从该RapidIO报文的负载部分的首部获取该Group信息,并根据该Group信息,转发到对应的虚拟处理器对该RapidIO报文进行处理。

需说明的是,对于IO类型的RapidIO报文,在将该RapidIO报文转发到偏移地址字段中地址信息对应的报文接收地址之前,若该虚拟机系统对应的存储地址有权限访问设置,需要确定对端虚拟机有权限访问该地址信息对应的存储器地址。

该方法实施例,通过RapidIO报文接收装置解析获取VMID和/或Group信息,直接将RapidIO报文转发到VMID对应的虚拟机,和/或对应的虚拟处理器,实现了RapidIO报文支持虚拟机和/或虚拟处理器的映射,提升了虚拟机系统IO接口的处理性能,提高了RapidIO报文的处理效率,同时通过设置本地虚拟机对应的接收窗口和/或接收通道,实现了本地虚拟机之间的接收通道及访问的相互隔离。

本发明实施例进一步给出实现上述方法实施例的装置实施例。

图4为本发明实施例提供的RapidIO报文发送装置实施例一的结构示意图,如图4所示,该RapidIO报文发送装置400,包括:获取模块401、发送模块402,其中,

获取模块401,用于获取本地虚拟机待发送的RapidIO报文;

发送模块402,用于采用与所述本地虚拟机对应的虚拟RapidIO通道向对端发送所述RapidIO报文。

进一步地,该RapidIO报文发送装置400,还包括:

分配模块403,用于在发送模块402采用本地虚拟机对应的虚拟RapidIO通道向对端发送RapidIO报文之前,为本地虚拟机分配对应的虚拟RapidIO通道。其中,该分配模块403,具体用于获取本地虚拟机的性能需求信息,性能需求信息包括:输入输出IO带宽和/或服务质量QoS配置;并为本地虚拟机分配满足性能需求信息的虚拟RapidIO通道。

进一步地,该RapidIO报文发送装置400,还包括:接收模块404,用于在上述发送模块402采用与本地虚拟机对应的虚拟RapidIO通道向对端发送RapidIO报文之后,

若RapidIO报文的报文类型为包类型,接收对端返回的报文接收通知消息,并且将报文接收通知消息转发给本地虚拟机。

优选地,上述获取模块401,具体用于:

按照本地虚拟机的优先级,优先获取具有较高优先级的本地虚拟机的待发送RapidIO报文。

优选地,上述RapidIO报文发送装置400,还包括:确定模块405,用于确定与RapidIO报文的报文类型对应模式的发送引擎;

相应地,发送模块402,具体用于:

采用确定模块405确定的发送引擎,在本地虚拟机对应的虚拟RapidIO通道上向对端发送RapidIO报文。

上述确定模块405,具体用于:

若RapidIO报文的报文类型为I/O类型,则确定与RapidIO报文的报文类型对应模式的发送引擎为直接内存访问DMA模式的发送引擎;

若RapidIO报文的报文类型为包类型,则确定与RapidIO报文的报文类型对应模式的发送引擎为消息模式的发送引擎。

其中,若RapidIO报文的报文类型为I/O类型,上述确定模块405,具体用于:

若RapidIO报文为DMA读操作,则确定与RapidIO报文的报文类型对应模式的发送引擎为DMA读模式的发送引擎;

若RapidIO报文为DMA写操作,则确定与RapidIO报文的报文类型对应模式的发送引擎为DMA写模式的发送引擎。

本实施例提供的RapidIO报文发送装置400,可用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,具体不再赘述。

图5为本发明实施例提供的RapidIO报文发送装置实施例二的结构示意图,如图5所示,该RapidIO报文接收装置500,包括:获取模块501、确定模块502、封装模块503以及发送模块504,其中,

获取模块501,用于获取本地虚拟机的待发送RapidIO报文;

确定模块502,用于确定RapidIO报文对应的对端虚拟机的虚拟机标识VMID;

封装模块503,用于将VMID封装到RapidIO报文中;

发送模块504,用于向对端发送RapidIO报文,以使对端将RapidIO报文转发给与VMID对应的虚拟机。

进一步地,上述封装模块503,具体用于:

将VMID封装到RapidIO报文的包头部分的业务Transaction字段中;

或者,将VMID封装到RapidIO报文的载荷payload部分的首部。

优选地,上述确定模块502在确定RapidIO报文对应的对端虚拟机的虚拟机标识VMID时,还用于:

确定RapidIO报文对应的对端虚拟机的分组Group信息,其中Group信息对应VMID对应的对端虚拟机处理RapidIO报文采用的虚拟处理器;

封装模块503,在将VMID封装到RapidIO报文中时,还用于:

将Group信息封装到RapidIO报文中;

发送模块504,具体用于:

向对端发送RapidIO报文,以使对端将RapidIO报文,转发到Group信息对应的虚拟处理器。

进一步地,封装模块503,具体用于:

将Group信息封装到RapidIO报文的载荷payload部分的首部。

优选地,上述获取模块501,具体用于:

按照本地虚拟机的优先级,优先获取具有较高优先级的本地虚拟机的待发送RapidIO报文。

优选地,上述发送模块504,具体用于:

采用与本地虚拟机对应的虚拟RapidIO通道,向对端发送RapidIO报文。

相应地,该RapidIO报文发送装置500,还包括:

分配模块505,用于在发送模块504采用本地虚拟机对应的虚拟RapidIO通道向对端发送RapidIO报文之前,为本地虚拟机分配对应的虚拟RapidIO通道。

其中,该分配模块505,具体用于:

获取本地虚拟机的性能需求信息,性能需求信息包括:输入输出IO带宽和/或服务质量QoS配置;

为本地虚拟机分配满足性能需求信息的虚拟RapidIO通道。

优选地,上述确定模块502,还用于:确定与RapidIO报文的报文类型对应模式的发送引擎;

发送模块504,具体用于:

采用确定的发送引擎,在本地虚拟机对应的虚拟RapidIO通道上向对端发送RapidIO报文。

其中,该确定模块502,具体用于:

若RapidIO报文的报文类型为I/O类型,则确定与RapidIO报文的报文类型对应模式的发送引擎为直接内存访问DMA模式的发送引擎;

若RapidIO报文的报文类型为包类型,则确定与RapidIO报文的报文类型对应模式的发送引擎为消息模式的发送引擎。

若RapidIO报文的报文类型为I/O类型,确定模块502,还用于:

若RapidIO报文为DMA读操作,则确定与RapidIO报文的报文类型对应模式的发送引擎为DMA读模式的发送引擎;

若RapidIO报文为DMA写操作,则确定与RapidIO报文的报文类型对应模式的发送引擎为DMA写模式的发送引擎。

进一步地,该RapidIO报文发送装置500,还包括接收模块506,用于在上述发送模块504采用与本地虚拟机对应的虚拟RapidIO通道向对端发送RapidIO报文之后,

若RapidIO报文的报文类型为包类型,接收对端返回的报文接收通知消息,并且将报文接收通知消息转发给本地虚拟机。

本实施例提供的RapidIO报文发送装置500,可用于执行图2所示方法实施例中的技术方案,其实现原理和技术效果类似,具体不再赘述。

图6为本发明实施例提供的RapidIO报文接收装置实施例一的结构示意图,如图6所示,该RapidIO报文接收装置600,包括:接收模块601,解析模块602,转发模块603,其中,

接收模块601,用于接收对端发送的RapidIO报文,RapidIO报文中封装有本地虚拟机的虚拟机标识VMID;

解析模块602,用于解析获取VMID;

转发模块603,用于将RapidIO报文转发到VMID对应的本地虚拟机。

进一步地,上述解析模块602,具体用于:

从RapidIO报文包头部分的业务Transaction字段或者从RapidIO报文载荷payload部分的首部解析获取VMID。

优选地,该RapidIO报文接收装置600,还包括:

分配模块604,用于在转发模块603将RapidIO报文转发到VMID对应的本地虚拟机之前,为本地虚拟机分配对应的RapidIO接收窗口和/或RapidIO包接收通道;

转发模块603,具体用于:

若RapidIO报文的报文类型为输入输出IO类型,则将RapidIO报文转发到VMID对应的RapidIO接收窗口;

若RapidIO报文的报文类型为包类型,则将RapidIO报文转发到VMID对应的RapidIO包接收通道。

进一步地,上述转发模块603,具体用于:

若RapidIO报文的报文类型为IO类型,根据RapidIO报文中包头部分的偏移地址字段包括的地址信息,将RapidIO报文发送到地址信息对应的报文接收地址;

若RapidIO报文的报文类型为包类型,根据RapidIO报文中包头部分的偏移地址字段包括的地址信息,将RapidIO报文转发到地址信息对应的接收报文存储地址。

进一步地,该RapidIO报文接收装置600,还包括发送模块605,用于在转发模块603在将RapidIO报文转发到VMID对应的本地虚拟机之后,

若RapidIO报文的报文类型为包类型,向对端返回报文接收通知消息。

优选地,若RapidIO报文中还封装有分组Group信息,其中Group信息对应VMID对应的本地虚拟机处理RapidIO报文采用的虚拟处理器;

解析模块602,还用于:解析获取Group信息;

转发模块603,还用于:将RapidIO报文转发到VMID对应的本地虚拟机的Group信息对应的虚拟处理器,以使虚拟处理器对RapidIO报文进行处理。

其中,解析模块602,具体用于:

从RapidIO报文载荷payload部分的首部解析获取Group信息。

本实施例提供的RapidIO报文接收装置,可用于执行图3所示方法实施例中的技术方案,其实现原理和技术效果类似,具体不再赘述。

图7为本发明实施例提供的RapidIO报文发送装置实施例三的结构示意图,如图7所示,该RapidIO报文发送装置700,包括:第一处理器701,以及与所述第一处理器701相连的第一存储器702,其中,该第一存储器702中存储一组程序代码,第一处理器701可以执行该组程序代码,以实现图1所示方法实施例中的技术方案,其实现原理和技术效果类似,具体不再赘述。

图8为本发明实施例提供的RapidIO报文发送装置实施例四的结构示意图,如图8所示,该RapidIO报文发送装置800,包括:第二处理器801,以及与第二处理器801相连的第二存储器802,其中,该第二存储器802中存储一组程序代码,第二处理器801可以执行该组程序代码,以实现如图2所示方法实施例中的技术方案,其实现原理和技术效果类似,具体不再赘述。

图9为本发明实施例提供的RapidIO报文接收装置实施例二的结构示意图,如图9所示,该RapidIO报文接收装置900,包括:第三处理器901,以及与第三处理器901相连的第三存储器902,该第三存储器902中存储一组程序代码,第三处理器901可以执行该组程序代码,以实现如图3所示方法实施例中的技术方案,其实现原理和技术效果类似,具体不再赘述。

图10为本发明实施例提供的RapidIO报文处理系统实施例的结构示意图,如图10所示,该RapidIO报文处理系统1000,包括RapidIO报文发送装置1001,以及与RapidIO报文接收装置1002,其中该RapiodIO报文发送装置1001与该RapidIO报文接收装置1002通过RapidIO通道相连接。该RapidIO报文发送装置1001以及RapidIO报文接收装置1002可分别为图8所示的RapidIO报文发送装置和图9所示的RapidIO报文接收装置,可分别用于执行图2和图3所示的方法实施例中的技术方案,其实现原理和技术效果类似,具体不再赘述。

本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1