[发明专利]一种支持单根IO虚拟化用户级接口控制装置及其方法有效
申请号: | 201210096454.4 | 申请日: | 2012-04-01 |
公开(公告)号: | CN102650976A | 公开(公告)日: | 2012-08-29 |
发明(设计)人: | 曹政;刘飞龙;刘小丽;安学军;张佩珩;孙凝晖 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F13/28 | 分类号: | G06F13/28;H04L12/56 |
代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 梁挥;祁建国 |
地址: | 100190 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 支持 io 虚拟 化用 接口 控制 装置 及其 方法 | ||
技术领域
本发明涉及I/O虚拟化技术,尤其涉及计算机互联中的用户级通信接口技术,涉及服务器系统中的网络接口控制器技术。
背景技术
服务器系统的性能由其计算能力和通信能力两部分共同决定。随着服务器系统中处理器数量的不断增加,以及单个处理器性能的不断提高,对其通信的性能提出了更高的要求。通信性能的提高与网络接口控制器的设计紧密相关。网络接口控制器是指用于连接处理器到互连网络并具有一定网络处理能力的硬件设备。由于网络接口控制器位于处理器和互连网络之间,它的性能决定了处理器和互连网络之间的连接效率。
实现用户级通信接口是提高网络接口控制器性能的重要途径之一。通过用户级通信接口,应用程序可以实现对网络接口控制器硬件的直接访问,从而消除操作系统转发引入的通信开销,大大提高通信的效率。
然而随着云计算的快速发展,虚拟化技术得到了广泛的使用。单台服务器上需要承载若干虚拟机的运行,相应的,网络接口控制器被若干虚拟机共享使用。但是虚拟机运行的客户操作系统(Guest OS)之间拥有不同的地址空间,使得传统网络接口控制器无法被各个客户操作系统直接共享访问。其提供的通信接口必须需要虚拟控制器层(Hypervisor)的仲裁和地址重新映射,最终导致用户级通信的效率无法发挥。
因此,新型网络接口控制器需要实现用户级通信接口技术与虚拟化技术的有效结合,才能适应云计算中对高性能网络通信的需求。
发明内容
为解决上述问题,本发明提供了一种支持单根IO虚拟化用户级接口控制装置及方法,目的是本发明在实现被多个虚拟机直接访问的同时,还为虚拟机上运行的应用程序提供灵活高效的用户级通信接口;若干虚拟机对网络进行共享访问时,本发明的网络接口控制器可以满足虚拟机对网络访问的服务质量(QoS)要求。
本发明公开一种支持单根IO虚拟化用户级接口控制装置,包括:
系统总线接口模块,用于对所述装置与处理器之间的数据传输,实现符合PCI Express协议的事务层,数据链路层,和物理层功能;
操作模块,用于实现设备配置空间,以及虚功能VF的通信接口QP与操作队列OQ资源之间的映射,使用门铃机制对QP进行直接访问,其包含M个操作队列,所述M≥1;
DMA模块,用于根据DMA引擎的空闲情况,对DMA引擎进行映射,所述DMA引擎进行数据的发送与接收;
网络包分发仲裁模块,用于接收DMA引擎发出的网络包,将不同的DMA引擎的网络包进行仲裁选择发送,同时接收网络中的网络包,发送至DMA引擎进行处理。
所述的支持单根IO虚拟化用户级接口控制装置,所述操作模块还包括:
操作队列映射模块,用于对所述设备配置空间中的一个物理功能PF配置空间和N个虚功能VF配置空间,实现虚功能VF的通信接口QP与操作队列OQ资源之间的映射;
操作队列模块,用于将M个操作队列缓存每个虚功能VF的通信接口QP的DMA门铃,并且供DMA模块读取后分配给DMA引擎使用,每个操作队列由一个FIFO组成。
所述的支持单根IO虚拟化用户级接口控制装置,包括:
所述通信接口QP,为所述装置与通信进程之间的接口,用于实现用户级通信,每个虚功能均包含Q个QP,每个通信进程独占一个QP,并使用门铃机制对QP的直接访问,向所述装置发起DMA操作请求。
所述的支持单根IO虚拟化用户级接口控制装置,包括:
所述门铃机制,门铃由DMA描述符的内存首地址和DMA描述符的长度组成;通信进程将门铃写入通信接口QP用户控制页面中的门铃地址寄存器,收到门铃写入动作后,从门铃携带的DMA地址中读取完整的DMA描述符,启动相应的DMA操作。
所述的支持单根IO虚拟化用户级接口控制装置,所述操作队列映射模块还包括:
设备配置空间子模块,用于物理功能PF配置空间和虚功能VF配置空间,在虚功能VF基址寄存器对应的存储空间包含Q个通信接口QP所需的用户控制页面和系统控制页面信息,所述Q≥1;
映射子模块,用于将收到的DMA门铃、虚功能VF和通信接口QP,写入到操作队列中,该模块使用的仲裁算法,在满足上层软件对QoS需求的同时,还要实现对M个操作队列的公平使用。
所述的支持单根IO虚拟化用户级接口控制装置,所述设备配置空间子模块还包括:
所述虚功能VF基址寄存器对应的用户控制页面信息,将存储虚功能中通信队列QP私有相关配置,其中,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210096454.4/2.html,转载请声明来源钻瓜专利网。