多信道输入/输出虚拟化制造技术

技术编号:18179019 阅读:70 留言:0更新日期:2018-06-09 20:52
本发明专利技术提供用于实现由在网络装置上执行的多个进程共享多信道分组处理器的系统、方法及计算机可读媒体。所述网络装置可包含存储器管理单元,其经配置以包含地址映射。所述地址映射可包含保留部分。虚拟机可在所述地址映射中分配客户机部分,其中所述客户机部分分配于所述地址映射中不包含所述保留部分的一部分中。来自所述分组处理器的第一信道可被指派到所述客户机部分,且所述虚拟机可使用所述第一信道接收分组。所述保留部分可被指派到在所述网络装置上执行的主机进程。来自所述分组处理器的第二信道可被指派到所述保留部分。所述主机进程可使用所述第二信道将分组发射到网络。

【技术实现步骤摘要】
【国外来华专利技术】多信道输入/输出虚拟化相关申请案的交叉参考本申请案主张2016年5月31日申请的第62/343,728号美国临时申请案及2016年5月31日申请的第62/343,811号美国临时申请案的权益及优先权。第62/343,728及62/343,811号美国申请案的全部内容出于所有目的以全文引用方式并入本文中。
技术实现思路
本专利技术大体上涉及联网技术,且更特定来说,涉及用于共享针对运行网络装置的用户空间的主机进程之间的高输入/输出(I/O)性能而设计的网络分组处理器的系统及方法。网络装置(例如路由器)可包含I/O装置(例如分组处理器)。所述分组处理器可提供直接存储器存取(DMA)功能性以用于将分组发射到网络及/或从网络接收分组。在许多情况中,多个主机级进程可在所述网络装置上执行,其中每一者可能需要使用所述分组处理器发射及/或接收分组。此类主机进程可包含虚拟机及主机操作系统中运行的其它进程。在各种实施方案中,提供用于实现由在网络装置上执行的多个进程共享高性能I/O装置(例如分组处理器)的系统、方法及计算机可读媒体。在各种实施方案中,所述网络装置可包含存储器管理单元(例如I/O存储器管理单元(IOMMU))。所述存储器管理单元可经配置以包含地址映射。所述地址映射可进一步经配置以包含保留部分。所述保留部分中的地址可对应于主机地址空间中的地址,其中所述主机地址空间在所述网络装置的存储器中。在各种实施方案中,所述地址空间独立于使用所述地址空间的进程被保存。所述网络装置可进一步经配置以将所述地址映射指派到所述网络装置上执行的虚拟机。所述虚拟机可经配置以在所述地址映射中分配客户机部分,其中所述客户机部分分配于所述地址映射中不包含所述保留部分的一部分中。所述网络装置可进一步经配置以将来自多个信道的第一信道指派到所述客户机部分。所述虚拟机可进一步经配置以使用所述第一信道从网络接收分组。所述网络装置可进一步经配置以将所述保留部分指派到所述网络装置上执行的主机进程,且将来自所述多个信道的第二信道指派到所述保留部分。所述主机进程可经配置以使用所述第二信道将分组发射到网络。在各种实施方案中,主机进程可经配置以使用虚拟地址获得物理地址。在这些实施方案中,主机进程可使用保留部分获得物理地址。此物理地址对应于存储器中的地址,且虚拟地址对应于虚拟机的虚拟地址空间。在各种实施方案中,主机进程可经配置以使用物理地址将分组写入到存储器。在各种实施方案中,分组处理器可使用DMA操作将分组发射到网络上。在各种实施方案中,虚拟机可经配置以使用虚拟地址从存储器读取分组。在各种实施方案中,分组处理器可具有从网络接收到的分组,且使用DMA操作将分组放置在存储器中。在各种实施方案中,分组处理器可经配置以在第二信道上接收发射分组的请求,其中所述请求包含虚拟地址。分组处理器可进一步经配置以使用保留部分获得虚拟地址的物理地址。分组处理器可进一步经配置以使用物理地址从存储器读取分组且发射分组。在各种实施方案中,分组处理器可经配置以在所述第一信道处接收分组。分组处理器可进一步经配置以使用地址映射获得虚拟地址的物理地址,其中虚拟地址由虚拟机配置。分组处理器可进一步经配置以使用物理地址将分组写入到存储器。在各种实施方案中,网络装置可进一步经配置以确定虚拟机已被停用。接着,网络装置可起始新虚拟机,且从而将地址空间映射指派到新虚拟机。新虚拟机可经配置以在地址映射中分配新客户机部分。保留部分也不可由新虚拟机用于分配新客户机部分。网络装置可进一步经配置以将第一信道指派到新客户机部分。新虚拟机可经配置以使用第一信道接收分组。在各种实施方案中,地址空间先前被指派到另一虚拟机。在各种实施方案中,当虚拟机关闭时,地址空间映射被保存。在各种实施方案中,虚拟机包含网络操作系统。在各种实施方案中,主机进程包含软件保活进程。在各种实施方案中,多个信道可被映射到输入/输出(I/O)地址空间。附图说明图1是根据某些实施例的可并入本文揭示的教示的网络装置(也称为“主机系统”)的简化框图。图2是又另一实例网络装置的简化框图。图3说明包含提供用于接收及发射分组的DMA功能性的分组处理器的网络装置的实例。图4说明经配置以共享分组处理器的网络装置的实例,其中分组处理器支持硬件虚拟化。图5说明包含高性能分组处理器的网络装置的实例,所述高性能分组处理器可由网络装置指派到多个主机进程。图6说明高性能分组处理器可通过其在两个主机进程共享之间的过程的实例。具体实施方式在以下描述中,出于解释目的,陈述具体细节以便提供对某些专利技术实施例的透彻理解。然而,应明白,可在没有这些具体细节的情况下实践各种实施例。图式及描述不希望具限制性。本文使用用语“示范性”来表示“用作实例、例子或说明”。本文描述为“示范性”的任何实施例或设计不一定解释为比其它实施例或设计优选或有利。本专利技术大体上涉及联网技术,且更特定来说,涉及用于在网络装置的用户空间中运行的主机进程之间共享高性能分组处理器装置的系统及方法。所述分组处理器可为针对高输入/输出(I/O)性能而设计。网络装置(例如路由器)可包含I/O装置(例如分组处理器)。所述分组处理器可提供直接存储器存取(DMA)功能性以用于将分组发射到网络及/或从网络接收分组。在许多情况中,多个主机级进程可在所述网络装置上执行,其中每一者可能需要使用所述分组处理器发射及/或接收分组。此类主机进程可包含虚拟机及主机操作系统中运行的其它进程。可使用各种技术实现在主机进程(例如软件虚拟化及单根输入/输出虚拟化(SR-IOV))之中共享分组处理器的DMA能力。软件虚拟化涉及运行通过执行例如从主机进程的地址空间到指派到分组处理器以进行DMA操作的地址空间的存储器复制来仿效分组处理器的DMA能力的软件。在存储器位置之间进行复制可能需要大量处理器时间,且因此可降低网络装置的性能。SR-IOV直接在分组处理器上提供硬件虚拟化,从而消除对软件虚拟化的需要且消除潜在性能损失。SR-IOV功能必须被建置到分组处理器中,然而,并非所有分组处理器都包含此能力。无论其是否具有SO-IOV能力,分组处理器时常具有多个DMA信道,其可用于实现分组处理器的共享而不会牺牲性能。对于有效性及安全性,分组处理器以及其它I/O装置可由I/O存储器管理单元(IOMMU)管理。IOMMU可用于系统架构中以将具有DMA能力的I/O装置连接到系统主存储器。除了其它特征之外,IOMMU可提供地址隔离,使得一个I/O装置不能影响另一I/O装置的存储器事务。IOMMU通过将相异地址映射指派到每一I/O装置提供地址隔离。IOMMU地址映射通常称为域。IOMMU地址映射或域可在由处理器使用的物理地址与指派到I/O装置的地址之间提供地址转译。此特征在系统执行虚拟机时特别有用。虚拟机内执行的进程使用虚拟机的虚拟地址空间内的虚拟地址,包含虚拟I/O地址。虚拟机可使用虚拟I/O地址对分组处理器DMA引擎进行编程,使得分组处理器可针对虚拟机的虚拟I/O地址控制执行DMA事务。IOMMU可经配置以将虚拟I/O地址转译成物理I/O地址。分组处理器可使用此转译执行DMA事务。在许多虚拟机配置中,不同虚拟机的DMA操作被保持为隔离的使得一个虚拟机不会干涉另一虚拟机的I/O功能性。为完成本文档来自技高网...
多信道输入/输出虚拟化

【技术保护点】
一种网络装置,其包括:一或多个处理器;及存储器,其与所述一或多个处理器耦合且可由所述一或多个处理器读取,其中所述存储器经配置以包含由主机进程使用以进行输入/输出I/O操作的物理存储器的第一部分,其中所述主机进程在所述网络装置上执行;分组处理器,其包含由所述主机进程用于发射或接收分组的第一信道及由虚拟机用于发射或接收分组的第二信道,其中所述虚拟机在所述网络装置上执行;及存储器管理单元,所述存储器管理单元经配置以使用与所述分组处理器相关联的地址映射;其中所述一或多个处理器执行指令来执行包含以下操作的操作:为所述主机进程保留所述地址映射的一部分,所述保留部分包含将第一组虚拟地址映射成物理存储器的所述第一部分中的一组地址的第一组映射,其中所述主机进程使用所述保留部分以使用所述第一信道发射或接收分组;及为所述虚拟机分配所述地址映射的第二部分,其中所述第二部分分配于所述地址映射中不包含所述保留部分的一部分中,其中所述虚拟机使用所述第二部分以使用所述第二信道发射或接收分组。

【技术特征摘要】
【国外来华专利技术】2016.05.31 US 62/343,728;2016.05.31 US 62/343,8111.一种网络装置,其包括:一或多个处理器;及存储器,其与所述一或多个处理器耦合且可由所述一或多个处理器读取,其中所述存储器经配置以包含由主机进程使用以进行输入/输出I/O操作的物理存储器的第一部分,其中所述主机进程在所述网络装置上执行;分组处理器,其包含由所述主机进程用于发射或接收分组的第一信道及由虚拟机用于发射或接收分组的第二信道,其中所述虚拟机在所述网络装置上执行;及存储器管理单元,所述存储器管理单元经配置以使用与所述分组处理器相关联的地址映射;其中所述一或多个处理器执行指令来执行包含以下操作的操作:为所述主机进程保留所述地址映射的一部分,所述保留部分包含将第一组虚拟地址映射成物理存储器的所述第一部分中的一组地址的第一组映射,其中所述主机进程使用所述保留部分以使用所述第一信道发射或接收分组;及为所述虚拟机分配所述地址映射的第二部分,其中所述第二部分分配于所述地址映射中不包含所述保留部分的一部分中,其中所述虚拟机使用所述第二部分以使用所述第二信道发射或接收分组。2.根据权利要求1所述的网络装置,其中所述主机进程配置所述地址映射的所述保留部分,其中配置所述保留部分包含将地址从物理存储器的所述第一部分写入到所述保留部分中。3.根据权利要求1所述的网络装置,其中管理程序配置所述地址映射的所述第二部分。4.根据权利要求1所述的网络装置,其中所述主机进程经配置以使用虚拟地址获得物理地址,其中所述主机进程使用所述保留部分获得所述物理地址,其中所述物理地址是物理存储器的所述第一部分中的地址,且其中所述虚拟地址是在所述虚拟机的虚拟地址空间中。5.根据权利要求1所述的网络装置,其中所述主机进程经配置以使用物理地址将分组写入到所述存储器。6.根据权利要求1所述的网络装置,其中所述虚拟机经配置以使用虚拟地址从所述存储器读取分组。7.根据权利要求1所述的网络装置,其中所述分组处理器经配置以:在所述第二信道上接收发射分组的请求,其中所述请求包含虚拟地址;使用所述保留部分获得所述虚拟地址的物理地址;使用所述物理地址从所述存储器读取分组;及发射所述分组。8.根据权利要求1所述的网络装置,其中所述分组处理器经配置以:在所述第一信道处接收分组;使用所述地址映射的所述第二部分获得虚拟地址的物理地址,其中所述虚拟地址由所述虚拟机配置;及使用所述物理地址将所述分组写入到所述存储器。9.根据权利要求1所述的网络装置,其中所述一或多个处理器进一步执行指令以执行操作,所述操作包含:确定所述虚拟机不再执行;启动新虚拟机;为所述新虚拟机分配所述地址映射的第三部分,其中所述第三部分分配于所述地址映射中不包含所述保留部分的一部分中,其中所述新虚拟机使用所述第三部分以使用所述第二信道发射或接收分组。10.根据权利要求1所述的网络装置,其中所述地址映射先前被指派到另一虚拟机,其中所述另一虚拟机不再执行。11.根据权利要求1所述的网络装置,其中,当所述虚拟机关闭时,所述地址映射被保存。12.根据权利要求1所述的网络装置,其中没有其它地址映射能够与所述分组处理器相关联。13.根据权利要求1所述的网络装置,其中所述虚拟机包含网络操作系统。14.根据权利要求1所述的网络装置,其中所述主机进程包含软件保活进程。15.一种方法,其包括:为主机进程保留地址映射的一部分,所述保留部分包含将第一组虚拟地址映射成物理存储器的第一部分中的一组地址的第一组映射,其中所述主机进程使用所述保留部分以使用分组处理器的第一信道发射或接收分组,其中存储器管理单元经配置以包含所述地址映射,其中所述地址映射与所述分组处理器相关联,且其中所述主机进程在网络装置上执行;及为虚拟机分配所述地址映射的第二部分,其中所述第二部分分配于所述地址映射中不包含所述保留部分的一部分中,其中所述虚拟机使用所述第二部分以使用所述分组处理器的第二信道发射或接收分组,且其中所述虚拟机在所述网络装置上执行。16.根据权利要求15所述的方法,其中所述主机进程配置所述地址映射的所述保留部分,其中配置所述保留部分包含将地址从物理存储器的所述第一部分写入到所述保留部分中。17.根据权利要求15所述的方法,其中管理程序配置所述地址映射的所述第二部分。18.根据权利要求15所述的方法,其进一步包括:使用虚拟地址获得物理地址,其中获得所述物理地址包含使用所述保留部分获得所述物理地址,其中所述物理地址对应于物理存储器的所述第一部分中的地址,且其中所述虚拟地址对应于所述虚拟机的虚拟地址空间。19.根据权利要求15所述的方法,其进一步包括:使用物理地址将分组写入到存储器,其中所述分组由所述主机进程写入到存储器。20.根据权利要求15所述的方法,其进一步包括:使用虚拟地址从存储器读取分组,其...

【专利技术属性】
技术研发人员:C·何R·杜塔M·李S·巴塔查里亚T·D·泰特斯
申请(专利权)人:博科通讯系统有限公司
类型:发明
国别省市:美国,US

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

1