用于网络功能虚拟平台的多层服务质量(QoS)的制作方法

文档序号:20163301发布日期:2020-03-24 21:14阅读:206来源:国知局
用于网络功能虚拟平台的多层服务质量(QoS)的制作方法

本申请是申请日为2016年5月13日的名称为“用于网络功能虚拟平台的多层服务质量(qos)”的中国专利申请201610315633.0的分案申请。

本申请要求在2015年5月28日提交的美国专利申请no.14/724,089的优先权,该美国专利申请通过引用以其整体并入本文。

本发明的实施例涉及网络功能虚拟化(nfv),并且更具体地涉及用于nfv的硬件加速。



背景技术:

互联网的发展已经帮助创建将全球范围内的数十亿台设备链接在一起的网络的网络。通常,最快和最可靠的网络利用定制的专用集成电路(asic)和专用硬件建成。因此,大型企业网络通常类似于复杂的单片系统。在此类自定义系统中,临时添加功能和对这些系统进行改变同时确保网络不遭受任何干扰是非常具有挑战性的。

由于最近的网络专注于商品计算硬件的进步,先前只能够通过专有的专用硬件而被提供的服务现在可以通过利用标准信息技术(it)的虚拟化技术使用在商品硬件上运行的软件来提供,标准信息技术(it)的虚拟化技术运行在大容量服务器、交换机和存储硬件上以虚拟化网络功能。通过利用标准it虚拟化技术来将不同类型的网络设备整合到商用“现成的”大容量服务器、交换机和存储装置上,网络功能诸如网络地址转换(nat)、防火墙、入侵检测、域名服务(dns)、负载均衡和高速缓存(仅举几例)可以从专有硬件被解耦并且代替地可以以软件运行。这种在商品硬件上的网络功能的虚拟化有时被称为网络功能虚拟化(nfv)。

为了开发完全虚拟化的基础设施,领先的服务供应商已经走到一起并创建了用于网络功能虚拟化(nfv)的欧洲电信标准协会(etsi)行业规范组(isg)。该行业规范组已帮助创建了用于虚拟化电信网络内的各种功能的体系结构和相关要求。网络功能虚拟化的益处包含降低资本支出(即,通过减少购买专用硬件的需求)、运营支出(即,通过减少空间、电力和冷却要求)、减少进入市场的时间(即,加速部署)、提高了解决不断变化的需求的灵活性等。

正是在这种背景下,出现了本文所描述的实施例。



技术实现要素:

本发明提供一种网络功能虚拟化(nfv)平台,其包括耦合至充当硬件加速器的可重新配置的协处理器的主处理器。协处理器可以包括虚拟功能硬件加速器,所述虚拟功能硬件加速器用于提高在主处理器上运行的至少一些虚拟机的性能。根据一个实施例,nfv平台可被提供有多层服务质量(qos)管理器,所述多层服务质量(qos)管理器具有遍及主处理器和协处理器分布的多个独立操作的qos模块。

协处理器可以至少包括接收来自多个虚拟机的服务请求的第一电路(例如,直接存储器存取引擎)和接收来自外部数据端口的数据包的第二电路(例如,输入-输出电路)。可以使用虚拟机管理器(vmm)qos模块来调度来自多个虚拟机的服务请求,而可以使用独立于vmmqos模块而操作的网络入口/出口qos模块来管理在外部数据端口的流量。根据另一实施例,可以使用相应的专用服务等级(cos)qos模块来安排来自每个虚拟机的服务请求的优先级。

dma引擎也可以包括使用vmmqos模块来管理的多个输入队列和使用数据交换qos模块来管理的多个输出队列。协处理器也可以包含数据交换电路,所述数据交换电路被耦合至dma引擎和输入-输出电路并且与虚拟功能硬件加速器直接通信。具体地,使用硬件加速器输入/输出qos模块来管理在数据交换电路处与虚拟功能硬件加速器的通信。协处理器还可以包括用于与外部存储器组件通信的存储器控制器,其中使用外部存储器qos模块来安排在所述存储器控制器处的存储器访问请求的优先级。

在主处理器和协处理器中的vmmqos模块、服务等级qos模块、网络入口/出口qos模块、数据交换qos模块、硬件加速器输入/输出qos模块、外部存储器qos模块和/或其它qos模块可以彼此独立地被操作,以使用以分层方式的多层qos管理器来同时处理来自多个源的访问请求,从而帮助满足所需要的网络性能。

通过随附附图和以下详细的描述,本发明的进一步特征、其本质和各种优点将更加明显。

附图说明

图1是根据实施例示出网络功能虚拟化(nfv)的示意图。

图2是根据实施例的说明性可编程集成电路的示意图。

图3是根据实施例的包括被耦合至可编程硬件加速器的中央处理单元(cpu)的说明性nfv平台的示意图。

图4是根据实施例示出虚拟机如何可以被提供有说明性服务等级(cos)服务质量(qos)模块的示意图。

图5是根据实施例示出说明性的直接存储器存取引擎如何可以被提供有虚拟机(vm)qos模块和数据交换qos模块的示意图。

图6a是根据实施例示出的输入-输出电路如何可被提供有网络入口qos模块的示意图。

图6b是根据实施例示出的输入-输出电路如何可被提供有网络出口qos模块的示意图。

图7是根据实施例示出的与多个虚拟功能硬件加速器交接的数据交换电路如何可被提供有硬件加速器输入qos模块和硬件加速器输出qos模块的示意图。

图8是根据实施例示出的说明性存储器控制器如何可以被提供有外部存储器qos模块的示意图。

图9是根据实施例示出的可以被用于管理图3所示类型的nfv平台的说明性多层qos的示意图。

具体实施方式

本发明的实施例涉及网络功能虚拟化(nfv),并且更具体地涉及用于nfv的硬件加速。本领域的技术人员将认识到,本发明的示例性实施例可以在没有这些具体细节的一些或全部的情况下来实施。在其它实例中,众所周知的操作没有被详细描述,以免不必要地模糊本发明的实施例。

通常,使用零散的非商品硬件来创建复杂的网络。当扩展或升级网络时,需要安装新的专用硬件,这不仅增加现有供应商的部署成本,而且对新供应商呈现出大的进入壁垒,限制了创新和竞争。

为了加快新网络服务的部署,以满足不断增长的提高网络速度和可靠性的消费者需求,供应商(例如,电信运营商或服务提供商,诸如at&t、verizon、britishtelecom等)已经走到一起并创建了欧洲电信标准协会(etsi)行业规范组(isg)。自此以来,etsiisg已引进了可应用到联网(networking)技术以形成更智能和更灵活的服务基础设施的虚拟化技术。运行网络功能诸如通常由专用路由器、防火墙、负载均衡器、内容分发网络(cdn)、宽带网络网关(bng)、网络地址转换器(nat)、域名系统(dns)以及在商品硬件上以软件形式的其它联网设备所执行的那些网络功能的这种概念有时被称为网络功能虚拟化(nfv)。

网络功能虚拟化的概念在图1中被示出。如图1的系统100所示,nfv允许由多个独立供应商提供的服务单独运行在云102中的一个或多个虚拟应用104上。实际上,由不同软件供应商提供的网络服务可以使用运行在商用的现成硬件上的虚拟应用104来实现,所述硬件包括但不限于标准大容量交换机106、标准大容量存储器108和标准大容量服务器110(例如,网络功能可以被编排并被远程地安装在商品物理基础设施上而不是在更昂贵的制造商设计的专用硬件上)。

将不同的网络组件转移到商品硬件有助于消除针对现场的(onsite)不同应用而对更昂贵的专用硬件的使用,并且因此有助于消除浪费的过度配置并可以大大减少资本支出。整体基础设施的虚拟化还有助于简化用于管理网络的操作过程和设备。由于所有的服务都在相同的商品硬件上被运行,所以数据中心运营商不再需要支持多个供应商和硬件模型,从而简化了基础硬件支持/管理,并提供允许在不同的服务和组件内和在不同的服务和组件之间的自动操作和编排的统一的基础设施。

例如,网络管理员可以协调资源的可用性(在nfv框架内)并且使服务可用所需要的程序自动操作,这减少了管理过程的人类操作员的需求,并从而降低错误的可能性。此外,nfv也可以帮助减少时间以在对网络基础设施的破坏最小化的情况下部署新联网服务,从而有助于抓住新的市场机遇并提高新服务的投资回报(roi),同时通过允许服务以软件形式迅速地被扩大或缩小以满足客户的需求来提供增强的敏捷性和灵活性。如果需要的话,nfv可以结合软件定义联网(sdn)方法来实现,该方法使网络的控制面和转发面分离以提供更集中的分布式网络视图,以便网络服务的更有效的编排和自动化。

通常,可以存在至少两种不同类型的网络功能虚拟化平台,其包括本地(native)“裸机(baremetal)”虚拟化实施方式和“托管/主控(hosted)”虚拟化实施方式。裸机虚拟化包括在主机上安装作为第一操作系统的管理程序(hypervisor)(即,创建并运行一个或多个虚拟机的计算机软件),而托管虚拟化包括在运行在主机上的已活(live)的操作系统(即,主操作系统)之上安装管理程序。“裸机”虚拟化提供对主机上的硬件资源的直接访问并且通常被用于企业解决方案。另一方面,托管虚拟化除了允许运行多个访客(guest)操作系统外只可以通过主操作系统访问硬件,并且因此托管虚拟化通常被用于桌面(desktop)解决方案。

通常,与裸机实施方式相比,托管实施方式在平均响应时间上表现出增加的延时和相对较宽的统计扩散(statisticalspread)。托管实施方式的这种延时增加和变化性可能是由于通过共享资源所引起的争夺并且也可能由于与用于在多个访客操作系统之间处理所需要的额外联网层相关联的开销。

为了提供改进的性能可预测性,数据中心运营商(例如,网络协调器(orchestrator),诸如微软、谷歌和亚马逊,仅举几例)为通用中央处理单元(例如,图1的设备106、108和110内的用于实现虚拟应用的cpu)提供资源可用性描述(rad)。然而,资源可用性描述只提供本地信息(诸如cpu速度和本地存储的量/类型),但并不明确说明cpu与外部组件交互的如何。

为进一步加强虚拟化网络的可实现速度,商品cpu可耦合到硬件加速器或“协处理器”。根据一个实施例,硬件加速器器件可以是可编程集成电路,诸如可编程逻辑器件(pld)。可以作为硬件加速器使用的该类型的说明性集成电路在图2中被示出。如图2所示,集成电路10可以包括存储器元件20。存储器元件20可以被加载有配置数据以配置可编程晶体管,诸如在可编程电路(可编程逻辑)18中的导通(pass)晶体管(有时被称为导通栅极(gate)或导通栅极晶体管)。

因为存储器元件20可以被用于存储可编程逻辑18的配置数据,所以存储器元件20有时可以被称为配置随机存取存储器元件(cram)。集成电路10可以被配置为通过配置可编程逻辑18而实现自定义逻辑功能,因此集成电路10有时可以被称为可编程集成电路。

如图2所示,可编程集成电路10可具有用于经由输入-输出引脚14驱离器件10的信号和接收来自其他器件的信号的输入/输出电路12。互连资源16(诸如全局和局部的垂直和水平的导线和总线)可以被用于路由器件10上的信号。互连资源16可以包括固定互连(导线)和可编程互连(即,在相应固定互连之间的可编程连接)。

可编程逻辑18可以包括组合逻辑电路和时序逻辑电路。可编程逻辑18可以经配置以执行自定义逻辑功能。与互连资源16相关联的可编程互连可以被认为形成可编程逻辑18的一部分。

当存储器元件20被加载有配置数据时,所述存储器元件中的每个提供对应的静态控制输出信号,所述静态控制输出信号控制可编程逻辑18中相关联的逻辑组件的状态。例如,存储器元件的输出信号可以被用于控制可编程组件(诸如复用器、逻辑门诸如“与”门、“与非”门等)中的金属氧化物半导体(mos)(诸如n沟道金属氧化物半导体(nmos)导通晶体管)晶体管的栅极。如果需要的话,p沟道晶体管(例如,p沟道金属氧化物半导体导通晶体管)也可以由来自存储器元件20的输出信号来控制。当与nmos导通晶体管相关联的存储器元件输出为高时,由该存储器元件控制的导通晶体管被接通并从其输入端向其输出端传送逻辑信号。在存储器元件输出为低时,nmos导通晶体管被关断并且不传送逻辑信号。当来自存储器元件的输出端的被施加到p沟道金属氧化物半导体(pmos)导通晶体管的栅极的信号为低(例如,0伏)时,所述p沟道金属氧化物半导体(pmos)导通晶体管被接通,并且当存储器元件的输出为高(即,nmos和pmos控制信号的极性被反转)时,所述p沟道金属氧化物半导体(pmos)导通晶体管被关断。

配置随机存取存储器元件20可以被布置成阵列模式。例如,在集成电路10上可以存在数百万个存储器元件20。在编程操作期间,存储器元件的阵列被提供有配置数据。一旦存储器元件20被加载配置数据,其可以选择性地控制(例如,接通和关断)可编程逻辑18中的电路的部分并且由此自定义电路10的电路功能。

可编程集成电路10的电路可以使用任何合适的体系结构来组织。作为示例,可编程集成电路10的电路可以被组织为一系列可编程逻辑块(区域)的行和列,每个可编程逻辑块(区域)包括多个更小的逻辑区域。集成电路10的逻辑资源可以通过互连资源16(诸如相关联的垂直导线和水平导线)而被互连。这些导线可以包括基本上跨越器件10的全部的全局导线、跨越器件10的一部分的部分线诸如半线或四分之一线、特定长度的交错线(例如,足够互连几个逻辑区)、更小的局部线或任何其它合适的互连资源布置。如果需要的话,可编程集成电路10的电路可以以更多的级或层来被布置,其中多个大的区域被互连以形成更大的逻辑部分。其它器件布置可以仍然使用不是以行和列布置的逻辑。

在其中器件10被描述为可编程集成电路的图2的示例仅仅是说明性的,并且不用于限制本发明的范围。本文所描述的方法和装置可被并入任何合适的电路。例如,所述方法和装置也可以被并入多种类型的器件,诸如微处理器、数字信号处理器、专用标准产品(assp)、专用集成电路(asic)、可编程阵列逻辑(pal)、可编程逻辑阵列(pla)、现场可编程逻辑阵列(fpla)、电可编程逻辑器件(epld)、电可擦除可编程逻辑器件(eepld)、逻辑单元阵列(lca)、现场可编程门阵列(fpga),仅举几例。

图3是说明性nfv平台300的示意图,其中中央处理单元(cpu)302被耦合到硬件加速器协处理器(诸如可编程集成电路350)。如图3所示,在cpu302上运行的软件/固件可以至少包括管理程序308和n个相关联的虚拟机306(例如,虚拟机306-1、306-2、…、306-n)以及虚拟根310。管理程序308被安装在其上的cpu302可以被称为“主机”。

如上所述,管理程序308可以充当在服务器上运行一个或多个虚拟机306的虚拟机监控程序(vmm)。每个虚拟机306可以被称为“访客机”并且均可以运行访客操作系统(os)。管理程序向访客操作系统呈现虚拟操作平台并管理访客操作系统的执行,同时共享虚拟化硬件资源。管理程序308可以(作为类型-1裸机管理程序)直接运行在主机的硬件上或可以(作为类型-2托管管理程序)运行在现有的主操作系统之上。如果需要的话,附加的半虚拟化驱动程序和工具(未示出)可被用来帮助每个访客虚拟机与底层物理硬件更有效地通信。cpu302也是可操作的以与片外主存储器304直接通信。在其它合适的实施例中,cpu302可经配置以与网卡、盘驱动器控制器、图形卡、声卡等通信。

在图3的示例中,根310可用作根复合体(rootcomplex),其使用快速外围组件互连(pcie)标准与加速器350中的对应的虚拟端点(endpoint)352连接(interface)。在pcie系统中,根复合体可以指经配置将cpu连接至其它pcie端点和/或pcie开关的器件,pcie端点和其它类型的端点可以被连接到所述器件。根复合体通常利用包括事务层、数据链路层和物理层的完整pcie协议栈来实现。使用pcie总线来连接cpu302和协处理器350仅是说明性的。如果需要的话,可以使用其它类型的输入输出接口技术,其包括工业标准体系结构(isa)总线标准、微通道体系结构(mca)总线标准、视频电子标准协会本地总线(vesa)总线标准、传统pci总线标准、加速图形端口(agp)总线标准、通用串行总线(usb)标准、通用异步接收器/发送器(uart)总线标准等。

仍参考图3,在协处理器350上运行的软件/固件也可以至少包括存储器控制器358(例如,用于与直接耦合至协处理器350的外部存储器360连接的存储器控制器)、直接存储器存取(dma)引擎354、数据交换电路356、输入/输出(io)组件362和364以及一个或多个虚拟功能硬件加速器366。

每个加速器366可以用于向运行在主处理器302上的一个或多个虚拟机306提供硬件加速。组件362和364可以用作与耦合至协处理器350的其它io装置进行通信的入口和/或出口接口。数据交换电路356可经配置以在加速器366、io组件362和364以及dma引擎354之间路由数据。直接存储器存取引擎354可经配置以将数据从主机cpu存储器304路由至协处理器350。加速器366也能够经由路径359与存储器控制器358直接通信。

带有硬件加速的nfv系统有时可以具有表现出不同优先级并潜在地针对共同目的地的多个源。作为示例,主处理器中的多个虚拟机中的每个可表现出其自身的优先级要求的设置。作为另一示例,在协处理器的io组件处接收到的每个包可以具有其自己的优先级标准。一个或多个此类型的请求者可以尝试同时访问协处理器中的虚拟功能加速器。然而,仅处理nfv系统的单个接口处的流量(traffic)的常规的服务质量(qos)管理器不能够同时处理具有多个vm访问和外部端口访问的虚拟化。因此,期望提供能够管理来自不同源的不同优先级的访问请求的改进qos方案。

根据本发明的实施例,提供允许来自不同源的输入被单独确定优先次序的多层qos管理模块。具体地,系统级qos模块不存在于单个分立的流量管理器中,而是跨越整个nfv平台的多个层来被分布。

图4是示出虚拟机306(例如,在图3的主处理器上运行的虚拟机中的一个)如何可以包括多个服务等级(cos)队列的示意图。如图4所示,虚拟机306可以包括第一cos队列400-1、第二cos队列400-2、...和第mcos队列400-m。顾名思义,m个队列400中的每个可用于将来自不同服务等级的请求入队列。不像qos流量管理(其通常用于保证关于带宽和传递时间的服务水平),服务等级可以指的是通过将相似类型的流量分组在一起并将每种类型处理为具有其自己的服务优先级水平的等级的管理网络流量的方式。例如,语音服务请求可以被馈送至第一cos队列;数据服务请求可以被馈送至第二cos队列;视频服务请求可以被馈送至第三cos队列;电子邮件服务请求可以被馈送至第四cos队列;大文档传送请求可以被馈送至第五cos队列,仅举几例。这些示例仅是说明性的。在主处理器中的虚拟机中的每个可以被用于处理来自任何合适类型的服务的请求。

仍参考图4,虚拟机306可以被提供有虚拟机(vm)服务等级qos模块402(例如,在主处理器中的虚拟机中的每个可以被提供有其自己的专用cosqos模块)。根据一个实施例,vmcosqos模块402可以用于对虚拟机中的不同服务等级安排优先级。例如,模块402可以确定具有语音服务请求的队列被给予最高优先级,具有视频服务请求的队列被给予第二高优先级,以及具有数据服务请求的队列被给予第三高优先级。还应当注意的是,虽然优先级判定由在虚拟机内的vmcosqos模块402本地确定,但是通过在协处理器的dma引擎处的调度算法,优先级判定被有效地实现。通常,在主处理器中的每个虚拟机内的cosqos模块402能够独立安排其自己虚拟机内的不同队列400的优先级,而不会受任何外部行为影响。

图5是示出dma引擎354可以如何包括多个虚拟机优先级队列诸如输入(或“收件箱”)队列500和输出(或“发件箱”)队列510的示意图。输入队列500-1、500-2、...、500-j中的每个可以经由路径502接收来自主处理器中的相应虚拟机的请求。例如,队列500-1可以经配置以接收来自主处理器中的第一虚拟机的访问请求,而队列500-2可以经配置以接收来自不同于主处理器中的第一虚拟机的第二虚拟机的访问请求。每个队列500也可以包括用于接收来自特定主虚拟机的不同cos请求的多个子队列(有时被称为“通道”)。

如图5所示,dma引擎354可以被提供有虚拟机管理器(vmm)qos模块504,其经配置以安排来自不同虚拟机的访问请求的优先级。例如,模块504可以确定在处理来自另一虚拟机的请求之前来处理来自特定虚拟机的请求(例如,通过允许来自队列500的选定一个的访问请求经由路径506被传送至协处理器数据交换电路)。vmmqos模块504可以能够独立地安排与不同虚拟机相关联的不同队列500的优先级,而不受图4的vmqos模块402的影响。

输出队列510-1、510-2、...、510-k中的每个可以经由路径512接收来自数据交换电路的不同数据集。在队列510-1处接收到的数据可以最终被反馈至主处理器中的第一对应虚拟机,而在队列510-2处接收到的数据可以最终被反馈至主处理器中的第二对应虚拟机。

根据一个实施例,dma引擎354也可以被提供有数据交换qos模块504,其经配置以安排被反馈至虚拟机的数据的优先级。例如,模块514可以确定在允许来自另一发件箱队列510的数据被输出之前而将在特定发件箱队列510中的数据输出至vm空间(例如,通过允许来自队列510中的选定一个的数据包经由路径516被传送至虚拟机电路)。数据交换qos模块514可以能够独立地安排k个不同队列510的优先级,而不受图4中的vmqos模块402或图5中的vmmqos模块504的影响。

协处理器中的输入输出(io)电路也可以被提供有其自己的独立操作的qos模块。图6a示出io电路363(即,图3中的io电路362或364)可以如何被提供有网络入口qos模块600。qos模块600可经配置以安排经由外部端口604接收到的网络包的优先级。具体地,qos模块600可以确定输入包经由路径606被路由至内部协处理器组件的顺序。例如,入口qos模块600可以用于在路由输入视频包之前将语音包路由至数据交换。作为另一示例,模块600可以用于在将软件更新设置路由至数据交换以用于处理之前将接收的电子邮件包路由至数据交换。这些示例仅是说明性的。在其它合适的布置中,入口模块600可经配置以将输入包直接路由至dma引擎354、(多个)硬件加速器366、存储器控制器357和/或图3的协处理器内的其它内部电路。

图6b示出io电路363(即,图3中的io电路362或364)可以如何被提供有网络出口qos模块602。qos模块602可以经配置以安排被输出至外部端口610的网络包的优先级(例如,以确定输出包被路由至外部网络端口的顺序)。如图6b所示,出口qos模块602可以经由路径608接收来自协处理器内的各种内部组件的数据包。

例如,出口qos模块602可以用于在输出从第二虚拟功能硬件加速器提供的包之前而输出已使用第一虚拟功能硬件加速器处理的数据包。作为另一示例,出口qos模块602可以用于在输出从附连协处理器的外部存储器(例如,图3的片外存储器360)检索到的数据包之前,输出来自数据交换电路的数据包。这些示例仅是说明性的。在其它合适的布置中,出口模块602可以经配置以直接接收来自dma引擎354、(多个)硬件加速器366、存储器控制器357和/或图3的协处理器内的其它内部电路的输出包。

通常,图6a和6b的网络入口和出口qos模块可以同时被包括在协处理器内(例如,入口和出口qos模块不需要单独被使用并且可以被统一称为网络入口-出口模块)。如此配置的io电路网络入口和出口模块可以能够单独地安排在网络交接数据端口处的网络数据包的优先级,而不受图4中的vmqos模块402、图5中的vmmqos模块504或数据交换qos模块514的调度判定的影响。

根据另一实施例,数据交换电路356可以在与硬件加速电路的接口处被提供有优先级排队管理模块(例如,参见图7)。如图7所示,数据交换电路356可包括硬件(hw)加速器(acc)输入qos模块和hwacc输出qos模块702。通常,hw加速器366中的每个提供一些专门的功能。例如,第一加速器366可能比第二加速器366更适合执行特定任务。如果需要,每个加速器366也可以经配置以执行一个或多个服务等级。

加速器输入qos模块700可以负责在至hw加速器366的输入端704处优先级排队。例如,模块700可以用于确定哪个hw加速器首先用于执行特定任务以帮助优化网络性能(即,以确保高吞吐量的同时最小化传递时间)。类似地,加速器输出qos模块702可以负责在hw加速器366的输出端706处优先级排队。例如,模块702可以用于确定在多个加速器366在并行输出数据的情况下哪个hw加速器首先接收或锁存。

如果需要,数据交换电路356不必需包括hwacc输入和输出qos模块两者(例如,数据交换可仅包括输入qos模块700或仅包括输出qos模块702)。如此配置的hwacc输入/输出qos模块可以能够独立地安排对不同hw加速器片366访问的优先级,而不受图4中的vmqos模块402、图5中的vmmqos模块504、数据交换qos模块514或图6中的网络入口/出口qos模块的调度判定的影响。

根据又一实施例,存储器控制器358可以在与外部片外存储器360的接口361处设有优先级排队模块(例如,参见图8)。如图8所示,存储器控制器358可以包括外部存储器qos模块800,其负责安排对外部存储器360的访问以用于数据存储的优先级。

在图8的示例中,存储器控制器358可以经配置以直接接收经由路径802来自vm硬件加速器的或经由路径804来自数据交换电路或dma引擎的存储器访问请求(例如,存储器读出请求或存储器写入请求)。外部存储器qos模块800可以用于确定首先处理从路径802和804接收到的哪个存储器访问请求。例如,存储器qos模块800可以确定在接收自数据交换的访问请求被处理之前处理来自hw加速器的访问请求。作为另一示例,存储器qos模块800可以判定在接收自hw加速器片的访问请求被处理之前处理来自mda引擎的访问请求。此外,存储器qos模块800可以能够调度特定源的访问请求。作为示例,片外存储器qos模块800还可以在执行接收自数据交换电路的存储器访问请求之前重新排序所述请求。

如此配置的外部存储器qos模块可以能够独立地安排对片外存储器装置360访问的优先级,而不受图4的vmqos模块402、图5的vmmqos模块504、数据交换qos模块514、图6的网络入口/出口qos模块或图7的hwacc输入/输出qos模块的调度判定的影响。

图4-9的实施例的至少一些可被包括在单个nfv平台内(即,可以使用所述实施例的任何合适的组合)。图9是示出可以用于管理结合图3所描述的类型的nfv系统的例示性多层qos栈(stack)900的示意图。如图9所示,多层qos栈900可以包括vm服务等级qos模块402(例如,结合图4描述的类型的qos模块)、虚拟机管理器qos模块504(例如,结合图5描述的类型的qos模块)、数据交换qos模块514(例如,结合图5描述的类型的qos模块)、网络入口qos模块600(例如,结合图6a描述的类型的qos模块)、网络出口qos模块602(例如,结合图6b描述的类型的qos模块)、hw加速器输入/输出模块701(例如,结合图7描述的类型的hwacc输入和输出qos模块)、外部存储器qos模块800(例如,结合图8描述的类型的片外存储器qos模块)和/或其他合适类型的qos模块。

多层栈900中的不同qos层中的每个可以分布在nfv平台中的不同位置并且可以独立执行其自己的优先级排队。因此,以这种方式配置的硬件加速nfv平台可以能够处理来自不同源的具有不同优先级水平的请求(例如,来自多个虚拟机,来自协处理器外部端口等)。图9的栈900中的各种qos层仅是说明性的,并不用于限制本发明的范围。如果需要,qos栈可以包括少于七个独立运行的qos层、多于七个独立运行的qos层以及用于管理在主处理器或协处理器的各种内部组件处的流量的其它合适类型的qos模块。

在本文的一个或多个实施例中描述的可编程逻辑器件可以是数据处理系统的一部分,所述数据处理系统包括下列组件中的一个或多个:处理器;存储器;io电路;以及外围设备。数据处理可以在各种各样的应用中被使用,诸如计算机联网、数据联网、仪器、视频处理、数字信号处理或在其中使用可编程或可重新编程逻辑的优点是有利的任何合适的其它应用。可编程逻辑器件可以被用于执行各种不同的逻辑功能。例如,可编程逻辑器件可以被配置为配合系统处理器工作的处理器或控制器。可编程逻辑器件也可被用作用于在数据处理系统中仲裁对共享资源的访问的仲裁器。在另一示例中,可编程逻辑器件可以被配置为在处理器和系统中的其它组件中的一个组件之间的接口。在一个实施例中,可编程逻辑器件可以是由altera公司拥有的器件系列中的一种。

虽然操作的方法以特定顺序被描述,但是应当理解,其它操作可以在描述的操作之间被执行,描述的操作可以被调整,使得它们在稍微不同的时间处发生或描述的操作可以被分布在系统中,这允许处理操作发生在与所述处理相关联的不同时间间隔处,只要覆盖操作的处理以期望的方式被执行。

附加实施例:

附加实施例1.一种集成电路,其包括:接收来自多个虚拟机的服务请求的第一电路,其中使用虚拟机管理器(vmm)服务质量(qos)模块来调度所述服务请求;以及接收来自外部数据端口的数据包的第二电路,其中使用不同于所述虚拟机管理器qos模块的网络入口-出口服务质量(qos)模块来管理在所述外部数据端口处的流量。

附加实施例2.根据附加实施例1所述的集成电路,其中所述虚拟机管理器qos模块独立于所述网络入口-出口qos模块操作。

附加实施例3.根据附加实施例1所述的集成电路,其中所述第一电路包括直接存储器存取(dma)引擎。

附加实施例4.根据附加实施例3所述的集成电路,其中所述dma引擎包括:使用所述虚拟机管理器qos模块来管理的多个输入队列;以及使用独立于所述vmmqos模块操作的数据交换服务质量(qos)模块来管理的多个输出队列。

附加实施例5.根据附加实施例1所述的集成电路,进一步包括:数据交换电路,其被耦合至所述第一电路和第二电路并与所述集成电路内的多个虚拟功能硬件加速器直接通信,其中使用独立于所述虚拟机管理器qos模块和所述网络入口-出口qos模块操作的硬件加速器输入-输出qos模块来管理在所述数据交换电路处与所述多个虚拟功能硬件加速器的通信。

附加实施例6.根据附加实施例1所述的集成电路,进一步包括:用于与外部存储器装置通信的存储器控制器,其中使用独立于所述虚拟机管理器qos模块和所述网络入口-出口qos模块操作的外部存储器服务质量(qos)模块来安排在所述存储器控制器处的存储器访问请求的优先级。

附加实施例7.根据附加实施例1所述的集成电路,其中所述多个虚拟机运行在外部主处理器上,所述外部主处理器被耦合至所述集成电路并运行管理程序。

附加实施例8.根据附加实施例1所述的集成电路,进一步包括:可编程逻辑元件,其能够被重新配置以执行不同的自定义功能。

附加实施例9.一种管理网络功能虚拟化(nfv)系统的流量的方法,其包括:使用第一服务质量(qos)模块来安排来自在所述nfv系统中的主处理器上运行的至少一个虚拟机的服务请求的优先级;以及独立于所述第一qos模块使用第二服务质量(qos)模块来执行优先级调度,其中所述第二qos被包括在附连至所述nfv系统中的主处理器的协处理器内。

附加实施例10.根据附加实施例9所述的方法,其中使用所述第一qos模块包括使用所述第一qos模块来安排来自所述至少一个虚拟机的不同服务等级的服务请求的优先级,所述至少一个虚拟机运行在所述主处理器上。

附加实施例11.根据附加实施例9所述的方法,其中使用所述第一qos模块包括使用虚拟机管理器(vmm)qos模块来安排来自在所述主处理器上运行的多个虚拟机的服务请求的优先级。

附加实施例12.根据附加实施例10所述的方法,其中使用所述第二qos模块包括:使用数据交换服务质量(qos)模块来安排被反馈至所述多个虚拟机的数据的优先级。

附加实施例13.根据附加实施例10所述的方法,其中使用所述第二qos模块包括:使用网络入口服务质量(qos)模块来管理在所述协处理器的外部数据端口处的输入流量;以及使用网络出口服务质量(qos)模块来管理在所述协处理器的所述外部数据端口处的输出流量。

附加实施例14.根据附加实施例10所述的方法,其中使用所述第二qos模块包括:使用硬件加速器输入服务质量(qos)模块来管理至所述协处理器中的多个硬件加速器的输入流量;以及使用硬件加速器输出服务质量(qos)模块来管理从所述协处理器中的所述多个硬件加速器产生的输出流量。

附加实施例15.根据附加实施例10所述的方法,其中使用所述第二qos模块包括:使用外部存储器服务质量(qos)模块来安排对直接附连至所述协处理器的片外存储器装置的存储器访问的优先级。

附加实施例16.一种网络功能虚拟化(nfv)平台,其包括:主处理器,其具有创建并运行虚拟机的管理程序;和协处理器,其具有用于加速所述虚拟机的性能的加速器,其中所述主处理器和协处理器包括多层服务质量(qos)管理器,所述多层服务质量(qos)管理器具有遍及nfv平台分布的多个独立操作的qos模块。

附加实施例17.根据附加实施例16所述的nfv平台,其中所述多个qos模块包括至少七个独立操作的qos模块。

附加实施例18.根据附加实施例16所述的nfv平台,其中所述多个qos模块包括服务等级(cos)qos模块,所述服务等级(cos)qos模块安排来自运行在所述主机上的所述虚拟机中的至少一个的服务请求的优先级。

附加实施例19.根据附加实施例16所述的nfv平台,其中所述多个qos模块包括虚拟机管理器(vmm)qos模块以安排来自在所述主处理器上运行的所述虚拟机的服务请求的优先级。

附加实施例20.根据附加实施例16所述的nfv平台,其中所述多个qos模块包括数据交换qos模块以安排从所述协处理器被反馈至所述主处理器上的所述虚拟机的数据的优先级。

附加实施例21.根据附加实施例16所述的nfv平台,其中所述多个qos模块包括用于管理在所述协处理器的外部数据端口处的流量的网络入口-出口qos模块。

附加实施例22.根据附加实施例16所述的nfv平台,其中所述多个qos模块包括用于管理在所述协处理器中的多个硬件加速器的流量的硬件加速器qos模块。

附加实施例23.根据附加实施例16所述的nfv平台,其中所述多个qos模块包括用于安排对片外存储器装置的存储器访问的优先级的外部存储器qos模块,所述片外存储器装置被直接附连至所述协处理器。

前述仅用于说明本发明的原理,并且本领域的技术人员可以进行各种更改。前述实施例可以单独或以任何组合来实施。

虽然为了清楚起见相当详细地描述了本发明,但将明显的是,在随附权利要求的范围内可以实施某些改变和修改。虽然随附权利要求中的一些仅是单一从属的或仅引用其在前权利要求中的一些,但是它们的相应特征可以与任何其它权利要求的特征组合。

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