发明内容
根据一个示例实施例,一种处理器设备可以包括多个虚拟片上系统,多个虚拟片上系统被配置为根据多个虚拟片上系统和多个资源之间的资源对准来利用多个资源中的资源。处理器设备还可以包括被配置为响应于至少一个事件来动态地修改资源对准的资源对准单元。
资源对准单元还可以被配置为动态地修改资源对准,以响应于至少一个事件实现处理器设备的吞吐量。
处理器设备还可以包括配置单元,其在操作上耦合到资源对准单元并且被配置为响应于对资源对准的至少一个修改来动态地应用修改的资源对准。
配置单元还可以被配置为检测资源对准单元已经修改资源对准。
配置单元还可以被配置为从资源对准单元接收指示资源对准单元已经修改资源对准的通信。
为了动态地应用修改的资源对准,配置单元还可以被配置为更新处理器设备的配置,以强制多个虚拟片上系统根据修改的资源对准来利用资源。
至少一个修改可以包括对多个虚拟片上系统中的给定虚拟片上系统与多个资源中的给定资源之间的对准的修改。配置单元还可以被配置为基于给定虚拟片上系统放弃使用给定资源或者基于应用于其的预定时间值的到期来应用至少一个修改。
处理器设备还可以包括在操作上耦合到资源对准单元的监测单元。监测单元可以被配置为监测至少一个事件的至少一个实例,并且将至少一个事件的至少一个实例传送给资源对准单元,以触发资源对准单元动态地修改资源对准。
为了监测至少一个事件的至少一个实例,至少一个监测单元还可以被配置为监测多个资源中的至少一个资源的状态或多个虚拟片上系统的至少一个虚拟系统状态。
至少一个资源的状态可以包括故障状态、利用状态或其组合。
至少一个虚拟系统状态可以包括故障状态、利用状态或其组合。
资源对准可以包括多个资源和多个虚拟片上系统之间的多个映射。为了动态地修改资源对准,资源对准单元还可以被配置为响应于至少一个事件来动态地修改多个映射中的至少一个映射。
至少一个映射可以将多个资源中的给定资源与多个虚拟片上系统中的给定虚拟片上系统对准。动态地修改至少一个映射可以包括将给定资源与多个虚拟片上系统中的至少一个其他虚拟片上系统对准,以阻止给定虚拟片上系统采用给定资源,并且使得至少一个其他虚拟系统能够采用给定资源。
为了动态地修改资源对准,资源对准单元还可以被配置为向资源对准添加至少一个映射,至少一个映射将多个资源中的资源与多个虚拟片上系统中的虚拟片上系统对准。
资源对准可以包括多个资源和多个虚拟片上系统之间的多个映射,并且动态地修改资源对准可以包括从多个映射中移除至少一个映射。
资源对准可以使得多个虚拟片上系统中的多个虚拟片上系统能够共享多个资源中的给定资源。
多个虚拟片上系统中的多个虚拟片上系统每个可以被配置为基于给定资源的被分配给相应虚拟片上系统的相应使用百分比来使用给定资源。
资源对准可以使得多个虚拟片上系统中的给定虚拟片上系统能够排他性地使用给定资源。
至少一个事件可以包括在处理器设备外部发生的外部事件。
至少一个事件可以包括基于一天中的时间的预先安排的事件。
至少一个事件可以包括指示多个资源中的给定资源的失效的故障事件。
至少一个事件可以包括过度订阅事件,过度订阅事件指示多个资源中的至少一个资源被过度订阅或者指示多个虚拟片上系统中的至少一个虚拟片上系统被过度订阅。
至少一个事件可以包括空闲事件,空闲事件指示与多个虚拟片上系统中的给定虚拟片上系统对准的多个资源中的给定资源被该给定虚拟片上系统的使用百分比低于门限值。
可以动态地修改资源对准,以防止否则由至少一个事件实现的吞吐量的损失。
根据另一示例实施例,一种方法可以包括配置处理器设备的多个虚拟片上系统以根据多个虚拟片上系统和多个资源之间的资源对准来利用多个资源中的资源。该方法还可以包括响应于至少一个事件来动态地修改资源对准。
响应于至少一个事件来动态地修改资源对准使得响应于至少一个事件而实现处理器设备的吞吐量。
该方法还可以包括响应于资源对准的至少一个修改来动态地应用修改的资源对准。
该方法还可以包括检测对资源对准的至少一个修改。
该方法还可以包括接收对资源对准的至少一个修改的通信。
该方法还可以包括更新处理器设备的配置以强制多个虚拟片上系统根据修改的资源对准来利用资源。
至少一个修改可以包括对多个虚拟片上系统中的给定虚拟片上系统与多个资源中的给定资源之间的对准的修改。应用至少一个修改可以基于给定虚拟片上系统放弃使用给定资源,或者可以基于应用于其的预定时间值的到期。
该方法还可以包括监测至少一个事件的至少一个实例,以及传送至少一个事件的至少一个实例以触发对资源对准的动态修改。
监测可以包括监测多个资源中的至少一个资源的状态或者多个虚拟片上系统的至少一个虚拟片上系统状态。
资源对准可以包括多个资源和多个虚拟片上系统之间的多个映射,并且动态地修改资源对准可以包括响应于至少一个事件来动态地修改多个映射中的至少一个映射。
至少一个映射可以将多个资源中的给定资源与多个虚拟片上系统中的给定虚拟片上系统对准。动态地修改至少一个映射可以包括将给定资源与多个虚拟片上系统中的至少一个其他虚拟片上系统对准,以阻止给定虚拟片上系统采用给定资源并且使得至少一个其他虚拟片上系统能够使用给定资源。
动态地修改资源对准可以包括将至少一个映射添加到资源对准,至少一个映射可以将多个资源中的资源与多个虚拟片上系统中的虚拟片上系统对准。
资源对准可以包括在多个资源和多个虚拟片上系统之间的多个映射,并且动态地修改资源对准可以包括从多个映射中移除至少一个映射。
该方法还可以包括使得多个虚拟片上系统中的多个虚拟片上系统能够基于资源对准来共享多个资源中的给定资源。
使能多个虚拟片上系统可以包括配置多个虚拟片上系统基于给定资源的被分配给相应虚拟片上系统的相应使用百分比来使用给定资源。
该方法还可以包括使得多个虚拟片上系统中的给定虚拟片上系统能够基于资源对准来排他性地使用给定资源。
动态地修改资源对准可以防止否则由至少一个事件实现的吞吐量的损失。
又一示例实施例可以包括其上存储有指令序列的非暂态计算机可读介质,指令序列在被处理器加载和执行时使得处理器完成本文中所公开的方法。
应当理解,本文中所公开的实施例可以以方法、装置、系统或其上包含程序代码的计算机可读介质的形式来实现。
具体实施方式
虚拟片上系统(VSoC)是允许在不同虚拟系统之间共享底层物理机资源的机器的实现。在VSoC实现下,多个操作系统应用可以在同一物理机上共存,彼此完全隔离和保护。可以使用硬件和软件特征的组合来执行不同虚拟系统之间的物理机资源的分配。
通过在多个虚拟片上系统之间分配资源,本文中所公开的实施例可以提供在芯片上执行多个嵌入式应用和操作系统,同时允许在保护的情况下在多个虚拟片上系统之间共享资源。
处理器设备可以用于各种网络和存储设备,包括路由器、交换机、安全装置、内容感知交换机、三网融合(triple-play)网关、聚合设备和网关、存储阵列、存储网络设备和服务器、或者可以受益于虚拟化的任何其它合适的装置或系统。根据本文中所公开的实施例,处理器设备的VSoC可以基于资源对准来利用分配给VSoC的资源,资源对准定义哪些资源被分配由处理器设备的哪个VSoC使用。资源可以包括处理核、存储器、高速缓存、输入/输出(I/O)端口、I/O设备、硬件加速器、操作系统、软件应用、或者可以由VSoC使用的任何其它合适的资源。
例如,处理器设备可以包括各种资源,诸如分流(offload)处理核以使得处理器设备能够实现高吞吐量的应用特定的协处理器。处理核可以是全功能和高性能整数或浮点算术逻辑单元(ALU)实现,并且直接支持工业标准C/C++或任何其它合适的编程环境。处理核可以具有所有必要的要求来在虚拟片上系统内引导并且运行全功能操作系统。
资源可以在处理器设备内部或外部。资源对准可以包括将处理器设备的资源分组成对应于处理器设备的虚拟片上系统的子集的对准。子集的一些资源可以交叠,例如,诸如处理核等资源可以由多个虚拟片上系统共享,如资源对准所定义的。根据本文中所公开的实施例,基于资源对准,诸如处理核的资源可以由多个不同的虚拟片上系统利用。共享可以基于被分配给相应的虚拟片上系统的百分比。
共享资源可以包括基于被分配给相应的虚拟片上系统的范围来共享资源。例如,虽然多个虚拟片上系统可以与诸如存储器的相同的资源对准,但是每个虚拟片上系统可以被限制到存储器的特定范围,以针对存储器内的每个存储器位置提供隔离。
替选地,根据资源对准,资源可以由特定VSoC排他性地使用。例如,诸如特定类型的I/O端口的某些资源可以不被共享。
资源对准可以被动态地修改,并且在本文中可以被可互换地称为动态资源对准、资源分配或动态资源指派。根据本文中所公开的实施例,资源对准可以定义如何在多个虚拟片上系统之间划分处理器设备的资源。资源对准可以在运行时间之前创建,或者替选地,在运行时期间创建。可以基于至少一个事件在运行时间期间动态地修改资源对准。可以在运行时间期间基于定时器、被监测的度量或外部事件来动态地修改资源对准。例如,至少一个事件可以基于指示一天中的时间的计时器。至少一个事件可以基于度量,诸如运行时使用度量、故障度量、服务质量(QoS)度量、高或低水印、或任何其他合适的度量。
图1是处理器设备102的示例实施例的框图100。处理器设备102包括多个虚拟片上系统104a-n。多个虚拟片上系统104a-n可以被配置为根据多个虚拟片上系统104a-n和多个资源106a-m之间的资源对准108来利用多个资源106a-m中的资源。资源对准108可以定义多个资源106a-m中的哪些资源被分配给多个虚拟片上系统104a-n中的哪些虚拟片上系统。处理器设备102还包括资源对准单元110,资源对准单元110被配置为响应于至少一个事件114来动态地修改112资源对准108。根据一个实施例,处理器设备102可以包括至少一个处理核(未示出)以及其上存储有指令序列的至少一个存储器(未示出),指令序列在被至少一个处理核加载和执行时使得使得处理器设备102实现资源对准单元110。根据另一实施例,处理器设备102可以包括用以实现资源对准单元110的一个或多个电路系统布置,诸如在2010年4月28日提交的美国申请No.12/769,463(现在的美国专利No.8,826,271,其全部教导通过引用并入本文)和图6(其将在下文公开)或其等同物中公开的。
多个资源106a-m可以包括处理核、存储器、高速缓存、输入/输出(I/O)端口、I/O设备、硬件加速器、操作系统、软件应用、或可以由VSoC利用的任何其它合适的资源。这样的资源可以在处理器设备102内部或外部。在多个虚拟片上系统104a-n和多个资源106a-m之间的资源对准108可以分割多个资源106a-m,从而使得一些资源在多个虚拟片上系统104a-n中的虚拟片上系统之间被共享并且一些资源不被共享。资源对准108可以定义多个资源106a-m中的哪些资源被分配由多个虚拟片上系统104a-n中的哪些虚拟片上系统使用。
资源对准单元110还可以被配置为动态地修改资源对准108,以响应于至少一个事件114来实现处理器设备102的吞吐量。例如,可以修改动态资源对准108以根据需要向特定虚拟片上系统添加资源或移除资源,以便维持吞吐量需求。
至少一个事件可以包括在处理器设备外部发生的外部事件。例如,在联网环境中,外部事件可以是边界网关协议(BGP)路由抖动(flap)。在联网环境中,BGP路由抖动可以指示较少的分组需要被路由。因此,可以修改资源对准以从支持分组应用的虚拟片上系统中移除资源。外部事件可以是病毒攻击的通知。病毒攻击的通知可以是需要更严格地检查分组的指示,从而增加了处理器设备102的计算工作负荷。动态资源对准108可以被修改为例如向包括用于分组检查的应用的给定VSoC分配更多的资源,诸如处理核或其他合适的资源。BGP路由抖动和病毒攻击的通知是外部事件的示例;然而,外部事件可以是处理器设备外部的任何合适的事件。
至少一个事件可以包括基于一天中的时间的预先安排的事件。一天中的时间可以是可以被理解为处理器设备被大量利用(例如,在繁重的业务负载下)的时间。根据一天中的时间来重新对准虚拟片上系统的资源可以主动地实现将额外资源分配给在一天中的时间上大量被利用的这些虚拟片上系统,重新对准在本文中也可互换地称为重新分配。因此,可以主动地修改动态重新对准,以防止业务丢弃并且维持处理器设备的吞吐量要求。
至少一个事件可以包括指示多个资源中的给定资源的失效的故障事件。可以修改失效资源与VSoC之间的对准,使得VSoC不再访问失效资源,而是与另一资源对准。
至少一个事件可以包括指示多个资源中的至少一个资源被过度订阅(oversubscription)或指示多个虚拟片上系统中的至少一个虚拟片上系统被过度订阅的过度订阅事件。可以基于度量来确定这种过度订阅。例如,反映业务丢弃的QoS度量可以用于确定过度订阅事件。响应于过度订阅事件,可以通过修改动态资源对准来减少与至少一个资源对准的虚拟片上系统的数目。此外,可以通过修改动态资源对准来增加与至少一个虚拟片上系统对准的资源的数目。
至少一个事件可以包括空闲(idling)事件,空闲事件指示与多个虚拟片上系统中的给定虚拟片上系统对准的多个资源中的给定资源被给定虚拟片上系统的使用百分比低于门限值。因此,可以修改动态资源对准以增加共享给定资源的虚拟片上系统的数目。
可以动态地修改资源对准,以防止否则由至少一个事件招致(effectuate)的吞吐量的损失。例如,基于指示在一天的特定时间的业务量损失的历史度量,可以在一天的特定时间修改动态资源对准以防止在一天的特定时间发生未来的业务损失。这样,至少一个事件可以包括基于一天中的时间的预先安排的事件。
图2是处理器设备202的另一示例实施例的框图200。处理器设备202包括多个虚拟片上系统204a-n。多个虚拟片上系统204a-n可以被配置为根据多个虚拟片上系统204a-n和多个资源206a-m之间的资源对准208来利用多个资源206a-m中的资源。处理器设备202还包括资源对准单元210,资源对准单元210可以被配置为响应于至少一个事件214来动态地修改资源对准208。
处理器设备202还包括配置单元216,配置单元216在操作上耦合到资源对准单元210。配置单元216可以被配置为响应于对资源对准208的至少一个修改220来动态地应用修改之后的资源对准218。配置单元216可以被配置为通过监测资源对准208的内容来检测资源对准单元210已经修改资源对准208。
例如,资源对准208可以是数据结构,并且配置单元216可以被配置为监测数据结构的内容用于改变。根据一些实施例,可以基于对资源对准208的至少一个修改220来断言中断(未示出)。检测对资源对准208的至少一个修改220可以是断言的中断的函数;然而,可以以任何合适的方式执行检测对资源对准208的至少一个修改220。
例如,根据一些实施例,配置单元216可以被配置为从资源对准单元210接收通信222,通信222指示资源对准单元210修改资源对准208。通信222可以是经由处理器设备202的邮箱、释放的旗语、或任何其它合适的通信机制所发送的通信消息。
为了动态地应用修改之后的资源对准218,配置单元216可以发送配置更新221以更新处理器设备202的配置224,以强制多个虚拟片上系统204a-n根据修改之后的资源对准218来利用多个资源206a-m。例如,配置224可以包括强制对多个资源206a-m的VSoC访问许可的硬件寄存器配置设置(未示出)。配置224可以包括强制对多个资源206a-m的VSoC访问许可的任何合适的配置设置。配置224可以包括用于处理器设备202的供应信息(未示出),其中供应信息是资源对准208的函数。
例如,供应信息可以包括用于处理器设备202的二级高速缓存控制器(未示出)的配置,其中二级高速缓存控制器控制对被包括在多个资源206a-m中的存储器的存储器访问。例如,对处理器设备的存储器的所有访问可以被路由以通过由二级高速缓存控制器所控制的二级高速缓存(未示出),因为二级高速缓存可以用作处理器设备208的存储器访问的中央位置。
多个虚拟片上系统204a-n可以用作用于执行操作系统和嵌入式应用的虚拟化执行环境。配置单元216可以更新配置224以根据资源对准208来强制每个VSoC访问其相应的资源。考虑到由多个虚拟片上系统204a-n提供的保护,在处理器设备202的每个VSoC内运行的应用和操作系统可能不知道在处理器设备202的其他虚拟片上系统内运行的其他应用和操作系统。
配置224可以实现或防止VSoC访问资源对准208所规定的资源或其分区。例如,诸如动态随机存取存储器(DRAM)的资源的分区可以被配置为使得一个分区可以由VSoC访问,而不被其他虚拟片上系统访问。配置224可以使得一组虚拟片上系统能够共享给定资源或其一部分,并且防止其他虚拟片上系统访问该给定共享资源。
配置224可以对共享资源强加VSoC优先级,从而使得一个VSoC可以具有用于在处理器设备的其他虚拟片上系统上访问共享资源的严格的或加权的优先级。这样的优先级信息(未示出)可以被包括作为配置224的一部分或者被存储作为资源对准208的一部分。
至少一个修改220可以包括对多个虚拟片上系统204a-n中的给定虚拟片上系统与多个资源206a-m中的给定资源之间的对准的修改。配置单元216还可以被配置为基于给定虚拟片上系统放弃给定资源的使用或者基于应用于其的预定时间值的到期来应用至少一个修改220。
例如,虽然至少一个修改220可以将给定资源与不同于给定虚拟片上系统的虚拟片上系统对准(即分配),但是给定资源可能仍然在由给定虚拟片上系统使用。配置单元216可以基于可以在处理器设备202上本地访问的资源使用信息219来确定给定资源仍然由给定虚拟片上系统使用。该资源使用信息219可以由多个虚拟片上系统204a-n或可以以任何其它合适的方式更新。
配置单元216可以延迟应用至少一个修改220,直到给定虚拟片上系统已经放弃其对给定资源的使用。替选地,配置单元216可以采用预定时间值来等待给定虚拟片上系统放弃其对给定资源的使用。配置单元216可以基于预定时间值的期满来应用至少一个修改220。
处理器设备202还可以包括在操作上耦合到资源对准单元210的监测单元226。监测单元226可以被配置为监测至少一个事件214的至少一个实例,并且向资源对准单元210传送至少一个事件214的至少一个实例以触发资源对准单元210动态地修改资源对准208。
为了监测至少一个事件214的至少一个实例,至少一个监测单元226还可以被配置为监测多个资源206a-m中的至少一个资源的状态或多个虚拟片上系统204a-n的至少一个虚拟系统状态。多个资源206a-m中的至少一个资源的状态可以包括故障状态、利用状态或其组合。多个虚拟片上系统204a-n的至少一个状态虚拟系统状态可以包括故障状态、利用状态或其组合。
为了监测至少一个事件214的至少一个实例,监测单元226可以监测处理器设备202的监测信息227。监测信息227可以包括各种信息,诸如一天中的时间、过度订阅度量、空闲度量、资源水印、网络信息、资源故障信息等。监测信息227可以包括可以被监测以确定至少一个事件214的任何合适的信息,针对该至少一个事件214,对其作出响应的资源对准208的动态修改是有利的。
监测单元226可以包括事件调度器229。事件调度器229可以基于重新对准调度(未示出)来调度至少一个事件214。重新对准调度可以是静态调度或本身周期性地调整的动态调度。重新对准调度可以包括一天中的一个或多个时间条目。例如,重新对准调度器可以包括一天中的一个或多个时间条目,对于该一天中的一个或多个时间条目,重新对准对于处理器设备的性能是有利的。可以基于整个处理器设备的使用度量、每个VSoC使用度量、资源度量或任何其它合适的度量来动态地调整重新对准调度。重新对准可以基于外部事件,诸如BGP路由抖动、或任何其他合适的外部事件。
根据一个实施例,资源可以是存储器。存储器可以包括一个或多个组块(chunk)。一个或多个组块中的每个组块可以是存储器的包括来自存储器的相应固定数目的位的一部分。固定数目的位可以是连续的。替选地,一个或多个组块可以包括来自存储器的散布在存储器中的固定数目的位。基于至少一个事件,一个或多个组块中的每个组块可以被释放或分配给给定VSoC。至少一个事件可以是重新对准调度的函数,因此,存储器的一个或多个组块可以在调度的基础上动态地重新对准。例如,由于至少一个事件可以是重新对准调度的函数,所以可以在给定VSoC已知例如处于轻负载的时间如调度地释放存储器的一个或多个组块,反之,可以在给定VSoC已知处于重负载的时间将存储器的一个或多个组块如调度地分配给给定VSoC。
根据本文中所公开的实施例,监测单元226可以被配置为监测各种度量以确定上文所公开的故障、过度订阅或空闲事件。例如,监测单元226可以被配置为监测诸如奇偶校验或纠错码(ECC)错误的等度量以确定故障事件。监测单元226可以向奇偶校验或纠错码(ECC)错误应用门限值以确定故障事件。可以以任何合适的方式来确定故障事件。例如,资源可以具有可以用于确定故障事件的硬件故障或退化类型指示符。诸如QoS统计等指标可以由监测单元226监测以确定过度订阅或空闲事件。可以执行动态地修改资源对准以使得给定虚拟片上系统能够满足特定的QoS要求,诸如银等级或其他合适的QoS等级。
根据一个实施例,处理器设备202可以包括至少一个处理核(未示出)和其上存储有指令序列的至少一个存储器(未示出),指令序列在由至少一个处理核(未示出)加载和执行时使得处理器设备202实现资源对准单元210、配置单元216和监测单元226。根据另一实施例,处理器设备202可以包括用于以实现资源对准单元210、配置单元216和监测单元226的一个或多个电路系统布置,诸如在2010年4月28日提交的美国No.12/769,463,现在的美国专利No.8,826,271,其全部教导通过引用并入本文,以及图6或其等同物中公开的。
图3是资源对准308的示例实施例的框图300。资源对准308可以包括多个资源306a-m和多个虚拟片上系统304a-n之间的多个映射340a-k。为了动态地修改资源对准308,资源对准单元还可以被配置为响应于至少一个事件来动态地修改多个映射340a-k中的至少一个映射,资源对准单元诸如如上文公开的图1的资源对准单元110或图2的资源对准单元210,至少一个事件诸如上文公开的图1的至少一个事件114或图2的至少一个事件214。
至少一个映射可以将多个资源306a-m中的给定资源与多个虚拟片上系统304a-n中的给定虚拟片上系统对准。例如,映射1,1 304a将VSoC1 304a与资源1 306a映射,映射1,2304b将VSoC1 304a与资源2 306b映射,映射1,2 304c将VSoC2 304b与资源2 306b映射,并且映射i,j 304k将VSoCi 304i与资源j 306j映射。
动态地修改至少一个映射可以包括将给定资源与多个虚拟片上系统304a-n中的至少一个其他虚拟片上系统对准,以阻止给定虚拟片上系统使用给定资源并且使得至少一个其他虚拟系统能够使用给定资源。例如,修改至少一个映射可以包括移除映射i,j 304k并且添加映射n,j 304l,阻止VSoCi 304i使用资源j 306j,并且使得VSoCn 304n能够采用资源j306j。
为了动态地修改资源对准308,诸如以上公开的图1的资源对准单元110或图2的资源对准210单元的资源对准单元还可以被配置为向资源对准308添加至少一个映射,至少一个映射将多个资源306a-m中的资源与多个虚拟片上系统304a-n中的虚拟片上系统对准。例如,添加映射n,j 304l可以使得VSoCn 304n能够采用资源j 306j。
资源对准308可以包括多个资源306a-m和多个虚拟片上系统304a-n之间的多个映射,诸如多个映射340a-k,并且动态地修改资源对准308可以包括从多个映射340a-k中移除至少一个映射,诸如映射i,j 304k。
资源对准308可以使得多个虚拟片上系统304a-n中的多个虚拟片上系统能够共享多个资源306a-m的给定资源。例如,资源对准308的映射1,2 340b和映射2,2 340c使得资源2306b能够被VSoC1 304a和VSoC2 304b共享。
多个虚拟片上系统304a-n中的多个虚拟片上系统均可以被配置为基于给定资源的被分配给相应虚拟系统的相应使用百分比来使用给定资源。使用百分比可以是给定资源的类型、在相应的虚拟片上系统上运行的应用的类型或其组合的函数。
使用百分比可以由相应的虚拟片上系统控制。使用百分比可以由虚拟机监测器(VMM)(未示出)来监测,其在本文中也可互换地称为管理程序,其可以迫使相应的虚拟片上系统基于看门狗来放弃使用给定资源。
资源对准308可以使得多个虚拟片上系统中的给定虚拟片上系统能够排他性地使用给定资源。例如,资源1 306a可以是非共享资源,诸如特定类型的I/O端口或任何其他合适的非共享资源,并且映射1,1 340a可以使得VSoC1 304n能够排他性地使用资源1 306a。
图4是资源对准408的另一示例实施例的框图400。资源对准408可以是资源对准表,其包括多个条目460a-460n,每个条目将唯一的虚拟片上系统标识符462与资源标识符408对准。例如,多个条目460a-460n可以将唯一的片上系统标识符466a-466n分别与资源标识符468a-468n相关联。
唯一的虚拟片上系统标识符466a-466n每个可以唯一地标识多个虚拟片上系统中的虚拟片上系统,多个虚拟片上系统诸如如上所述的图1、图2和图3的多个虚拟片上系统104a-n、204a-n和304a-n。资源标识符468a-468n可以指示多个资源中的哪个可以被通过唯一的虚拟片上系统标识符466a-466n标识的相应的一个或多个虚拟片上系统使用,多个资源诸如图1、图2和图3的多个资源106a-106m、206a-206m和306a-306m。
例如,资源对准408的条目460b可以将虚拟系统标识符466b与资源标识符468b相关联。根据一个实施例,资源标识符468a-468n可以包括位图,位图中的每个位提供相应资源的对准指示符;然而,资源标识符可以以使虚拟片上系统与资源对准的任何合适的方式来实现。资源标识符的位图的每个位在本文中可以可互换地被称为资源对准指示符。
与具有第一状态的虚拟片上系统标识符(诸如虚拟片上系统标识符460a-460n)相关联的资源标识符(诸如资源标识符468a-468n)的位图的每个位可以将与位相关联的相应资源映射到与虚拟片上系统标识符相关联的VSoC,即,相应资源与VSoC对准。具有第二状态的位图的每个位可以反映在相应资源和与虚拟片上系统标识符相关联的VSoC之间不存在映射,即,相应资源和VSoC不对准。例如,位图468a的位470可以用于将与虚拟片上系统标识符466a相关联的虚拟片上系统与和位470的位位置相关联的资源对准。具有第一状态“1”的位470可以将虚拟片上系统与资源对准,使得虚拟片上系统能够使用资源,而具有第二状态“0”的位470可以阻止虚拟片上系统使用资源。通过修改位图中的相应位,可以将资源从一个虚拟片上系统“移动”到另一虚拟片上系统。
例如,资源标识符468b和468c的位472和位474可以各自与特定资源相关联。特定资源可以与位472和474的位位置相关联。通过将其值从“1”改变为“0”来修改位472可以改变与虚拟片上系统标识符460b相关联的虚拟片上系统的资源对准,从而使得其不再能够访问特定资源。通过将其值从“0”改变为“1”来修改位474可改变与虚拟片上系统标识符460c相关联的虚拟片上系统的资源对准,从而使得其能够访问特定资源。因此,特定资源实际上(即,不是物理上)已经从一个虚拟片上系统“移动”到另一虚拟片上系统。
基于与特定资源相关联的资源类型,本文中所公开的实施例可以提供对与特定资源相对应的资源对准的资源对准指示符的原子更新。例如,如上文所公开的,修改相应资源标识符468b和468c的位472和474可以包括原子地执行修改,使得对位472和474的值的修改每个同时对于与包括位472和474的资源标识符468b和468c相关联的相应的VSoC是可见的。原子更新可以防止每个需要对特定资源进行独占访问的不同VSoC之间的潜在冲突。
根据本文中所公开的实施例,对应于与非共享资源类型(诸如存储器位置或I/O端口、或可以以排他性方式使用的任何其它合适类型的资源)相关联的相同资源的资源对准指示符可以被原子地更新,而对应于具有共享资源类型(诸如处理核或任何其他合适的共享资源类型)的相同资源的资源对准指示符可以在个体基础上修改。应当理解,共享和非共享资源类型的示例不限制要共享或非共享的资源的类型的具体示例。例如,在一些实例中,I/O端口可以是共享资源,而处理核可以是非共享资源。
根据本文中所公开的实施例,可以基于从接收到的分组(未示出)提取字段来确定虚拟片上系统标识符,诸如虚拟片上系统标识符462。提取的字段可以用于形成可以用于索引到将密钥映射到虚拟片上系统标识符的查找表(LUT)(未示出)中的密钥,诸如5元组密钥。因此,可以基于在用于密钥的LUT中找到的虚拟片上系统标识符462来将接收到的分组调度到给定VSoC。使用在用于密钥的LUT中找到的虚拟片上系统标识符462,可以为给定VSoC标识相应的资源标识符464。相应的资源标识符464指示给定VSoC可以采用哪些资源,如上文所公开的。
虽然给定VSoC正在使用特定资源来处理所接收的分组,但是至少一个事件可以使得资源对准408被修改,从而使得特定资源不再与给定VSoC对准。因此,配置单元216可以检测修改之后的资源对准218,并且延迟应用配置更新221,否则其将阻止给定VSoC使用特定资源,直到特定资源不再由给定VSoC使用或者预定的时间值已经过期。
图5是方法(500)的示例实施例的流程图。该方法可以开始(502)并且配置处理器设备的多个虚拟片上系统以根据多个虚拟片上系统和多个资源之间的资源对准来利用多个资源中的资源(504)。在示例实施例中,该方法可以响应于至少一个事件来动态地修改资源对准(508),并且该方法此后结束(508)。
根据本文中所公开的实施例,安全装置(未示出)可以包括处理器设备102或202。处理器设备102或202可以是网络服务处理器。安全设备可以是独立系统,其可以将在一个网络接口处接收到的分组交换到另一网络接口,并且可以在转发分组之前对接收到的分组执行多个安全功能。例如,安全设备可以用于在将经处理的分组转发到局域网(LAN)或任何其他合适的网络之前对可能在广域网(WAN)或任何其他合适的网络上接收的分组执行安全处理。
处理器设备102或202可以被配置为处理被封装在接收到的分组中的开放系统互连(OSI)网络L2-L7层协议。如本领域技术人员所公知的,OSI参考模型定义了七个网络协议层(L1-L7)。物理层(L1)表示将处理器设备连接到传输介质的实际的电和物理接口。数据链路层(L2)执行数据成帧。网络层(L3)将数据格式化为分组。传输层(L4)处理端到端传输。会话层(L5)管理设备之间的通信,例如,无论通信是半双工还是全双工。表示层(L6)管理数据格式化和呈现,例如语法、控制代码、特殊图形和字符集。应用层(L7)允许用户之间的通信,例如文件传输和电子邮件。
处理器设备102或202可以为例如L4-L7的上层网络协议调度和排列工作(例如,分组处理操作),并且使得能够处理接收到的分组中的上层网络协议以便以线速度转发分组。通过处理协议以便以线速度转发分组,处理器设备102或202不会减慢网络数据传输速率。处理器设备102或202可以从可以是物理硬件接口的网络接口(未示出)接收分组,并且可以对接收到的分组执行L2-L7网络协议处理。处理器设备102或202随后可以通过网络接口将处理后的分组转发到网络中的另一跳、最终目的地或通过另一总线由主处理器进一步处理。诸如多个虚拟片上系统104a-n或多个虚拟片上系统204a-n的多个虚拟片上系统可以包括用于处理网络安全协议的应用,诸如防火墙、应用防火墙、包括IP安全(IPSec)和/或安全套接字层(SSL)的虚拟专用网络(VPN)、入侵检测系统(IDS)、防病毒(AV)或任何其它合适的网络协议。
多个虚拟片上系统104a-n或204a-n可以使用与多个虚拟片上系统104a-n或204a-n对准的多个处理核来传递高应用性能。每个处理核可以专用于执行数据平面、控制平面操作或其组合。数据平面操作可以包括用于转发分组的分组操作。控制平面操作可以包括处理复杂更高层协议的部分,诸如因特网协议安全(IPSec)、传输控制协议(TCP)、安全套接字层(SSL)或任何其他合适的更高级协议。数据平面操作可以包括处理这些复杂的更高层协议的其他部分。
根据本文中所公开的实施例,诸如多个处理核、存储器、输入/输出端口的资源可以在运行时间期间被动态地分配给一个或多个虚拟片上系统。如上文所公开的,可以基于至少一个事件在多个虚拟片上系统之间动态地重新对准资源分配。
多个处理核可以被分配给支持数据平面或控制平面应用的虚拟片上系统。资源可以在被分配用于数据平面的那些虚拟片上系统之间重新对准。例如,第一资源集合可以被指定为可用于数据平面使用,并且从一个数据平面VSoC动态分配到另一数据平面VSoC,诸如转发、IDS或AV类型的VSoC。类似地,第二资源集合可以被指定为可用于控制平面使用,并且第二资源集合可以被动态地从一个控制平面VSoC分配到另一控制平面VSoC。根据本文中所公开的实施例,资源可以与VSoC动态对准。
图6是其中可以实现本发明的各种实施例的计算机600的内部结构的示例的框图。计算机600包含系统总线602,其中总线是用于计算机或处理系统的组件之间的数据传输的硬件线集合。系统总线602本质上是连接使得能够在元件之间传递信息的计算机系统的不同元件(例如,处理器、磁盘存储器、存储器、输入/输出端口、网络端口等)的共享导管。耦合到系统总线602的是用于将各种输入和输出设备(例如,键盘、鼠标、显示器、打印机、扬声器等)连接到计算机600的I/O设备接口604。网络接口606允许计算机600连接到附接到网络的各种其他设备。存储器608为可以用于实现本发明的实施例的计算机软件指令610和数据612提供易失性存储。盘存储装置614为可以用于实现本发明的实施例的计算机软件指令610和数据612提供非易失性存储。中央处理器单元618也耦合到系统总线602并且提供计算机指令的执行。
本文中所公开的其他示例实施例可以使用计算机程序产品来配置;例如,控件可以在用于实现示例实施例的软件中编程。另外的示例实施例可以包括包含可以由处理器执行并且当被加载和执行时使得处理器完成本文中所描述的方法的指令的非暂态计算机可读介质。应当理解,诸如资源对准单元110或210、配置单元216和监测单元226或本文中所公开的框和流程图的任何其它元件等框和流程图的元件可以用软件、硬件(诸如通过在2010年4月28日提交的美国申请No.12/769,463(现在的美国专利No.8,826,271中公开的一个或多个电路系统布置,其全部教导通过引用并入本文)和图6或其等同物中公开的)、固件、其组合、或将来确定的其它类似实现来实现。另外,本文中所描述的框和流程图的元件可以以任何方式在软件、硬件或固件中组合或划分。如果在软件中实现,则软件可以用能够支持本文中所公开的示例实施例的任何语言编写。软件可以存储在任何形式的计算机可读介质中,诸如随机存取存储器(RAM)、只读存储器(ROM)、紧致盘只读存储器(CD-ROM)等。在操作中,通用或专用处理器或处理核以本领域良好理解的方式加载和执行软件。还应当理解,框图和流程图可以包括更多或更少的元件,不同地布置或定向,或者不同地表示。应当理解,实现可以实现示出本文中所公开的实施例的执行的框、流程和/或网络图以及框和流程图的数目。
虽然已经参照本发明的示例性实施例具体示出和描述了本发明,但是本领域技术人员将理解,在不脱离所附权利要求限定的本发明的范围的情况下,可以在形式和细节上进行各种改变。