高效虚拟I/O地址转换制造技术

技术编号:15159052 阅读:91 留言:0更新日期:2017-04-12 08:56
本申请公开高效虚拟I/O地址转换。一种方法包括使用网络接口控制器来监测发送环,其中,该发送环包括存储描述符的圆形环数据结构,其中,描述符描述数据并且包括提供该数据的虚拟存储位置的客户总线地址。该方法还包括使用该网络接口控制器来确定已将描述符写入该发送环。该方法进一步包括使用网络接口控制器来尝试检索客户总线地址的转换。该方法包括使用网络接口控制器从发送环读取描述符。

【技术实现步骤摘要】

本公开总体上涉及虚拟机,诸如操作系统支持的虚拟机。更具体地,本公开涉及为虚拟机内的网络接口设备提供高效虚拟输入/输出(I/O)地址转换。
技术介绍
本部分旨在向读者介绍下文所描述和/或要求的本披露的各个方面可能涉及的各个方面技术。这种讨论被认为有助于向读者提供背景信息以便于更好地理解本披露的各个方面。相应地,应当理解的是,这些陈述应该以此角度被解读,而并非承认其为现有技术。高性能服务器网络可使用由管理程序托管的虚拟机架构。虚拟机继而又可使用映射至物理存储器地址的虚拟存储器地址以更高效地使用存储空间。主系统中的存储器管理单元可将虚拟地址转换成物理地址。高性能服务器网络还可使用高性能网络接口设备,诸如网络接口控制器(NIC)。当发送和接收数据时,可将数据在主系统与NIC之间传送。为了读取从主系统中发出的传出数据或将传入数据写入主系统,NIC可请求转换虚拟地址来访问期望的物理地址。这些转换请求可能引起延时,该延时可能负面地影响网络性能。
技术实现思路
下文陈述本文所公开的某些实施例的概述。应当理解的是,这些方面仅仅呈现为给读者提供这样的某些实施例的简要概述且这些方面不旨在限制本公开的范围。实际上,本公开可涵盖下文可能没有陈述的各个方面。本实施例涉及用于通过使用定向输入/输出(I/O)支持技术增强高性能服务器网络的网络性能的系统和方法。具体地,本实施例涉及一种通过访问由管理程序托管的多个虚拟机中的未转换、虚拟“客户”总线地址并在适宜时间转换客户总线地址来使用定向I/O支持技术的高性能网络接口设备,诸如网络接口控制器(NIC)。NIC可发起对这些未转换客户总线地址的存储器事务,这引起I/O故障和转换请求。在适宜时间使用由定向I/O支持技术提供的能力请求转换可以减小或消除由于发起对这些未转换客户总线地址的多个存储器事务引起的延时。在第一实施例中,一种方法包括使用网络接口控制器监测发送环,其中该发送环包括存储多个描述符的圆形环数据结构,其中,描述符描述数据并且包括提供该数据的虚拟存储位置的客户总线地址。该方法还包括使用该网络接口控制器来确定已将描述符写入该发送环。该方法进一步包括使用网络接口控制器来尝试检索该客户总线地址的转换。该方法包括使用网络接口控制器来从该发送环中读取该描述符。在第二实施例中,一种方法包括使用网络接口控制器来监测接收环,其中该接收环包括存储多个描述符的圆形环数据结构,其中,描述符描述数据并且包括提供该数据的虚拟存储位置的客户总线地址。该方法还包括使用该网络接口控制器来确定已将描述符写入该接收环。该方法进一步包括使用网络接口控制器来尝试检索该客户总线地址的转换。该方法包括使用网络接口控制器来从该接收环中读取该描述符。在第三实施例中,一种有形、非瞬态机器可读介质包括监测存储多个描述符的圆形环数据结构的机器可读指令,其中,描述符描述数据并且包括提供该数据的虚拟存储位置的客户总线地址。该机器可读介质还包括确定已将该描述符写入该圆形环数据结构的机器可读指令。该机器可读介质进一步包括确定何时已缓存该客户总线地址的转换的机器可读指令。该机器可读介质包括当已确定已缓存该转换时读取该转换的机器可读指令。该机器可读介质还包括当确定未缓存该转换时请求转换该客户总线地址的机器可读指令。该机器可读介质进一步包括从该圆形环数据结构中读取该描述符的机器可读指令。可对本公开的各个方面做出上述这些特征的各种改良。这样的各个方面中还结合了进一步特征。可单独地或以任何组合地做出这样的改良和另外的特征。例如,下文关于一个或更多个所说明的实施例所讨论的各个特征可单独或以任何组合结合至本专利技术的任何上述方面中。在不限制要求保护的主题的情况下,上文呈现的简要概述仅仅希望使读者熟悉本公开的实施例的某些方面和背景。附图说明在阅读以下详细说明且在参考附图时可更好地理解本公开的各个方面,在附图中:图1是展示根据一个实施例的包括内部输入/输出(I/O)总线互连件的系统的方框图;图2是展示根据一个实施例的使用内部I/O总线互连标准的软件系统的方框图,该标准支持定向I/O支持技术;图3是展示根据一个实施例的发送环的图解;图4是展示根据一个实施例的发送数据的过程的图解;图5是展示根据一个实施例的接收环的图解;图6是展示根据一个实施例的接收数据的过程的图解;图7是展示根据一个实施例的发送数据的方法的流程图;并且图8是展示根据一个实施例的接收数据的方法的流程图。具体实施方式下文将描述一个或更多个具体实施例。为了努力提供对这些实施例的简明描述,本说明书中并未描述实际实施方式的全部特征。应当明白的是,在任何这样的实际实施方式的发展中,如同在任何工程或设计方案中,必须做出许多实施方式特定的决定以实现开发者的具体目标,诸如符合系统相关和业务相关约束,这些约束在不同的实施方式之间可以是不同的。而且,应当明白的是,开发工作可能是复杂又耗时的,但是对于得益于本公开的一般技术人员仍然是设计、制作和制造的常规工作。如下文进一步详细地讨论,本公开的实施例通常涉及优化对虚拟机内的网络接口设备(诸如网络接口控制器(NIC))的虚拟输入/输出(I/O)地址转换。具体地,本实施例涉及通过访问由该管理程序托管的虚拟机中的未转换虚拟“客户”总线地址并在适宜时间转换该客户总线地址来使用定向I/O支持技术的NIC。术语“客户”在本公开中是指安装在主操作系统上并且在主操作系统的虚拟化平台上运行的虚拟机。客户总线地址是映射至主系统的物理存储地址的虚拟存储地址。主系统的处理器可以将非连续物理存储器(例如,来自各种不同来源的存储器,诸如主处理器的存储器、硬盘的存储器等)映射至虚拟存储器中的连续虚拟地址空间。附加地,主系统的软件可以扩展存储器能力以提供能够超过主系统的物理存储器的容量的虚拟地址空间,并因此涉及比可以物理地存在于该主系统上的存储器更大的存储器。处理器的地址转换硬件可以将客户总线地址转换为物理地址来访问所存储的数据。NIC可发起对这些未转换的客户总线地址的存储器事务,这引起I/O故障和转换请求。在适宜时间使用由该定向I/O支持技术提供的这些能力请求转换可减小或消除由于开始对这些未转换客户总线地址的多个存储器事务引起的延时。综上所述,图1是展示根据一个实施例的包括内部I/O总线互连件11的系统10的方框图。I/O总线互连件11可以使用支持定向I/O支持技术的高速串行计算机扩展总线标准,诸如外围组件互连高速(PCIe)3.0或后续版本、因特尔快速通道互连(IntelQuickPathInterconnect)(QPI)等,例如,PCI3.0支持单根I/O虚拟化(SR-IOV)。系统10可包括主系统22。主系统22可包括处理器14、主存储器16、根联合体(rootcomplex)12和提供一个或更多个连接点20(例如,PCIe3.0端口)的一个或更多个交换机18。根联合体12可将处理器14和主存储器16连接至系统10的一个或更多个交换机18。主存储器16可包括系统10的物理随机存取存储器(RAM)。主存储器16可包括分配给由任一个和/或两个NIC24用来处理数据分组的发送环28和接收环30的存储器。根联合体12可以代表处理器14生成事务请求。根本文档来自技高网...

【技术保护点】
一种方法,包括:使用网络接口控制器监测发送环,其中所述发送环包括存储多个描述符的圆形环数据结构,其中,描述符描述数据并包括提供所述数据的虚拟存储位置的客户总线地址;使用所述网络接口控制器确定已将所述描述符写入所述发送环;使用所述网络接口控制器尝试检索客户总线地址的转换;以及使用所述网络接口控制器从所述发送环中读取所述描述符。

【技术特征摘要】
2015.10.01 US 14/873,0071.一种方法,包括:使用网络接口控制器监测发送环,其中所述发送环包括存储多个描述符的圆形环数据结构,其中,描述符描述数据并包括提供所述数据的虚拟存储位置的客户总线地址;使用所述网络接口控制器确定已将所述描述符写入所述发送环;使用所述网络接口控制器尝试检索客户总线地址的转换;以及使用所述网络接口控制器从所述发送环中读取所述描述符。2.根据权利要求1所述的方法,其中所述发送环存储在主存储器上。3.根据权利要求1所述的方法,其中,使用所述网络接口控制器尝试检索所述客户总线地址的转换发生在使用所述网络接口控制器接收已将一个或更多个分组写入所述发送环的通知之前。4.根据权利要求1所述的方法,其中,使用所述网络接口控制器尝试检索所述客户总线地址的转换包括:使用所述网络接口控制器确定何时已缓存所述客户总线地址的转换;当已确定已缓存所述转换时,使用所述网络接口控制器从缓存中读取所述转换;以及当已确定还没有缓存所述转换时,使用所述网络接口控制器请求所述客户总线地址的转换。5.根据权利要求1所述的方法,包括:当没有检索到所述客户总线地址的转换时,使用所述网络接口控制器来发起对未转换客户总线地址的存储器事务。6.根据权利要求1所述的方法,其中,使用所述网络接口控制器监测所述发送环包括所述网络接口控制器使用单根输入/输出虚拟化。7.根据权利要求1所述的方法,其中所述网络接口控制器是输入/输出总线互连设备。8.一种方法,包括:使用网络接口控制器监测接收环,其中所述接收环包括存储多个描述符的圆形环数据结构,其中,描述符描述数据并且包括提供所述数据的虚拟存储位置的客户总线地址;使用所述网络接口控制器确定已将所述描述符写入所述接收环;使用所述网络接口控制器尝试检索客户总线地址的转换;以及使用所述网络接口控制器从所述接收环读取所述描述符。9.根据权利要求8所述的方法,其中所述接收环存储在网络接口控制器的存储器上。10.根据权利要求8所述的...

【专利技术属性】
技术研发人员:K·V·布里杰斯
申请(专利权)人:阿尔特拉公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1