CN105324973A - 快速输入输出报文处理方法、装置及*** - Google Patents

快速输入输出报文处理方法、装置及*** Download PDF

Info

Publication number
CN105324973A
CN105324973A CN201480033945.1A CN201480033945A CN105324973A CN 105324973 A CN105324973 A CN 105324973A CN 201480033945 A CN201480033945 A CN 201480033945A CN 105324973 A CN105324973 A CN 105324973A
Authority
CN
China
Prior art keywords
rapidlo
messages
message
virtual machine
transmission devices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201480033945.1A
Other languages
English (en)
Other versions
CN105324973B (zh
Inventor
张卫国
倪平平
杨明
苏海亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN105324973A publication Critical patent/CN105324973A/zh
Application granted granted Critical
Publication of CN105324973B publication Critical patent/CN105324973B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供一种快速输入输出报文处理方法、装置及***,该方法包括:RapidIO报文发送装置获取本地虚拟机待发送的RapidIO报文;RapidIO报文发送装置采用与所述本地虚拟机对应的虚拟RapidIO通道向对端发送所述RapidIO报文。本发明通过RapidIO报文发送装置为每个虚拟机分配对应的虚拟通道,并根据各虚拟机的性能需求分配满足其性能需求的虚拟通道,实现了不同虚拟机RapidIO传输通道物理资源的可配置使用使得RapidIO报文传输支持多虚拟机之间物理资源访问的相互隔离,并可按照各虚拟机的配置需求灵活处理其RapidIO报文的发送,同时,通过配置不同模式的发送引擎处理对应类型的RapidIO报文,进一步提升虚拟机对I/O接口的访问效率。

Description

快速输入输出报文处理方法、 装置及*** 技术领域
本发明实施例涉及通信技术, 尤其涉及一种适用于多虚拟机***互连的 快速输入输出报文处理方法、 装置及***。 背景技术
快速输入输出 (英文: Rapid Input/Output, 简称: RapidlO) 是一种高可 靠性、 高性能的互连技术, 包括并行 RapidlO和串行 RapidlO, 并行 RapidlO 和串行 RapidlO具有相同的编程模型、事务处理和寻址机制。 RapidlO互连架 构是一个开放的标准, 可用于连接多处理器、 存储器、 网络设备上的存储器 映射 I/O器件、 存储子***和通用计算平台, 以提高***的软硬件接口处理 性能。
RapidlO协议分为三层: 逻辑层、传输层和物理层, 其中逻辑层定义了操 作协议和相应的包格式; 传输层定义了包交换、 路由和寻址机制; 物理层定 义了电气特性、链路控制和纠错重传等。 RapidlO是一种基于包交换的互连技 术, RapidlO 数据报文由包头、 载荷 (英文: payload) 和循环冗余校验 (英 文: Cyclic Redundancy Check, 简称: CRC) 三部分组成。 RapidlO报文类型 包括 10类型和包类型, 在包头部分的格式类型(Format Type, 简称: Ftype) 字段定义。 10类型报文用于直接读写目的器件的存储器, 基于统一的地址窗 口映射方式进行 10数据的收发,包括:读操作(NREAD),写操作(NWRITE) , 带响应写操作 (NWRITE_R) , 流写 (SWRITE) 等。 包类型报文, 主要用 于消息传递 (Message Passing) , 通过邮箱号 (mbox) 确定数据在目的器件 中的位置, 根据接收到的报文的邮箱号把数据保存到对应的缓冲区, 使用统 一的地址接收空间, 包括: 消息 (Message) , 数据流 (Data Streaming ) , 门铃 (Doorbell) 等。
随着虚拟机 (英文: Virtual Machine, 简称: VM) 应用的不断发展, 多 虚拟机***由于其灵活性广泛存在,可以为不同的虚拟机配置不同的优先级、 访问权限、 10带宽、 服务质量(英文: Quality of Service, 简称: QoS )等, 以 灵活处理不同的事务。
现有技术中,对于多虚拟机***而言, RapidlO报文的传输是物理资源共 享的, 不能灵活处理不同配置的虚拟机的 RapidlO报文传输, 影响 RapidlO 报文在多虚拟机***中的处理效率。 发明内容 本发明实施例提供一种快速输入输出报文处理方法、装置及***, 以解 决现有技术中 RapidlO不能灵活处理不同配置的虚拟机的 RapidlO报文传 输, 影响 RapidlO报文在多虚拟机***中的处理效率的问题。 第一方面,本发明实施例提供一种快速输入输出 RapidlO报文处理方法, 包括:
RapidlO报文发送装置获取本地虚拟机待发送的 RapidlO报文; 所述 RapidlO报文发送装置采用与所述本地虚拟机对应的虚拟 RapidlO 通道向对端发送所述 RapidlO报文。
结合第一方面, 在第一方面的第一种可能的实现方式中, 所述 RapidlO 报文发送装置采用所述本地虚拟机对应的虚拟 RapidlO通道向对端发送所述 RapidlO报文之前, 还包括:
所述 RapidlO报文发送装置为所述本地虚拟机分配对应的虚拟 RapidlO 通道。
结合第一方面的第一种可能的实现方式, 在第一方面的第二种可能的实 现方式中, 所述 RapidlO 报文发送装置为所述本地虚拟机分配对应的虚拟 RapidlO通道, 包括:
所述 RapidlO报文发送装置获取所述本地虚拟机的性能需求信息, 所述 性能需求信息包括: 输入输出 10带宽和 /或服务质量 QoS配置;
所述 RapidlO报文发送装置为所述本地虚拟机分配满足所述性能需求信 息的虚拟 RapidlO通道。
结合第一方面以及第一方面的第一至第二种可能的实现方式, 在第一方 面的第三种可能的实现方式中, 所述 RapidlO报文发送装置获取本地虚拟机 待发送的 RapidlO报文, 包括: 所述 RapidlO报文发送装置, 按照本地虚拟机的优先级, 优先获取具有 较高优先级的本地虚拟机的待发送 RapidlO报文。
结合第一方面以及第一方面的第一至第三种可能的实现方式, 在第一方 面的第四种可能的实现方式中, 所述 RapidlO报文发送装置采用所述本地虚 拟机对应的虚拟 RapidlO通道向对端发送所述 RapidlO报文, 包括:
所述 RapidlO报文发送装置确定与所述 RapidlO报文的报文类型对应模 式的发送引擎;
所述 RapidlO报文发送装置采用确定的发送引擎, 在所述本地虚拟机对 应的虚拟 RapidlO通道上向对端发送所述 RapidlO报文。
结合第一方面的第四种可能的实现方式, 在第一方面的第五种可能的实 现方式中, 所述 RapidlO报文发送装置确定与所述 RapidlO报文的报文类型 对应模式的发送引擎, 包括:
若所述 RapidlO报文的报文类型为 I/O类型, 则所述 RapidlO报文发送 装置确定与所述 RapidlO报文的报文类型对应模式的发送引擎为直接内存访 问 DMA模式的发送引擎;
若所述 RapidlO报文的报文类型为包类型, 则所述 RapidlO报文发送装 置确定与所述 RapidlO报文的报文类型对应模式的发送引擎为消息模式的发 送引擎。
结合第一方面的第五种可能的实现方式, 在第一方面的第六种可能的实 现方式中, 所述 RapidlO报文发送装置确定与所述 RapidlO报文的报文类型 对应模式的发送引擎为直接内存访问 DMA模式的发送引擎, 包括:
若所述 RapidlO报文为 DMA读操作, 则所述 RapidlO发送引擎, 确定 与所述 RapidlO报文的报文类型对应模式的发送引擎为 DMA读模式的发送 若所述 RapidlO报文为 DMA写操作, 则所述 RapidlO发送引擎, 确定 与所述 RapidlO报文的报文类型对应模式的发送引擎为 DMA写模式的发送 结合第一方面以及第一方面的第一至第六种可能的实现方式, 在第一方 面的第七种可能的实现方式中, 所述 RapidlO报文发送装置采用与所述本地 虚拟机对应的虚拟 RapidlO通道向对端发送所述 RapidlO报文之后, 还包括: 若所述 RapidlO报文的报文类型为包类型, 所述 RapidlO报文发送装置 接收所述对端返回的报文接收通知消息, 并且将所述报文接收通知消息转发 给所述本地虚拟机。
第二方面,本发明实施例提供一种快速输入输出 RapidlO报文处理方法, 包括:
RapidlO报文发送装置, 获取所述本地虚拟机的待发送 RapidlO报文; 所述 RapidlO报文发送装置, 确定所述 RapidlO报文对应的对端虚拟机 的虚拟机标识 VMID;
所述 RapidlO报文发送装置,将所述 VMID封装到所述 RapidlO报文中; 所述 RapidlO报文发送装置, 向对端发送所述 RapidlO报文, 以使所述 对端将所述 RapidlO报文转发给与所述 VMID对应的虚拟机。
结合第二方面, 在第二方面的第一种可能的实现方式中, 所述 RapidlO 报文发送装置将所述 VMID封装到所述 RapidlO报文中, 包括:
所述 RapidlO报文发送装置将所述 VMID封装到所述 RapidlO报文的包 头部分的业务 Transaction字段中;
或者, 所述 RapidlO报文发送装置将所述 VMID封装到所述 RapidlO报 文的载荷 payload部分的首部。
结合第二方面或第二方面的第一种可能的实现方式, 在第二方面的第二 种可能的实现方式中, 所述 RapidlO报文发送装置确定所述 RapidlO报文对 应的对端虚拟机的虚拟机标识 VMID时, 还包括:
所述 RapidlO报文发送装置确定所述 RapidlO报文对应的对端虚拟机的 分组 Group信息, 其中所述 Group信息对应所述 VMID对应的对端虚拟机处 理所述 RapidlO报文采用的虚拟处理器;
所述 RapidlO报文发送装置将所述 VMID封装到所述 RapidlO报文中时, 还包括:
所述 RapidlO报文发送装置将所述 Group信息封装到所述 RapidlO报文 中;
所述 RapidlO报文发送装置, 向对端发送所述 RapidlO报文, 包括: 所述 RapidlO报文发送装置, 向对端发送所述 RapidlO报文, 以使所述 对端将所述 RapidlO报文, 转发到所述 Group信息对应的虚拟处理器。 结合第二方面的第二种可能的实现方式, 在第二方面的第三种可能的实 现方式中,所述 RapidlO报文发送装置将所述 Group信息封装到所述 RapidlO 报文中, 包括:
所述 RapidlO报文发送装置将所述 Group信息封装到所述 RapidlO报文 的载荷 payload部分的首部。
结合第二方面以及第二方面的第一至第三种可能的实现方式中的任一 项, 在第二方面的第四种可能的实现方式中, 所述 RapidlO报文发送装置获 取所述本地虚拟机的待发送 RapidlO报文, 包括:
所述 RapidlO报文发送装置, 按照本地虚拟机的优先级, 优先获取具有 较高优先级的本地虚拟机的待发送 RapidlO报文。
结合第二方面以及第二方面的第一至第四种可能的实现方式中的任一 项, 在第二方面的第五种可能的实现方式中, 所述 RapidlO报文发送装置, 向对端 RapidlO报文接收装置发送所述 RapidlO报文, 包括:
所述 RapidlO报文发送装置,采用与所述本地虚拟机对应的虚拟 RapidlO 通道, 向对端发送所述 RapidlO报文。
结合第二方面的第五种可能的实现方式, 在第二方面的第六种可能的实 现方式中, 所述 RapidlO 报文发送装置, 采用所述本地虚拟机对应的虚拟 RapidlO通道, 向对端 RapidlO报文接收装置发送所述 RapidlO报文之前, 还 包括:
所述 RapidlO报文发送装置,为所述本地虚拟机分配对应的虚拟 RapidlO 通道。
结合第二方面的第六种可能的实现方式, 在第二方面的第七种可能的实 现方式中, 所述 RapidlO报文发送装置, 为所述本地虚拟机分配对应的虚拟 RapidlO通道, 包括:
所述 RapidlO报文发送装置获取所述本地虚拟机的性能需求信息, 所述 性能需求信息包括: 输入输出 10带宽和 /或服务质量 QoS配置;
所述 RapidlO报文发送装置为所述本地虚拟机分配满足所述性能需求信 息的虚拟 RapidlO通道。
结合第二方面的第五至第七种可能的实现方式中的任一种, 在第二方面 的第八种可能的实现方式中, 所述 RapidlO报文发送装置采用所述本地虚拟 机对应的虚拟 RapidlO通道向对端发送所述 RapidlO报文, 包括: 所述 RapidlO报文发送装置确定与所述 RapidlO报文的报文类型对应模 式的发送引擎;
所述 RapidlO报文发送装置采用确定的发送引擎, 在所述本地虚拟机对 应的虚拟 RapidlO通道上向对端发送所述 RapidlO报文。
结合第二方面的第八种可能的实现方式, 在第二方面的第九种可能的实 现方式中, 所述 RapidlO报文发送装置确定与所述 RapidlO报文的报文类型 对应模式的发送引擎, 包括:
若所述 RapidlO报文的报文类型为 I/O类型, 则所述 RapidlO报文发送 装置确定与所述 RapidlO报文的报文类型对应模式的发送引擎为直接内存访 问 DMA模式的发送引擎;
若所述 RapidlO报文的报文类型为包类型, 则所述 RapidlO报文发送装 置确定与所述 RapidlO报文的报文类型对应模式的发送引擎为消息模式的发 送引擎。
结合第二方面的第九种可能的实现方式, 在第二方面的第十种可能的实 现方式中, 所述 RapidlO报文发送装置确定与所述 RapidlO报文的报文类型 对应模式的发送引擎为直接内存访问 DMA模式的发送引擎, 包括:
若所述 RapidlO报文为 DMA读操作, 则所述 RapidlO发送引擎, 确定 与所述 RapidlO报文的报文类型对应模式的发送引擎为 DMA读模式的发送 若所述 RapidlO报文为 DMA写操作, 则所述 RapidlO发送引擎, 确定 与所述 RapidlO报文的报文类型对应模式的发送引擎为 DMA写模式的发送 结合第二方面以及第二方面的第一至第十种可能的实现方式中的任一 种, 在第二方面的第十一种可能的实现方式中, 所述 RapidlO报文发送装置, 向对端发送所述 RapidlO报文之后, 还包括:
若所述 RapidlO报文的报文类型为包类型, 所述 RapidlO报文发送装置 接收所述对端返回的报文接收通知消息, 并且将所述报文接收通知消息转发 给所述本地虚拟机。
第三方面,本发明实施例提供一种快速输入输出 RapidlO报文处理方法, 包括:
RapidlO报文接收装置接收对端发送的 RapidlO报文,所述 RapidlO报文 中封装有本地虚拟机的虚拟机标识 VMID;
所述 RapidlO报文接收装置, 解析获取所述 VMID;
所述 RapidlO报文接收装置将所述 RapidlO报文转发到所述 VMID对应 的本地虚拟机。
结合第三方面, 在第三方面的第一种可能的实现方式中, 所述 RapidlO 报文接收装置, 解析获取所述 VMID, 包括:
所述 RapidlO 报文接收装置从所述 RapidlO 报文包头部分的业务 Transaction字段或者从所述 RapidlO报文载荷 payload部分的首部解析获取所 述 VMID。
结合第三方面或第三方面的第一种可能的实现方式, 在第三方面的第二 种可能的实现方式中, 所述 RapidlO报文接收装置将所述 RapidlO报文转发 到所述 VMID对应的本地虚拟机之前, 还包括:
所述 RapidlO报文接收装置为本地虚拟机分配对应的 RapidlO接收窗口 和 /或 RapidlO包接收通道;
所述 RapidlO报文接收装置将所述 RapidlO报文转发到所述 VMID对应 的本地虚拟机, 包括:
若所述 RapidlO报文的报文类型为输入输出 10类型,则所述 RapidlO报 文接收装置将所述 RapidlO报文转发到所述 VMID对应的 RapidlO接收窗口; 若所述 RapidlO报文的报文类型为包类型, 则所述 RapidlO报文接收装 置将所述 RapidlO报文转发到所述 VMID对应的 RapidlO包接收通道。
结合第三方面的第二种可能的实现方式, 在第三方面的第三种可能的实 现方式中,所述 RapidlO报文接收装置将所述 RapidlO报文转发到所述 VMID 对应的 RapidlO接收窗口, 包括:
所述 RapidlO报文接收装置根据所述 RapidlO报文中包头部分的偏移地 址字段包括的地址信息, 将所述 RapidlO报文发送到所述地址信息对应的报 文接收地址;
所述 RapidlO报文接收装置将所述 RapidlO报文转发到所述 VMID对应 的 RapidlO包接收通道, 包括: 所述 RapidlO报文接收装置根据所述 Rapid报文中包头部分的偏移地址 字段包括的地址信息, 将所述 RapidlO报文转发到所述地址信息对应的接收 报文存储地址。
结合第三方面以及第三方面的第一至第三种可能的实现方式中的任一 种, 在第三方面的第四种可能的实现方式中, 所述 RapidlO报文接收装置根 据所述 RapidlO 报文中包头部分的地址字段中包括的地址信息, 将所述 RapidlO报文转发到所述地址信息对应的接收报文存储地址之后, 还包括: 若所述 RapidlO报文的报文类型为包类型, 则所述 RapidlO报文接收装 置向对端返回报文接收通知消息。
结合第三方面以及第三方面的第一至第四种可能的实现方式中的任一 种, 在第三方面的第五种可能的实现方式中, 所述 RapidlO报文还封装有分 组 Group信息, 其中所述 Group信息对应所述 VMID对应的本地虚拟机处理 所述 RapidlO报文采用的虚拟处理器;
所述 RapidlO报文接收装置, 解析获取所述 Group信息 ·'
所述 RapidlO报文接收装置将所述 RapidlO报文转发到所述 VMID对应 的本地虚拟机, 包括:
所述 RapidlO报文接收装置将所述 RapidlO报文转发到所述 VMID对应 的本地虚拟机的所述 Group信息对应的虚拟处理器, 以使所述虚拟处理器对 所述 RapidlO报文进行处理。
结合第三方面的第五种可能的实现方式, 在第三方面的第六种可能的实 现方式中, 所述 RapidlO报文接收装置, 解析获取所述 Group信息, 包括: 所述 RapidlO报文接收装置从所述 RapidlO报文载荷 payload部分的首部 解析获取所述 Group信息。
第四方面,本发明实施例提供一种快速输入输出 RapidlO报文发送装置, 包括:
获取模块, 用于获取本地虚拟机待发送的 RapidlO报文;
发送模块, 用于采用与所述本地虚拟机对应的虚拟 RapidlO通道向对端 发送所述 RapidlO报文。
结合第四方面, 在第四方面的第一种可能的实现方式中, 还包括: 分配模块,用于在所述发送模块采用所述本地虚拟机对应的虚拟 RapidlO 通道向对端发送所述 RapidlO报文之前, 为所述本地虚拟机分配对应的虚拟 RapidlO通道。
结合第四方面的第一种可能的实现方式, 在第四方面的第二种可能的实 现方式中, 所述分配模块, 具体用于:
获取所述本地虚拟机的性能需求信息, 所述性能需求信息包括: 输入输 出 10带宽和 /或服务质量 QoS配置;
为所述本地虚拟机分配满足所述性能需求信息的虚拟 RapidlO通道。 结合第四方面以及第四方面的第一至第二种可能的实现方式, 在第四方 面的第三种可能的实现方式中, 所述获取模块, 具体用于:
按照本地虚拟机的优先级, 优先获取具有较高优先级的本地虚拟机的待 发送 RapidlO报文。
结合第四方面以及第四方面的第一至第三种可能的实现方式, 在第四方 面的第四种可能的实现方式中, 还包括确定模块;
所述确定模块, 用于确定与所述 RapidlO报文的报文类型对应模式的发 送引擎;
所述发送模块, 具体用于:
采用所述确定模块确定的发送引擎, 在所述本地虚拟机对应的虚拟 RapidlO通道上向对端发送所述 RapidlO报文。
结合第四方面的第四种可能的实现方式, 在第四方面的第五种可能的实 现方式中, 所述确定模块, 具体用于:
若所述 RapidlO报文的报文类型为 I/O类型, 则确定与所述 RapidlO报 文的报文类型对应模式的发送引擎为直接内存访问 DMA模式的发送引擎; 若所述 RapidlO报文的报文类型为包类型, 则确定与所述 RapidlO报文 的报文类型对应模式的发送引擎为消息模式的发送引擎。
结合第四方面的第五种可能的实现方式, 在第四方面的第六种可能的实 现方式中, 所述确定模块, 具体用于:
若所述 RapidlO报文为 DMA读操作, 则确定与所述 RapidlO报文的报 文类型对应模式的发送引擎为 DMA读模式的发送引擎;
若所述 RapidlO报文为 DMA写操作, 则确定与所述 RapidlO报文的报 文类型对应模式的发送引擎为 DMA写模式的发送引擎。 结合第四方面以及第四方面的第一至第六种可能的实现方式, 在第四方 面的第七种可能的实现方式中, 还包括接收模块;
所述接收模块, 用于在所述发送模块采用与所述本地虚拟机对应的虚拟
RapidlO通道向对端发送所述 RapidlO报文之后,
若所述 RapidlO报文的报文类型为包类型, 接收所述对端返回的报文接 收通知消息, 并且将所述报文接收通知消息转发给所述本地虚拟机。
第五方面, 本发明实施例提供一种 RapidlO报文发送装置, 包括: 获取模块, 用于获取所述本地虚拟机的待发送 RapidlO报文;
确定模块, 用于确定所述 RapidlO报文对应的对端虚拟机的虚拟机标识 VMID;
封装模块, 用于将所述 VMID封装到所述 RapidlO报文中;
发送模块, 用于向对端发送所述 RapidlO 报文, 以使所述对端将所述 RapidlO报文转发给与所述 VMID对应的虚拟机。
结合第五方面, 在第五方面的第一种可能的实现方式中, 所述封装模块, 具体用于:
将所述 VMID封装到所述 RapidlO报文的包头部分的业务 Transaction字 段中;
或者, 将所述 VMID封装到所述 RapidlO报文的载荷 payload部分的首 部。
结合第五方面或第五方面的第一种可能的实现方式, 在第五方面的第二 种可能的实现方式中, 所述确定模块在确定所述 RapidlO报文对应的对端虚 拟机的虚拟机标识 VMID时, 还用于:
确定所述 RapidlO报文对应的对端虚拟机的分组 Group信息, 其中所述 Group信息对应所述 VMID对应的对端虚拟机处理所述 RapidlO报文采用的 虚拟处理器;
所述封装模块,在将所述 VMID封装到所述 RapidlO报文中时, 还用于: 将所述 Group信息封装到所述 RapidlO报文中;
所述发送模块, 具体用于:
向对端发送所述 RapidlO报文, 以使所述对端将所述 RapidlO报文, 转 发到所述 Group信息对应的虚拟处理器。 结合第五方面的第二种可能的实现方式, 在第五方面的第三种可能的实 现方式中, 所述封装模块, 具体用于:
将所述 Group信息封装到所述 RapidIO报文的载荷 payload部分的首部。 结合第五方面以及第五方面的第一至第三种可能的实现方式中的任一 项, 在第五方面的第四种可能的实现方式中, 所述获取模块, 具体用于: 按照本地虚拟机的优先级, 优先获取具有较高优先级的本地虚拟机的待 发送 RapidIO报文。
结合第五方面以及第五方面的第一至第四种可能的实现方式中的任一 项, 在第五方面的第五种可能的实现方式中, 所述发送模块, 具体用于: 采用与所述本地虚拟机对应的虚拟 RapidIO 通道, 向对端发送所述 RapidIO报文。
结合第五方面的第五种可能的实现方式, 在第五方面的第六种可能的实 现方式中, 还包括:
分配模块,用于在所述发送模块采用所述本地虚拟机对应的虚拟 RapidIO 通道向对端发送所述 RapidIO报文之前, 为所述本地虚拟机分配对应的虚拟 RapidIO通道。
结合第五方面的第六种可能的实现方式, 在第五方面的第七种可能的实 现方式中, 所述分配模块, 具体用于:
获取所述本地虚拟机的性能需求信息, 所述性能需求信息包括: 输入输 出 10带宽和 /或服务质量 QoS配置;
为所述本地虚拟机分配满足所述性能需求信息的虚拟 RapidIO通道。 结合第五方面的第五至第七种可能的实现方式中的任一种, 在第五方面 的第八种可能的实现方式中, 所述发送模块, 具体用于:
确定与所述 RapidIO报文的报文类型对应模式的发送引擎;
采用确定的发送引擎, 在所述本地虚拟机对应的虚拟 RapidIO通道上向 对端发送所述 RapidIO报文。
结合第五方面的第八种可能的实现方式, 在第五方面的第九种可能的实 现方式中, 所述发送模块, 具体用于:
若所述 RapidIO报文的报文类型为 I/O类型, 则确定与所述 RapidIO报 文的报文类型对应模式的发送引擎为直接内存访问 DMA模式的发送引擎; 若所述 RapidlO报文的报文类型为包类型, 则确定与所述 RapidlO报文 的报文类型对应模式的发送引擎为消息模式的发送引擎。
结合第五方面的第九种可能的实现方式, 在第五方面的第十种可能的实 现方式中, 所述发送模块, 具体用于:
若所述 RapidlO报文为 DMA读操作, 则确定与所述 RapidlO报文的报 文类型对应模式的发送引擎为 DMA读模式的发送引擎;
若所述 RapidlO报文为 DMA写操作, 则确定与所述 RapidlO报文的报 文类型对应模式的发送引擎为 DMA写模式的发送引擎。
结合第五方面以及第五方面的第一至第十种可能的实现方式中的任一 种, 在第五方面的第十一种可能的实现方式中, 还包括接收模块;
所述接收模块用于在所述发送模块采用与所述本地虚拟机对应的虚拟 RapidlO通道向对端发送所述 RapidlO报文之后,若所述 RapidlO报文的报文 类型为包类型, 接收所述对端返回的报文接收通知消息, 并且将所述报文接 收通知消息转发给所述本地虚拟机。
第六方面,本发明实施例提供一种快速输入输出 RapidlO报文接收装置, 包括:
接收模块, 用于接收对端发送的 RapidlO报文, 所述 RapidlO报文中封 装有本地虚拟机的虚拟机标识 VMID;
解析模块, 用于解析获取所述 VMID;
转发模块, 用于将所述 RapidlO报文转发到所述 VMID对应的本地虚拟 机。
结合第六方面, 在第六方面的第一种可能的实现方式中, 所述解析模块, 具体用于:
从所述 RapidlO 报文包头部分的业务 Transaction 字段或者从所述 RapidlO报文载荷 payload部分的首部解析获取所述 VMID。
结合第六方面或第六方面的第一种可能的实现方式, 在第六方面的第二 种可能的实现方式中, 还包括:
分配模块, 用于在所述转发模块将所述 RapidlO报文转发到所述 VMID 对应的本地虚拟机之前, 为本地虚拟机分配对应的 RapidlO 接收窗口和 /或 RapidlO包接收通道; 所述转发模块, 具体用于:
若所述 RapidlO报文的报文类型为输入输出 10类型, 则将所述 RapidlO 报文转发到所述 VMID对应的 RapidlO接收窗口;
若所述 RapidlO报文的报文类型为包类型, 则将所述 RapidlO报文转发 到所述 VMID对应的 RapidlO包接收通道。
结合第六方面的第二种可能的实现方式, 在第六方面的第三种可能的实 现方式中, 所述转发模块, 具体用于:
若所述 RapidlO报文的报文类型为 10类型,根据所述 RapidlO报文中包 头部分的偏移地址字段包括的地址信息, 将所述 RapidlO报文发送到所述地 址信息对应的报文接收地址;
若所述 RapidlO报文的报文类型为包类型, 根据所述 RapidlO报文中包 头部分的偏移地址字段包括的地址信息, 将所述 RapidlO报文转发到所述地 址信息对应的接收报文存储地址。
结合第六方面以及第六方面的第一至第三种可能的实现方式中的任一 种, 在第六方面的第四种可能的实现方式中, 还包括发送模块;
所述发送模块, 用于在所述转发模块在将所述 RapidlO报文转发到所述 VMID对应的本地虚拟机之后, 若所述 RapidlO报文的报文类型为包类型, 向对端返回报文接收通知消息。
结合第六方面以及第六方面的第一至第四种可能的实现方式中的任一 种, 在第六方面的第五种可能的实现方式中, 所述 RapidlO报文中还封装有 分组 Group信息, 其中所述 Group信息对应所述 VMID对应的本地虚拟机处 理所述 RapidlO报文采用的虚拟处理器;
所述解析模块, 还用于: 解析获取所述 Group信息;
所述转发模块, 还用于: 将所述 RapidlO报文转发到所述 VMID对应的 本地虚拟机的所述 Group信息对应的虚拟处理器, 以使所述虚拟处理器对所 述 RapidlO报文进行处理。
结合第六方面的第五种可能的实现方式, 在第六方面的第六种可能的实 现方式中, 所述解析模块, 具体用于:
从所述 RapidlO报文载荷 payload部分的首部解析获取所述 Group信息。 第七方面,本发明实施例提供一种快速输入输出 RapidlO报文发送装置, 包括: 第一处理器, 以及与所述第一处理器相连的第一存储器, 所述第一存 储器中存储一组程序代码, 所述第一处理器可以执行所述程序代码, 以实现 如第一方面以及第一方面的第一至第七种可能的实现方式中任一项所述的
RapidlO报文处理方法中的歩骤。
第八方面,本发明实施例提供一种快速输入输出 RapidlO报文发送装置, 包括: 第二处理器, 以及与所述第二处理器相连的第二存储器, 所述第二存 储器中存储一组程序代码, 所述第二处理器可以执行所述程序代码, 以实现 如第二方面以及第二方面的第一至第十一种可能的实现方式中任一项所述的 RapidlO报文处理方法中的歩骤。
第九方面,本发明实施例提供一种快速输入输出 RapidlO报文接收装置, 包括: 第三处理器, 以及与所述第三处理器相连的第三存储器, 所述第三存 储器中存储一组程序代码, 所述第三处理器可以执行所述程序代码, 以实现 如第三方面以及第三方面的第一至第六种可能的实现方式中任一项所述的 RapidlO报文处理方法中的歩骤。
第十方面,本发明实施例提供一种快速输入输出 RapidlO报文处理***, 包括: 如第八方面所述的 RapidlO报文发送装置, 以及如第九方面所述的 RapidlO报文接收装置, 其中所述 RapiodlO报文发送装置与所述 RapidlO报 文接收装置通过 RapidlO通道相连接。
本发明实施例, 通过 RapidlO报文发送装置为每个虚拟机分配对应的虚 拟通道, 并根据各虚拟机的性能需求分配满足其性能需求的虚拟通道, 实现 了不同虚拟机 RapidlO传输通道物理资源的可配置使用使得 RapidlO报文传 输支持多虚拟机之间物理资源访问的的相互隔离, 并可按照各虚拟机的配置 需求灵活处理其 RapidlO报文的发送, , 同时, 通过配置不同模式的发送引 擎处理对应类型的 RapidlO报文, 进一歩提升虚拟机对 I/O接口的访问效率, 从而提升***的整体处理性能。 附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将 对实施例或现有技术描述中所需要使用的附图作一简单地介绍, 显而易 见地, 下面描述中的附图是本发明的一些实施例, 对于本领域普通技术 人员来讲, 在不付出创造性劳动性的前提下, 还可以根据这些附图获得 其他的附图。
图 1为本发明实施例提供的 RapidIO报文处理方法实施例一的流程图; 图 la为图 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报文发送装置获取本地虚拟机待发送的 RapidlO报文; 歩骤 102、 RapidlO报文发送装置采用与本地虚拟机对应的虚拟 RapidlO 通道向对端发送 RapidlO报文。
进一歩地, 歩骤 102之前, 还包括:
RapidlO报文发送装置,为本地虚拟机分配对应的虚拟 RapidlO通道。其 中, RapidlO报文发送装置可以获取本地虚拟机的性能需求信息,所述性能需 求信息包括但不限于: 输入输出 (Input and Output, 简称: 10) 带宽和 /或服 务质量 (Quality of Service, 简称: QoS ) 配置, 并为本地虚拟机分配满足性 能需求信息的虚拟 RapidlO通道, 从而可以按照各本地虚拟机的性能需求发 送 RapidlO报文。
歩骤 102之后, 还包括: 若 RapidlO报文为包类型的报文, RapidlO报文 发送装置接收对端返回的报文接收通知消息, 并将该报文接收通知消息转发 给本地虚拟机。
优选地, 歩骤 101中, RapidlO报文发送装置, 可按照本地虚拟机的优先 级, 优先获取具有较高优先级的本地虚拟机的待发送 RapidlO报文。
优选地, RapidlO报文发送装置, 可获取 RapidlO报文的报文类型, 确定 与 RapidlO报文的报文类型对应模式的发送引擎, 并采用确定的发送引擎, 在所述本地虚拟机对应的虚拟 RapidlO通道上向对端发送所述 RapidlO报文: 若 RapidlO报文的报文类型为 I/O 类型, 包括: NREAD, NWRITE, NWRITE_R, S WRITE等,不再赘述,则 RapidlO报文发送装置确定与 RapidlO 报文的报文类型对应模式的发送引擎为直接内存访问 (Direct Memory Access, 简称: DMA) 模式的发送引擎;
若 RapidlO报文的报文类型为包类型, 包括: 消息 (Message) , 数据流 (Data Streaming) , 门铃 (Doorbell) 等, 不再赘述, 贝 !J RapidlO报文发送 装置确定与 RapidlO报文的报文类型对应模式的发送引擎为消息模式的发送 其中, RapidlO报文发送装置确定与 RapidlO报文的报文类型对应模式的 发送引擎为 DMA模式的发送引擎, 更进一歩地可以确定:
若 RapidlO报文为 DMA读操作,则对应模式的发送引擎为 DMA读模式 的发送引擎;
若 RapidlO报文为 DMA写操作,则对应模式的发送引擎为 DMA写模式 的发送引擎。
具体来说,本地虚拟机***包括至少一个虚拟机, RapidlO报文发送装置, 可以为每一个本地虚拟机分配相应的虚拟通道, 并且根据每一个虚拟机的性 能需求信息, 分配满足该虚拟机性能需求信息的虚拟 RapidlO通道, 同时, 在获取本地虚拟机待发送报文时, 按照各虚拟机的优先等级, 优先获取具有 较高优先级的本地虚拟机的待发送 RapidlO报文。 RapidlO报文发送装置,在 获取待发送的 RapidlO报文后, 按照虚拟机的性能需求在虚拟 RapidlO通道 上发送该 RapidlO报文。 优选地, 该 RapidlO报文发送装置, 可以包括不同 模式的发送引擎,用于发送对应类型的 RapidlO报文:对于 10类型的 RapidlO 报文, 可以采用 DMA模式的发送引擎发送, 对于包类型的 RapidlO报文, 可以采用消息模式的发送引擎, 进一歩地, 该 DMA模式的发送引擎还可以 分为 DMA读引擎和 DMA写引擎, 可以分别用于发送 10读类型的 Rapid报 文和 10写类型的 RapidlO报文。
具体实现时, RapidlO 报文发送装置, 可以根据本地虚拟机的数量, 将 RapidlO物理传输通道划分为相同数量的虚拟通道,使得每个虚拟机都有相对 独立的传输通道, 并且可设置相应的 10带宽和 /或 QoS配置, 以保证每台虚 拟机相对独立的传输带宽和传输质量。 RapidlO报文发送装置,可以为每一个 虚拟机分配相应的待发送 RapidlO消息队列, 给每个消息队列设置与虚拟机 相同的优先级, 优先从较高优先级的消息队列中获取待发送的报文。 在发送 RapidlO报文时, RapidlO报文发送装置, 可包括多个发送引擎, 并且为每个 发送引擎分配相应的处理任务, 使得每个发送引擎可以专门相同类型的 RapidlO报文,减少发送引擎对 RapidlO报文类型的解析, 提高 RapidlO报文 的发送效率。 图 la为图 1所示方法实施例中一个 RapidlO报文的发送过程示 意图, 如图 la所示, 该 RapidlO报文首先从本地虚拟机, 到达本地虚拟机对 应的 RapidlO消息队列, 然后根据该 RapidlO报文的报文类型发送到对应模 式的发送引擎, 最后通过对应的虚拟通道发送到对端。
该方法实施例, 通过 RapidlO报文发送装置为每个虚拟机分配对应的虚 拟通道, 并根据各虚拟机的性能需求分配满足其性能需求的虚拟通道, 实现 了不同虚拟机 RapidlO传输通道物理资源的可配置使用使得 RapidlO报文传 输支持多虚拟机之间物理资源访问的的相互隔离, 并可按照各虚拟机的配置 需求灵活处理其 RapidlO报文的发送, , 同时, 通过配置不同模式的发送引 擎处理对应类型的 RapidlO报文, 进一歩提升虚拟机对 I/O接口的访问效率, 从而提升***的整体处理性能。
现有技术中, 如果对端也是多虚拟机***, 则对端在接收到 RapidlO报 文后, 不能直接转发到对应的虚拟机上, 而需要采用应用软件对 RapidlO报 文进行分析之后转发到对应的虚拟机, 存在处理效率低下的问题, 针对此问 题, 本发明还提供图 2所示的 RapidlO报文处理方法实施例。
图 2为本发明实施例提供的 RapidlO报文处理方法实施例二的流程图, 如图 2所示, 该方法实施例, 包括:
歩骤 201、RapidIO报文发送装置获取本地虚拟机的待发送 RapidlO报文; 歩骤 202、 RapidlO报文发送装置确定上述 RapidlO报文对应的对端虚拟 机的虚拟机标识 VMID;
歩骤 203、RapidIO报文发送装置将该 VMID封装到上述 RapidlO报文中; 歩骤 204、 RapidlO报文发送装置向对端发送 RapidlO报文, 以使对端将 该 RapidlO报文转发给与 VMID对应的虚拟机。
优选地,歩骤 201中, RapidlO报文发送装置确定 RapidlO报文对应的对 端虚拟机的 VMID时, 还确定该 RapidlO报文对应的分组 Group信息, 并将 该 Group信息封装在 RapidlO报文中, 其中该 Group信息与对端虚拟机处理 该 RapidlO报文采用的虚拟处理器对应;
相应地, RapidlO报文发送装置, 向对端发送 RapidlO报文, 以使对端将 该 RapidlO报文, 进一歩地转发到 Group信息对应的虚拟处理器。
通常地, 在多核处理器(Central Processing Unit)***中, 存在多个虚拟 机 (Virtual Machine, 简称: VM) , 相应的多核处理器为每个 VM分配相应 的虚拟处理器(英文: Virtual CPU, 简称: VCPU) , 使得在用户看来, 每个 VM都工作在独立的多核处理器上, 可独立使用这多个 CPU。 以多核处理器 ***包括两个处理器为例来说, 如图 2b所示,该双核 CPU***上安装有 VM1 禾口 VM2, 贝 lj CPU1分另 lj给 VM1禾 B VM2分配 VCPU11禾 B VCPU12, CPU2分 别给 VM1和 VM2分配 VCPU21和 VCPU22, 使得 VM1工作在 VCPU11和 VCPU21上, VM2工作在 VCPU12和 VCPU22上, 看似 VM1和 VM2各自 独立工作在 CPU1和 CPU2上。 该 Group信息则用于指示 VM到底采用位于 那个物理 CPU上的 VCPU进行处理 RapidlO报文, 即对于 VM1 是采用 VCPU11还是 VCPU21处理该 RapidlO报文。
进一歩地, 该 VMID封装到 RapidlO报文的包头部分的业务 Transaction 字段,或者,该 VMID封装到 RapidlO报文载荷 payload部分的首部;该 Group 信息封装到 RapidlO报文的载荷 payload部分的首部。
进一歩地, 该方法实施例中的 RapidlO报文发送装置, 可以采用图 1所 示方法实施例中 RapidlO报文发送装置的发送方法, 按照优先级获取待发送 的 RapidlO报文, 并采用与 RapidlO报文对应模式的发送引擎, 在本地虚拟 机对应的虚拟 RapidlO通道上向对端发送 RapidlO报文, 具体不再赘述。
具体来说, RapidlO报文发送装置, 在确定对端虚拟机的 VMID和 /或分 组 Group 信息后, 可将 VMID 封装在 RapidlO 报文的包头部分的业务 Transcation字段或者该 RapidlO报文的载荷 payload部分的首部, 如图 2a中 的斜线阴影部分所示, 和 /或将 Group 信息分装在该 RapidlO 报文的载荷 payload部分的首部,封装后,将 RapidlO报文发送给对端,以使对端的 RapidlO 报文接收装置,在接收该 RapidlO报文后,可以解析获取该 VMID和 /或 Group 信息, 并将该 RapidlO转发到 VMID对应的虚拟机上, 进一歩地, 转发到该 VMID对应的虚拟机处理该 RapidlO对应的虚拟处理器上。
需说明的是, RapidlO报文发送装置可通过应用软件与对端协商,确定对 端虚拟机的 VMID和 Group信息,进而将该 VMID和 Group信息封装进待发 送的 Rapid报文中。
该方法实施例, 通过 RapidlO报文发送装置, 封装 RapidlO报文对应的 对端虚拟机的 VMID和 /或 Group信息, 使得对端在接收该 RapidlO报文后, 可直接将该 RapidlO转发到 VMID对应的虚拟机上,和 /或转发到该 Group信 息对应的虚拟处理器上, 可在图 1 方法实施例的基础上, 进一歩地, 提高 RapidlO报文虚拟机环境下的处理效率。
图 3为本发明实施例提供的 RapidlO报文处理方法实施例三的流程图, 该实施例中所述的 RapidlO报文接收装置与图 2所示方法实施例中的 RapidlO 报文发送装置对应, 如图 3所示, 该方法实施例, 包括如下歩骤: 歩骤 301、 RapidlO 报文接收装置接收对端发送的 RapidlO 报文, 该 RapidlO报文中封装有本地虚拟机的 VMID;
歩骤 302、 RapidlO报文接收装置, 解析获取 VMID;
歩骤 303、 RapidlO报文接收装置将该 RapidlO报文转发到 VMID对应的 本地虚拟机。
进一歩地,歩骤 302中, RapidlO报文接收装置可以从 RapidlO报文包头 部分的业务 Transaction字段或者从 RapidlO报文载荷 payload部分的首部解 析获取 VMID。
进一歩地, 歩骤 303之前, 还包括:
RapidlO报文接收装置为本地虚拟机分配对应的 RapidlO接收窗口和 /或 RapidlO包接收通道;
相应地, 若 RapidlO报文的报文类型为输入输出 10类型, 则 RapidlO报 文接收装置将 RapidlO报文转发到该 VMID对应的 RapidlO接收窗口;
若 RapidlO 报文的报文类型为包类型, 则 RapidlO 报文接收装置将 RapidlO报文转发到 VMID对应的 RapidlO包接收通道。
更进一歩地, 对于 10类型的 RapidlO报文, RapidlO报文接收装置根据 该 RapidlO报文中包头部分的偏移地址字段包括的地址信息, 将该 RapidlO 报文发送到地址信息对应的报文接收地址; 对于包类型的 RapidlO 报文, RapidlO报文接收装置根据 RapidlO报文中包头部分的偏移地址字段包括的 地址信息, 将该 RapidlO报文转发到地址信息对应的接收报文存储地址, 并 向对端返回报文接收通知消息。
优选地, 当 RapidlO报文还封装有分组 Group信息, 其中 Group信息对 应该 VMID 对应的本地虚拟机处理 RapidlO 报文时采用的虚拟处理器, RapidlO报文接收装置, 解析获取 Group信息, 相应地, 将该 RapidlO报文转 发到该 VMID对应的本地虚拟机的 Group信息对应的虚拟处理器, 以使该虚 拟处理器对 RapidlO报文进行处理,其中, RapidlO报文接收装置可从 RapidlO 报文载荷 payload部分的首部解析获取 Group信息。
需说明的是, 该实施例中的虚拟处理器, 与图 2所示方法实施例中相同, 具体不再赘述。
具体来说, RapidlO 报文接收装置, 为本地虚拟机分配对应的用于处理 10类型报文的 RapidlO接收窗口,和 /或用于处理包类型的 RapidlO包接收通 道,该 RapidlO接收窗口和 RapidlO包接收通道与本地虚拟机的 VMID对应; 在接收到对端发送的 RapidlO报文后, 解析获取该 RapidlO报文对应的本地 虚拟机的 VMID, 然后确定该 RapidlO报文的报文类型, 若是 10类型报文, 则将该 RapidlO报文转发到 VMID对应的 RapidlO接收窗口, 若是包类型报 文, 则将 RapidlO报文转发到 VMID对应的 RapidlO包接收通道。进一歩地, 获取该 RapidlO报文包头部分的偏移地址(如图 2a中阴影部分所示的偏移地 址)字段包括的地址信息, 对于 10类型报文, 将该 RapidlO报文进一歩发送 到该地址信息对应的报文接收地址, 该地址信息对应虚拟机所在***的存储 器中的偏移地址, 使得对端虚拟机可以直接对该虚拟机可访问的存储地址进 行直接 10读写; 对于包类型的报文, 将该 RapidlO报文进一歩发送到该地址 信息对应的接收报文存储地址, 使得 VMID对应的虚拟机可以从该接收报文 存储地址获取该 RapidlO报文并进行处理, 同时向对端返回该 RapidlO报文 的报文接收通知消息,其中, RapidlO报文接收装置可以通过消息或中断方式 将该报文接收通知消息返回给对端。 优选地, 若对端在发送的 RapidlO报文 中封装有 Group信息, RapidlO报文接收装置可进一歩从该 RapidlO报文的负 载部分的首部获取该 Group信息, 并根据该 Group信息, 转发到对应的虚拟 处理器对该 RapidlO报文进行处理。
需说明的是, 对于 10类型的 RapidlO报文, 在将该 RapidlO报文转发到 偏移地址字段中地址信息对应的报文接收地址之前, 若该虚拟机***对应的 存储地址有权限访问设置, 需要确定对端虚拟机有权限访问该地址信息对应 的存储器地址。
该方法实施例, 通过 RapidlO报文接收装置解析获取 VMID和 /或 Group 信息, 直接将 RapidlO报文转发到 VMID对应的虚拟机, 和 /或对应的虚拟处 理器, 实现了 RapidlO报文支持虚拟机和 /或虚拟处理器的映射, 提升了虚拟 机*** 10接口的处理性能, 提高了 RapidlO报文的处理效率, 同时通过设置 本地虚拟机对应的接收窗口和 /或接收通道, 实现了本地虚拟机之间的接收通 道及访问的相互隔离。
本发明实施例进一歩给出实现上述方法实施例的装置实施例。
图 4为本发明实施例提供的 RapidlO报文发送装置实施例一的结构示意 图, 如图 4所示, 该 RapidlO报文发送装置 400, 包括: 获取模块 401、 发送 模块 402, 其中,
获取模块 401, 用于获取本地虚拟机待发送的 RapidlO报文;
发送模块 402,用于采用与所述本地虚拟机对应的虚拟 RapidlO通道向对 端发送所述 RapidlO报文。
进一歩地, 该 RapidlO报文发送装置 400, 还包括:
分配模块 403,用于在发送模块 402采用本地虚拟机对应的虚拟 RapidlO 通道向对端发送 RapidlO报文之前, 为本地虚拟机分配对应的虚拟 RapidlO 通道。 其中, 该分配模块 403, 具体用于获取本地虚拟机的性能需求信息, 性能需求信息包括: 输入输出 10带宽和 /或服务质量 QoS配置; 并为本地虚 拟机分配满足性能需求信息的虚拟 RapidlO通道。
进一歩地, 该 RapidlO报文发送装置 400, 还包括: 接收模块 404, 用于 在上述发送模块 402采用与本地虚拟机对应的虚拟 RapidlO通道向对端发送 RapidlO报文之后,
若 RapidlO报文的报文类型为包类型, 接收对端返回的报文接收通知消 息, 并且将报文接收通知消息转发给本地虚拟机。
优选地, 上述获取模块 401, 具体用于:
按照本地虚拟机的优先级, 优先获取具有较高优先级的本地虚拟机的待 发送 RapidlO报文。
优选地, 上述 RapidlO报文发送装置 400, 还包括: 确定模块 405, 用于 确定与 RapidlO报文的报文类型对应模式的发送引擎;
相应地, 发送模块 402, 具体用于:
采用确定模块 405确定的发送引擎, 在本地虚拟机对应的虚拟 RapidlO 通道上向对端发送 RapidlO报文。
上述确定模块 405, 具体用于:
若 RapidlO报文的报文类型为 I/O类型, 则确定与 RapidlO报文的报文 类型对应模式的发送引擎为直接内存访问 DMA模式的发送引擎;
若 RapidlO报文的报文类型为包类型, 则确定与 RapidlO报文的报文类 型对应模式的发送引擎为消息模式的发送引擎。
其中, 若 RapidlO报文的报文类型为 I/O类型, 上述确定模块 405, 具体 用于:
若 RapidlO报文为 DMA读操作, 则确定与 RapidlO报文的报文类型对 应模式的发送引擎为 DMA读模式的发送引擎;
若 RapidlO报文为 DMA写操作, 则确定与 RapidlO报文的报文类型对 应模式的发送引擎为 DMA写模式的发送引擎。
本实施例提供的 RapidlO报文发送装置 400,可用于执行图 1所示方法实 施例的技术方案, 其实现原理和技术效果类似, 具体不再赘述。
图 5为本发明实施例提供的 RapidlO报文发送装置实施例二的结构示意 图, 如图 5所示, 该 RapidlO报文接收装置 500, 包括: 获取模块 501、 确定 模块 502、 封装模块 503以及发送模块 504, 其中,
获取模块 501, 用于获取本地虚拟机的待发送 RapidlO报文;
确定模块 502, 用于确定 RapidlO报文对应的对端虚拟机的虚拟机标识 VMID;
封装模块 503, 用于将 VMID封装到 RapidlO报文中;
发送模块 504,用于向对端发送 RapidlO报文, 以使对端将 RapidlO报文 转发给与 VMID对应的虚拟机。
进一歩地, 上述封装模块 503, 具体用于:
将 VMID封装到 RapidlO报文的包头部分的业务 Transaction字段中; 或者, 将 VMID封装到 RapidlO报文的载荷 payload部分的首部。
优选地, 上述确定模块 502在确定 RapidlO报文对应的对端虚拟机的虚 拟机标识 VMID时, 还用于:
确定 RapidlO报文对应的对端虚拟机的分组 Group信息, 其中 Group信 息对应 VMID对应的对端虚拟机处理 RapidlO报文采用的虚拟处理器; 封装模块 503, 在将 VMID封装到 RapidlO报文中时, 还用于: 将 Group信息封装到 RapidlO报文中;
发送模块 504, 具体用于:
向对端发送 RapidlO报文, 以使对端将 RapidlO报文, 转发到 Group信 息对应的虚拟处理器。
进一歩地, 封装模块 503, 具体用于:
将 Group信息封装到 RapidlO报文的载荷 payload部分的首部。 优选地, 上述获取模块 501, 具体用于:
按照本地虚拟机的优先级, 优先获取具有较高优先级的本地虚拟机的待 发送 RapidlO报文。
优选地, 上述发送模块 504, 具体用于:
采用与本地虚拟机对应的虚拟 RapidlO通道, 向对端发送 RapidlO报文。 相应地, 该 RapidlO报文发送装置 500, 还包括:
分配模块 505,用于在发送模块 504采用本地虚拟机对应的虚拟 RapidlO 通道向对端发送 RapidlO报文之前, 为本地虚拟机分配对应的虚拟 RapidlO 通道。
其中, 该分配模块 505, 具体用于:
获取本地虚拟机的性能需求信息, 性能需求信息包括: 输入输出 10带宽 和 /或服务质量 QoS配置;
为本地虚拟机分配满足性能需求信息的虚拟 RapidlO通道。
优选地, 上述确定模块 502, 还用于: 确定与 RapidlO报文的报文类型对 应模式的发送引擎;
发送模块 504, 具体用于:
采用确定的发送引擎, 在本地虚拟机对应的虚拟 RapidlO通道上向对端 发送 RapidlO报文。
其中, 该确定模块 502, 具体用于:
若 RapidlO报文的报文类型为 I/O类型, 则确定与 RapidlO报文的报文 类型对应模式的发送引擎为直接内存访问 DMA模式的发送引擎;
若 RapidlO报文的报文类型为包类型, 则确定与 RapidlO报文的报文类 型对应模式的发送引擎为消息模式的发送引擎。
若 RapidlO报文的报文类型为 I/O类型, 确定模块 502, 还用于: 若 RapidlO报文为 DMA读操作, 则确定与 RapidlO报文的报文类型对 应模式的发送引擎为 DMA读模式的发送引擎;
若 RapidlO报文为 DMA写操作, 则确定与 RapidlO报文的报文类型对 应模式的发送引擎为 DMA写模式的发送引擎。
进一歩地, 该 RapidlO报文发送装置 500, 还包括接收模块 506, 用于在 上述发送模块 504 采用与本地虚拟机对应的虚拟 RapidlO通道向对端发送 RapidlO报文之后,
若 RapidlO报文的报文类型为包类型, 接收对端返回的报文接收通知消 息, 并且将报文接收通知消息转发给本地虚拟机。
本实施例提供的 RapidlO报文发送装置 500,可用于执行图 2所示方法实 施例中的技术方案, 其实现原理和技术效果类似, 具体不再赘述。
图 6为本发明实施例提供的 RapidlO报文接收装置实施例一的结构示意 图, 如图 6所示, 该 RapidlO报文接收装置 600, 包括: 接收模块 601, 解析 模块 602, 转发模块 603, 其中,
接收模块 601, 用于接收对端发送的 RapidlO报文, RapidlO报文中封装 有本地虚拟机的虚拟机标识 VMID;
解析模块 602, 用于解析获取 VMID;
转发模块 603, 用于将 RapidlO报文转发到 VMID对应的本地虚拟机。 进一歩地, 上述解析模块 602, 具体用于:
从 RapidlO报文包头部分的业务 Transaction字段或者从 RapidlO报文载 荷 payload部分的首部解析获取 VMID。
优选地, 该 RapidlO报文接收装置 600, 还包括:
分配模块 604, 用于在转发模块 603将 RapidlO报文转发到 VMID对应 的本地虚拟机之前,为本地虚拟机分配对应的 RapidlO接收窗口和 /或 RapidlO 包接收通道;
转发模块 603, 具体用于:
若 RapidlO报文的报文类型为输入输出 10类型,则将 RapidlO报文转发 到 VMID对应的 RapidlO接收窗口;
若 RapidlO报文的报文类型为包类型, 则将 RapidlO报文转发到 VMID 对应的 RapidlO包接收通道。
进一歩地, 上述转发模块 603, 具体用于:
若 RapidlO报文的报文类型为 10类型,根据 RapidlO报文中包头部分的 偏移地址字段包括的地址信息, 将 RapidlO报文发送到地址信息对应的报文 接收地址;
若 RapidlO报文的报文类型为包类型, 根据 RapidlO报文中包头部分的 偏移地址字段包括的地址信息, 将 RapidlO报文转发到地址信息对应的接收 报文存储地址。
进一歩地, 该 RapidlO报文接收装置 600, 还包括发送模块 605, 用于在 转发模块 603在将 RapidlO报文转发到 VMID对应的本地虚拟机之后,
若 RapidlO报文的报文类型为包类型, 向对端返回报文接收通知消息。 优选地, 若 RapidlO报文中还封装有分组 Group信息, 其中 Group信息 对应 VMID对应的本地虚拟机处理 RapidlO报文采用的虚拟处理器;
解析模块 602, 还用于: 解析获取 Group信息;
转发模块 603, 还用于: 将 RapidlO报文转发到 VMID对应的本地虚拟 机的 Group信息对应的虚拟处理器, 以使虚拟处理器对 RapidlO报文进行处 理。
其中, 解析模块 602, 具体用于:
从 RapidlO报文载荷 payload部分的首部解析获取 Group信息。
本实施例提供的 RapidlO报文接收装置, 可用于执行图 3所示方法实施 例中的技术方案, 其实现原理和技术效果类似, 具体不再赘述。
图 7为本发明实施例提供的 RapidlO报文发送装置实施例三的结构示意 图, 如图 7所示, 该 RapidlO报文发送装置 700, 包括: 第一处理器 701, 以 及与所述第一处理器 701 相连的第一存储器 702, 其中, 该第一存储器 702 中存储一组程序代码, 第一处理器 701可以执行该组程序代码, 以实现图 1 所示方法实施例中的技术方案, 其实现原理和技术效果类似, 具体不再赘述。
图 8为本发明实施例提供的 RapidlO报文发送装置实施例四的结构示意 图, 如图 8所示, 该 RapidlO报文发送装置 800, 包括: 第二处理器 801, 以 及与第二处理器 801相连的第二存储器 802, 其中, 该第二存储器 802中存 储一组程序代码, 第二处理器 801可以执行该组程序代码, 以实现如图 2所 示方法实施例中的技术方案, 其实现原理和技术效果类似, 具体不再赘述。
图 9为本发明实施例提供的 RapidlO报文接收装置实施例二的结构示意 图, 如图 9所示, 该 RapidlO报文接收装置 900, 包括: 第三处理器 901, 以 及与第三处理器 901相连的第三存储器 902, 该第三存储器 902中存储一组 程序代码, 第三处理器 901可以执行该组程序代码, 以实现如图 3所示方法 实施例中的技术方案, 其实现原理和技术效果类似, 具体不再赘述。
图 10为本发明实施例提供的 RapidlO报文处理***实施例的结构示意 图, 如图 10所示, 该 RapidlO报文处理*** 1000, 包括 RapidlO报文发送装 置 1001, 以及与 RapidlO报文接收装置 1002, 其中该 RapiodIO报文发送装 置 1001与该 RapidlO报文接收装置 1002通过 RapidlO通道相连接。该 RapidlO 报文发送装置 1001 以及 RapidlO报文接收装置 1002可分别为图 8所示的 RapidlO报文发送装置和图 9所示的 RapidlO报文接收装置,可分别用于执行 图 2和图 3所示的方法实施例中的技术方案, 其实现原理和技术效果类似, 具体不再赘述。
本领域技术人员可以清楚地了解到, 为描述的方便和简洁, 仅以上述各 功能模块的划分进行举例说明, 实际应用中, 可以根据需要而将上述功能分 配由不同的功能模块完成, 即将装置的内部结构划分成不同的功能模块, 以 完成以上描述的全部或者部分功能。 上述描述的装置的具体工作过程, 可以 参考前述方法实施例中的对应过程, 在此不再赘述。
上述以软件功能单元的形式实现的集成的单元, 可以存储在一个计算机 可读取存储介质中。 上述软件功能单元存储在一个存储介质中, 包括若干指 令用以使得一台计算机设备(可以是个人计算机, 服务器, 或者网络设备等) 或处理器 (processor) 执行本发明各个实施例所述方法的部分歩骤。 而前述 的存储介质包括: U盘、移动硬盘、只读存储器(Read-Only Memory, ROM)、 随机存取存储器(Random Access Memory, RAM) 、 磁碟或者光盘等各种可 以存储程序代码的介质。
最后应说明的是: 以上各实施例仅用以说明本发明的技术方案, 而非对 其限制; 尽管参照前述各实施例对本发明进行了详细的说明, 本领域的普通 技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改, 或者对其中部分或者全部技术特征进行等同替换; 而这些修改或者替换, 并 不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (53)

  1. 权 利 要 求 书
    1、 一种快速输入输出 RapidlO报文处理方法, 其特征在于, 包括: RapidlO报文发送装置获取本地虚拟机待发送的 RapidlO报文; 所述 RapidlO报文发送装置采用与所述本地虚拟机对应的虚拟 RapidlO 通道向对端发送所述 RapidlO报文。
  2. 2、 根据权利要求 1所述的方法, 其特征在于, 所述 RapidlO报文发送装 置采用所述本地虚拟机对应的虚拟 RapidlO通道向对端发送所述 RapidlO报 文之前, 还包括:
    所述 RapidlO报文发送装置为所述本地虚拟机分配对应的虚拟 RapidlO 通道。
  3. 3、 根据权利要求 2所述的方法, 其特征在于, 所述 RapidlO报文发送装 置为所述本地虚拟机分配对应的虚拟 RapidlO通道, 包括:
    所述 RapidlO报文发送装置获取所述本地虚拟机的性能需求信息, 所述 性能需求信息包括: 输入输出 10带宽和 /或服务质量 QoS配置;
    所述 RapidlO报文发送装置为所述本地虚拟机分配满足所述性能需求信 息的虚拟 RapidlO通道。
  4. 4、 根据权利要求 1-3任一项所述的方法, 其特征在于, 所述 RapidlO报 文发送装置获取本地虚拟机待发送的 RapidlO报文, 包括:
    所述 RapidlO报文发送装置, 按照本地虚拟机的优先级, 优先获取具有 较高优先级的本地虚拟机的待发送 RapidlO报文。
  5. 5、 根据权利要求 1-4任一项所述的方法, 其特征在于, 所述 RapidlO报 文发送装置采用所述本地虚拟机对应的虚拟 RapidlO 通道向对端发送所述 RapidlO报文, 包括:
    所述 RapidlO报文发送装置确定与所述 RapidlO报文的报文类型对应模 式的发送引擎;
    所述 RapidlO报文发送装置采用确定的发送引擎, 在所述本地虚拟机对 应的虚拟 RapidlO通道上向对端发送所述 RapidlO报文。
  6. 6、 根据权利要求 5所述的方法, 其特征在于, 所述 RapidlO报文发送装 置确定与所述 RapidlO报文的报文类型对应模式的发送引擎, 包括:
    若所述 RapidlO报文的报文类型为 I/O类型, 则所述 RapidlO报文发送 装置确定与所述 RapidlO报文的报文类型对应模式的发送引擎为直接内存访 问 DMA模式的发送引擎;
    若所述 RapidlO报文的报文类型为包类型, 则所述 RapidlO报文发送装 置确定与所述 RapidlO报文的报文类型对应模式的发送引擎为消息模式的发 送引擎。
  7. 7、 根据权利要求 6所述的方法, 其特征在于, 所述 RapidlO报文发送装 置确定与所述 RapidlO报文的报文类型对应模式的发送引擎为直接内存访问 DMA模式的发送引擎, 包括:
    若所述 RapidlO报文为 DMA读操作, 则所述 RapidlO发送引擎, 确定 与所述 RapidlO报文的报文类型对应模式的发送引擎为 DMA读模式的发送 若所述 RapidlO报文为 DMA写操作, 则所述 RapidlO发送引擎, 确定 与所述 RapidlO报文的报文类型对应模式的发送引擎为 DMA写模式的发送
  8. 8、 根据权利要求 1-7任一项所述的方法, 其特征在于, 所述 RapidlO报 文发送装置采用与所述本地虚拟机对应的虚拟 RapidlO通道向对端发送所述 RapidlO报文之后, 还包括:
    若所述 RapidlO报文的报文类型为包类型, 所述 RapidlO报文发送装置 接收所述对端返回的报文接收通知消息, 并且将所述报文接收通知消息转发 给所述本地虚拟机。
  9. 9、 一种快速输入输出 RapidlO报文处理方法, 其特征在于, 包括:
    RapidlO报文发送装置, 获取所述本地虚拟机的待发送 RapidlO报文; 所述 RapidlO报文发送装置, 确定所述 RapidlO报文对应的对端虚拟机 的虚拟机标识 VMID;
    所述 RapidlO报文发送装置,将所述 VMID封装到所述 RapidlO报文中; 所述 RapidlO报文发送装置, 向对端发送所述 RapidlO报文, 以使所述 对端将所述 RapidlO报文转发给与所述 VMID对应的虚拟机。
  10. 10、 根据权利要求 9所述的方法, 其特征在于, 所述 RapidlO报文发送 装置将所述 VMID封装到所述 RapidlO报文中, 包括:
    所述 RapidlO报文发送装置将所述 VMID封装到所述 RapidlO报文的包 头部分的业务 Transaction字段中;
    或者, 所述 RapidlO报文发送装置将所述 VMID封装到所述 RapidlO报 文的载荷 payload部分的首部。
  11. 11、 根据权利要求 9或 10所述的方法, 其特征在于, 所述 RapidlO报文 发送装置确定所述 RapidlO报文对应的对端虚拟机的虚拟机标识 VMID时, 还包括:
    所述 RapidlO报文发送装置确定所述 RapidlO报文对应的对端虚拟机的 分组 Group信息, 其中所述 Group信息对应所述 VMID对应的对端虚拟机处 理所述 RapidlO报文采用的虚拟处理器;
    所述 RapidlO报文发送装置将所述 VMID封装到所述 RapidlO报文中时, 还包括:
    所述 RapidlO报文发送装置将所述 Group信息封装到所述 RapidlO报文 中;
    所述 RapidlO报文发送装置, 向对端发送所述 RapidlO报文, 包括: 所述 RapidlO报文发送装置, 向对端发送所述 RapidlO报文, 以使所述 对端将所述 RapidlO报文, 转发到所述 Group信息对应的虚拟处理器。
  12. 12、 根据权利要求 11所述的方法, 其特征在于, 所述 RapidlO报文发送 装置将所述 Group信息封装到所述 RapidlO报文中, 包括:
    所述 RapidlO报文发送装置将所述 Group信息封装到所述 RapidlO报文 的载荷 payload部分的首部。
  13. 13、 根据权利要求 9-12任一项所述的方法, 其特征在于, 所述 RapidlO 报文发送装置获取所述本地虚拟机的待发送 RapidlO报文, 包括:
    所述 RapidlO报文发送装置, 按照本地虚拟机的优先级, 优先获取具有 较高优先级的本地虚拟机的待发送 RapidlO报文。
  14. 14、 根据权利要求 9-13任一项所述的方法, 其特征在于, 所述 RapidlO 报文发送装置, 向对端 RapidlO报文接收装置发送所述 RapidlO报文, 包括: 所述 RapidlO报文发送装置,采用与所述本地虚拟机对应的虚拟 RapidlO 通道, 向对端发送所述 RapidlO报文。
  15. 15、 根据权利要求 14所述的方法, 其特征在于, 所述 RapidlO报文发送 装置, 采用所述本地虚拟机对应的虚拟 RapidlO通道, 向对端 RapidlO报文 接收装置发送所述 RapidlO报文之前, 还包括:
    所述 RapidlO报文发送装置,为所述本地虚拟机分配对应的虚拟 RapidlO 通道。
  16. 16、 根据权利要求 15所述的方法, 其特征在于, 所述 RapidlO报文发送 装置, 为所述本地虚拟机分配对应的虚拟 RapidlO通道, 包括:
    所述 RapidlO报文发送装置获取所述本地虚拟机的性能需求信息, 所述 性能需求信息包括: 输入输出 10带宽和 /或服务质量 QoS配置;
    所述 RapidlO报文发送装置为所述本地虚拟机分配满足所述性能需求信 息的虚拟 RapidlO通道。
  17. 17、 根据权利要求 14-16任一项所述的方法, 其特征在于, 所述 RapidlO 报文发送装置采用所述本地虚拟机对应的虚拟 RapidlO通道向对端发送所述 RapidlO报文, 包括:
    所述 RapidlO报文发送装置确定与所述 RapidlO报文的报文类型对应模 式的发送引擎;
    所述 RapidlO报文发送装置采用确定的发送引擎, 在所述本地虚拟机对 应的虚拟 RapidlO通道上向对端发送所述 RapidlO报文。
  18. 18、 根据权利要求 17所述的方法, 其特征在于, 所述 RapidlO报文发送 装置确定与所述 RapidlO报文的报文类型对应模式的发送引擎, 包括:
    若所述 RapidlO报文的报文类型为 I/O类型, 则所述 RapidlO报文发送 装置确定与所述 RapidlO报文的报文类型对应模式的发送引擎为直接内存访 问 DMA模式的发送引擎;
    若所述 RapidlO报文的报文类型为包类型, 则所述 RapidlO报文发送装 置确定与所述 RapidlO报文的报文类型对应模式的发送引擎为消息模式的发 送引擎。
  19. 19、 根据权利要求 18所述的方法, 其特征在于, 所述 RapidlO报文发送 装置确定与所述 RapidlO报文的报文类型对应模式的发送引擎为直接内存访 问 DMA模式的发送引擎, 包括:
    若所述 RapidlO报文为 DMA读操作, 则所述 RapidlO发送引擎, 确定 与所述 RapidlO报文的报文类型对应模式的发送引擎为 DMA读模式的发送 若所述 RapidlO报文为 DMA写操作, 则所述 RapidlO发送引擎, 确定 与所述 RapidlO报文的报文类型对应模式的发送引擎为 DMA写模式的发送
  20. 20、 根据权利要求 9-19任一项所述的方法, 其特征在于, 所述 RapidlO 报文发送装置, 向对端发送所述 RapidlO报文之后, 还包括:
    若所述 RapidlO报文的报文类型为包类型, 所述 RapidlO报文发送装置 接收所述对端返回的报文接收通知消息, 并且将所述报文接收通知消息转发 给所述本地虚拟机。
  21. 21、 一种快速输入输出 RapidlO报文处理方法, 其特征在于, 包括: RapidlO报文接收装置接收对端发送的 RapidlO报文,所述 RapidlO报文 中封装有本地虚拟机的虚拟机标识 VMID;
    所述 RapidlO报文接收装置, 解析获取所述 VMID;
    所述 RapidlO报文接收装置将所述 RapidlO报文转发到所述 VMID对应 的本地虚拟机。
    22、 根据权利要求 21所述的方法, 其特征在于, 所述 RapidlO报文接收 装置, 解析获取所述 VMID, 包括:
    所述 RapidlO 报文接收装置从所述 RapidlO 报文包头部分的业务 Transaction字段或者从所述 RapidlO报文载荷 payload部分的首部解析获取所 述 VMID。
  22. 23、 根据权利要求 21或 22所述的方法, 其特征在于, 所述 RapidlO报 文接收装置将所述 RapidlO报文转发到所述 VMID对应的本地虚拟机之前, 还包括:
    所述 RapidlO报文接收装置为本地虚拟机分配对应的 RapidlO接收窗口 和 /或 RapidlO包接收通道;
    所述 RapidlO报文接收装置将所述 RapidlO报文转发到所述 VMID对应 的本地虚拟机, 包括:
    若所述 RapidlO报文的报文类型为输入输出 10类型,则所述 RapidlO报 文接收装置将所述 RapidlO报文转发到所述 VMID对应的 RapidlO接收窗口; 若所述 RapidlO报文的报文类型为包类型, 则所述 RapidlO报文接收装 置将所述 RapidlO报文转发到所述 VMID对应的 RapidlO包接收通道。 24、 根据权利要求 23所述的方法, 其特征在于, 所述 RapidlO报文接收 装置将所述 RapidlO报文转发到所述 VMID对应的 RapidlO接收窗口,包括: 所述 RapidlO报文接收装置根据所述 RapidlO报文中包头部分的偏移地 址字段包括的地址信息, 将所述 RapidlO报文发送到所述地址信息对应的报 文接收地址;
    所述 RapidlO报文接收装置将所述 RapidlO报文转发到所述 VMID对应 的 RapidlO包接收通道, 包括:
    所述 RapidlO报文接收装置根据所述 Rapid报文中包头部分的偏移地址 字段包括的地址信息, 将所述 RapidlO报文转发到所述地址信息对应的接收 报文存储地址。
  23. 25、 根据权利要求 21-24任一项所述的方法, 其特征在于, 所述 RapidlO 报文接收装置根据所述 RapidlO报文中包头部分的地址字段中包括的地址信 息,将所述 RapidlO报文转发到所述地址信息对应的接收报文存储地址之后, 还包括:
    若所述 RapidlO报文的报文类型为包类型, 则所述 RapidlO报文接收装 置向对端返回报文接收通知消息。
  24. 26、 根据权利要求 21-25任一项所述的方法, 其特征在于, 所述 RapidlO 报文还封装有分组 Group信息, 其中所述 Group信息对应所述 VMID对应的 本地虚拟机处理所述 RapidlO报文采用的虚拟处理器;
    所述 RapidlO报文接收装置, 解析获取所述 Group信息 ·'
    所述 RapidlO报文接收装置将所述 RapidlO报文转发到所述 VMID对应 的本地虚拟机, 包括:
    所述 RapidlO报文接收装置将所述 RapidlO报文转发到所述 VMID对应 的本地虚拟机的所述 Group信息对应的虚拟处理器, 以使所述虚拟处理器对 所述 RapidlO报文进行处理。
  25. 27、 根据权利要求 26所述的方法, 其特征在于, 所述 RapidlO报文接收 装置, 解析获取所述 Group信息, 包括:
    所述 RapidlO报文接收装置从所述 RapidlO报文载荷 payload部分的首部 解析获取所述 Group信息。
  26. 28、 一种快速输入输出 RapidlO报文发送装置, 其特征在于, 包括: 获取模块, 用于获取本地虚拟机待发送的 RapidlO报文;
    发送模块, 用于采用与所述本地虚拟机对应的虚拟 RapidlO通道向对端 发送所述 RapidlO报文。
  27. 29、 根据权利要求 28所述的 RapidlO报文发送装置, 其特征在于, 还包 括:
    分配模块,用于在所述发送模块采用所述本地虚拟机对应的虚拟 RapidlO 通道向对端发送所述 RapidlO报文之前, 为所述本地虚拟机分配对应的虚拟 RapidlO通道。
  28. 30、 根据权利要求 29所述的 RapidlO报文发送装置, 其特征在于, 所述 分配模块, 具体用于:
    获取所述本地虚拟机的性能需求信息, 所述性能需求信息包括: 输入输 出 10带宽和 /或服务质量 QoS配置;
    为所述本地虚拟机分配满足所述性能需求信息的虚拟 RapidlO通道。
  29. 31、 根据权利要求 28-30任一项所述的 RapidlO报文发送装置, 其特征 在于, 所述获取模块, 具体用于:
    按照本地虚拟机的优先级, 优先获取具有较高优先级的本地虚拟机的待 发送 RapidlO报文。
  30. 32、 根据权利要求 28-31任一项所述的 RapidlO报文发送装置, 其特征 在于, 还包括确定模块;
    所述确定模块, 用于确定与所述 RapidlO报文的报文类型对应模式的发 送引擎;
    所述发送模块, 具体用于:
    采用所述确定模块确定的发送引擎, 在所述本地虚拟机对应的虚拟 RapidlO通道上向对端发送所述 RapidlO报文。
  31. 33、 根据权利要求 32所述的 RapidlO报文发送装置, 其特征在于, 所述 确定模块, 具体用于:
    若所述 RapidlO报文的报文类型为 I/O类型, 则确定与所述 RapidlO报 文的报文类型对应模式的发送引擎为直接内存访问 DMA模式的发送引擎; 若所述 RapidlO报文的报文类型为包类型, 则确定与所述 RapidlO报文 的报文类型对应模式的发送引擎为消息模式的发送引擎。 34、 根据权利要求 33所述的 RapidlO报文发送装置, 其特征在于, 所述 确定模块, 具体用于:
    若所述 RapidlO报文为 DMA读操作, 则确定与所述 RapidlO报文的报 文类型对应模式的发送引擎为 DMA读模式的发送引擎;
    若所述 RapidlO报文为 DMA写操作, 则确定与所述 RapidlO报文的报 文类型对应模式的发送引擎为 DMA写模式的发送引擎。
  32. 35、 根据权利要求 28-34任一项所述的 RapidlO报文发送装置, 其特征 在于, 还包括接收模块;
    所述接收模块, 用于在所述发送模块采用与所述本地虚拟机对应的虚拟 RapidlO通道向对端发送所述 RapidlO报文之后,
    若所述 RapidlO报文的报文类型为包类型, 接收所述对端返回的报文接 收通知消息, 并且将所述报文接收通知消息转发给所述本地虚拟机。
  33. 36、 一种 RapidlO报文发送装置, 其特征在于, 包括:
    获取模块, 用于获取所述本地虚拟机的待发送 RapidlO报文;
    确定模块, 用于确定所述 RapidlO报文对应的对端虚拟机的虚拟机标识 VMID;
    封装模块, 用于将所述 VMID封装到所述 RapidlO报文中;
    发送模块, 用于向对端发送所述 RapidlO 报文, 以使所述对端将所述 RapidlO报文转发给与所述 VMID对应的虚拟机。
  34. 37、 根据权利要求 36所述的 RapidlO报文发送装置, 其特征在于, 所述 封装模块, 具体用于:
    将所述 VMID封装到所述 RapidlO报文的包头部分的业务 Transaction字 段中;
    或者, 将所述 VMID封装到所述 RapidlO报文的载荷 payload部分的首 部。
  35. 38、 根据权利要求 36或 37所述的 RapidlO报文发送装置, 其特征在于, 所述确定模块在确定所述 RapidlO 报文对应的对端虚拟机的虚拟机标识 VMID时, 还用于:
    确定所述 RapidlO报文对应的对端虚拟机的分组 Group信息, 其中所述 Group信息对应所述 VMID对应的对端虚拟机处理所述 RapidlO报文采用的 虚拟处理器;
    所述封装模块,在将所述 VMID封装到所述 RapidlO报文中时, 还用于: 将所述 Group信息封装到所述 RapidlO报文中;
    所述发送模块, 具体用于:
    向对端发送所述 RapidlO报文, 以使所述对端将所述 RapidlO报文, 转 发到所述 Group信息对应的虚拟处理器。
  36. 39、 根据权利要求 38所述的 RapidlO报文发送装置, 其特征在于, 所述 封装模块, 具体用于:
    将所述 Group信息封装到所述 RapidlO报文的载荷 payload部分的首部。
  37. 40、 根据权利要求 36-39任一项所述的 RapidlO报文发送装置, 其特征 在于, 所述获取模块, 具体用于:
    按照本地虚拟机的优先级, 优先获取具有较高优先级的本地虚拟机的待 发送 RapidlO报文。
  38. 41、 根据权利要求 36-40任一项所述的 RapidlO报文发送装置, 其特征 在于, 所述发送模块, 具体用于:
    采用与所述本地虚拟机对应的虚拟 RapidlO 通道, 向对端发送所述 RapidlO报文。
  39. 42、 根据权利要求 41所述的 RapidlO报文发送装置, 其特征在于, 还包 括:
    分配模块,用于在所述发送模块采用所述本地虚拟机对应的虚拟 RapidlO 通道向对端发送所述 RapidlO报文之前, 为所述本地虚拟机分配对应的虚拟 RapidlO通道。
  40. 43、 根据权利要求 42所述的 RapidlO报文发送装置, 其特征在于, 所述 分配模块, 具体用于:
    获取所述本地虚拟机的性能需求信息, 所述性能需求信息包括: 输入输 出 10带宽和 /或服务质量 QoS配置;
    为所述本地虚拟机分配满足所述性能需求信息的虚拟 RapidlO通道。
  41. 44、 根据权利要求 41-43任一项所述的 RapidlO报文发送装置, 其特征 在于, 所述发送模块, 具体用于:
    确定与所述 RapidlO报文的报文类型对应模式的发送引擎; 采用确定的发送引擎, 在所述本地虚拟机对应的虚拟 RapidlO通道上向 对端发送所述 RapidlO报文。
  42. 45、 根据权利要求 44所述的 RapidlO报文发送装置, 其特征在于, 所述 发送模块, 具体用于:
    若所述 RapidlO报文的报文类型为 I/O类型, 则确定与所述 RapidlO报 文的报文类型对应模式的发送引擎为直接内存访问 DMA模式的发送引擎; 若所述 RapidlO报文的报文类型为包类型, 则确定与所述 RapidlO报文 的报文类型对应模式的发送引擎为消息模式的发送引擎。
  43. 46、 根据权利要求 45所述的 RapidlO报文发送装置, 其特征在于, 所述 发送模块, 具体用于:
    若所述 RapidlO报文为 DMA读操作, 则确定与所述 RapidlO报文的报 文类型对应模式的发送引擎为 DMA读模式的发送引擎;
    若所述 RapidlO报文为 DMA写操作, 则确定与所述 RapidlO报文的报 文类型对应模式的发送引擎为 DMA写模式的发送引擎。
  44. 47、 根据权利要求 38-46任一项所述的 RapidlO报文发送装置, 其特征 在于, 还包括发送模块;
    所述发送模块, 用于在所述发送模块采用与所述本地虚拟机对应的虚拟 RapidlO通道向对端发送所述 RapidlO报文之后,若所述 RapidlO报文的报文 类型为包类型, 接收所述对端返回的报文接收通知消息, 并且将所述报文接 收通知消息转发给所述本地虚拟机。
  45. 48、 一种快速输入输出 RapidlO报文接收装置, 其特征在于, 包括: 接收模块, 用于接收对端发送的 RapidlO报文, 所述 RapidlO报文中封 装有本地虚拟机的虚拟机标识 VMID;
    解析模块, 用于解析获取所述 VMID;
    转发模块, 用于将所述 RapidlO报文转发到所述 VMID对应的本地虚拟 机。
  46. 49、 根据权利要求 48所述的 RapidlO报文接收装置, 其特征在于, 所述 解析模块, 具体用于:
    从所述 RapidlO 报文包头部分的业务 Transaction 字段或者从所述 RapidlO报文载荷 payload部分的首部解析获取所述 VMID。 50、 根据权利要求 48或 49所述的 RapidlO报文接收装置, 其特征在于, 还包括:
    分配模块, 用于在所述转发模块将所述 RapidlO报文转发到所述 VMID 对应的本地虚拟机之前, 为本地虚拟机分配对应的 RapidlO 接收窗口和 /或 RapidlO包接收通道;
    所述转发模块, 具体用于:
    若所述 RapidlO报文的报文类型为输入输出 10类型, 则将所述 RapidlO 报文转发到所述 VMID对应的 RapidlO接收窗口;
    若所述 RapidlO报文的报文类型为包类型, 则将所述 RapidlO报文转发 到所述 VMID对应的 RapidlO包接收通道。
  47. 51、 根据权利要求 50所述的 RapidlO报文接收装置, 其特征在于, 所述 转发模块, 具体用于:
    若所述 RapidlO报文的报文类型为 10类型,根据所述 RapidlO报文中包 头部分的偏移地址字段包括的地址信息, 将所述 RapidlO报文发送到所述地 址信息对应的报文接收地址;
    若所述 RapidlO报文的报文类型为包类型, 根据所述 RapidlO报文中包 头部分的偏移地址字段包括的地址信息, 将所述 RapidlO报文转发到所述地 址信息对应的接收报文存储地址。
  48. 52、 根据权利要求 48-51任一项所述的 RapidlO报文接收装置, 其特征 在于, 还包括发送模块;
    所述发送模块, 用于在所述转发模块在将所述 RapidlO报文转发到所述 VMID对应的本地虚拟机之后, 若所述 RapidlO报文的报文类型为包类型, 向对端返回报文接收通知消息。
  49. 53、 根据权利要求 48-52任一项所述的 RapidlO报文接收装置, 其特征 在于, 所述 RapidlO报文中还封装有分组 Group信息, 其中所述 Group信息 对应所述 VMID对应的本地虚拟机处理所述 RapidlO报文采用的虚拟处理器; 所述解析模块, 还用于: 解析获取所述 Group信息;
    所述转发模块, 还用于: 将所述 RapidlO报文转发到所述 VMID对应的 本地虚拟机的所述 Group信息对应的虚拟处理器, 以使所述虚拟处理器对所 述 RapidlO报文进行处理。 54、 根据权利要求 53所述的 RapidlO报文接收装置, 其特征在于, 所述 解析模块, 具体用于:
    从所述 RapidlO报文载荷 payload部分的首部解析获取所述 Group信息。
  50. 55、 一种快速输入输出 RapidlO报文发送装置, 其特征在于, 包括: 第 一处理器, 以及与所述第一处理器相连的第一存储器, 所述第一存储器中存 储一组程序代码, 所述第一处理器可以执行所述程序代码, 以实现如权利要 求 1-8中任一项所述的 RapidlO报文处理方法中的歩骤。
  51. 56、 一种快速输入输出 RapidlO报文发送装置, 其特征在于, 包括: 第 二处理器, 以及与所述第二处理器相连的第二存储器, 所述第二存储器中存 储一组程序代码, 所述第二处理器可以执行所述程序代码, 以实现如权利要 求 9-20中任一项所述的 RapidlO报文处理方法中的歩骤。
  52. 57、 一种快速输入输出 RapidlO报文接收装置, 其特征在于, 包括: 第 三处理器, 以及与所述第三处理器相连的第三存储器, 所述第三存储器中存 储一组程序代码, 所述第三处理器可以执行所述程序代码, 以实现如权利要 求 21-27中任一项所述的 RapidlO报文处理方法中的歩骤。
  53. 58、 一种快速输入输出 RapidlO报文处理***, 其特征在于, 包括: 如 权利要求 56所述的 RapidlO报文发送装置, 以及如权利要求 57所述的 RapidlO报文接收装置, 其中所述 RapiodlO报文发送装置与所述 RapidlO报 文接收装置通过 RapidlO通道相连接。
CN201480033945.1A 2014-05-09 2014-05-09 快速输入输出报文处理方法、装置及*** Active CN105324973B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/077183 WO2015168946A1 (zh) 2014-05-09 2014-05-09 快速输入输出报文处理方法、装置及***

Publications (2)

Publication Number Publication Date
CN105324973A true CN105324973A (zh) 2016-02-10
CN105324973B CN105324973B (zh) 2019-05-24

Family

ID=54392027

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480033945.1A Active CN105324973B (zh) 2014-05-09 2014-05-09 快速输入输出报文处理方法、装置及***

Country Status (2)

Country Link
CN (1) CN105324973B (zh)
WO (1) WO2015168946A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101159727A (zh) * 2007-11-15 2008-04-09 中兴通讯股份有限公司 一种iq数据传输装置和方法
CN102801729A (zh) * 2012-08-13 2012-11-28 福建星网锐捷网络有限公司 虚拟机报文转发方法、网络交换设备及通信***
US8402461B2 (en) * 2009-11-15 2013-03-19 Hewlett-Packard Development Company, L. P. Switching between direct mode and indirect mode for virtual machine I/O requests
CN103116517A (zh) * 2013-01-24 2013-05-22 华为技术有限公司 虚拟化平台下i/o通道的调整方法和调整装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101515841B (zh) * 2009-04-03 2011-10-05 华为技术有限公司 一种基于RapidIO协议的数据包传输的方法、设备和***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101159727A (zh) * 2007-11-15 2008-04-09 中兴通讯股份有限公司 一种iq数据传输装置和方法
US8402461B2 (en) * 2009-11-15 2013-03-19 Hewlett-Packard Development Company, L. P. Switching between direct mode and indirect mode for virtual machine I/O requests
CN102801729A (zh) * 2012-08-13 2012-11-28 福建星网锐捷网络有限公司 虚拟机报文转发方法、网络交换设备及通信***
CN103116517A (zh) * 2013-01-24 2013-05-22 华为技术有限公司 虚拟化平台下i/o通道的调整方法和调整装置

Also Published As

Publication number Publication date
CN105324973B (zh) 2019-05-24
WO2015168946A1 (zh) 2015-11-12

Similar Documents

Publication Publication Date Title
US11467888B2 (en) Microservices architecture
CN110888827B (zh) 数据传输方法、装置、设备及存储介质
US10152441B2 (en) Host bus access by add-on devices via a network interface controller
US10305823B2 (en) Network interface card configuration method and resource management center
CN110858189A (zh) 用于高带宽存储器的可缩放芯片上网络
WO2001018988A1 (en) Bridge between parallel buses over a packet-switched network
CN108984465B (zh) 一种消息传输方法及设备
KR101754549B1 (ko) 재구성 가능한 메모리 시스템들을 위한 가상화된 물리적 어드레스들
CN105579987A (zh) 通用pci express端口
CN108228309B (zh) 基于虚拟机的数据包发送和接收方法及装置
US11750418B2 (en) Cross network bridging
CN109992405A (zh) 一种处理数据报文的方法和网卡
CN107870879A (zh) 一种数据搬移方法、加速器板卡、主机及数据搬移***
CN105207794A (zh) 统计计数设备及其实现方法、具有统计计数设备的***
CN104378161A (zh) 一种基于AXI4总线架构的FCoE协议加速引擎IP核
CN109983741A (zh) 经由直接存储器访问设备在虚拟机之间传送分组
US9203895B1 (en) System and method for lateral connection between interface devices with bypass of external network
CN110618956B (zh) 一种bmc云平台资源池化方法与***
CN114297130A (zh) 芯片***中的数据传输处理方法及相关装置
CN114244915A (zh) 一种支持多种协议的数据传输方法、装置及存储介质
US20240061802A1 (en) Data Transmission Method, Data Processing Method, and Related Product
CN112291259B (zh) 一种协议转换方法、网关、设备及可读存储介质
Suzuki et al. Disaggregation and sharing of I/O devices in cloud data centers
CN105324973A (zh) 快速输入输出报文处理方法、装置及***
TW201741899A (zh) 設備分配控制器以及資料分享方法

Legal Events

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