多模式片上系统的制作方法

文档序号:11333753阅读:124来源:国知局
多模式片上系统的制造方法与工艺

交叉引用

本申请是国际申请,并且要求于2105年2月13日提交的标题为“multi-modesystemonachip”的美国申请序列号14/622,661的优先权,所述申请的公开内容全部以引用方式并入本文。



背景技术:

许多组织和公司通过多个通信网络提供计算服务。例如,计算服务可包括诸如web存储的web服务或虚拟服务器,其可通过互联网提供给不同的客户端。

一般来说,系统可包括一个或多个子系统来执行若干不同的功能。然而,一旦系统被制成,每个子系统即可被限制为执行特定功能。在一些情况下,可以更多的硅为代价来提供额外的功能。因此,在大多数情况下,客户端可被限制为使用特定功能,所述特定功能由每个子系统基于该子系统的预定配置来提供。

附图简述

将参考附图描述根据本公开的各种实施方案,在附图中:

图1示出了根据所公开技术的一些实施方案的系统的框图。

图2示出了根据本技术的某些实施方案的片上系统(soc)的详细框图。

图3a示出了根据所公开技术的一个实施方案的第一模式下的soc配置。

图3b示出了根据所公开技术的一个实施方案的第二模式下的soc配置。

图3c示出了根据所公开技术的一个实施方案的第三模式下的soc配置。

图4a示出了根据所公开技术的一个实施方案的第一模式下的soc配置,其中服务器计算子系统被重新利用为网络计算子系统。

图4b示出了根据所公开技术的一个实施方案的第二模式下的soc配置,其中网络计算子系统被重新利用为服务器计算子系统。

图5示出了根据所公开技术的一个实施方案的具有灵活的资源池的soc的框图。

图6a示出了根据所公开技术的一些实施方案的soc,其被配置来在包括灵活的资源的第一模式下操作。

图6b示出了根据所公开技术的一些实施方案的soc,其被配置来在第二模式下操作。

图7a示出了根据本技术的一个实施方案的第一soc与第二soc通信,所述第一soc被配置来在第二模式下操作,所述第二soc被配置来在第一模式下操作。

图7b示出了根据本技术的一个实施方案的第一soc与第二soc通信,所述第一soc被配置来在第二模式下操作,所述第二soc被配置来在第二模式下操作。

图7c示出了根据本技术的一个实施方案的第一soc与第二soc通信,所述第一soc被配置来在第二模式下操作,所述第二soc被配置来在第三模式下操作。

图8示出了根据本技术的一个实施方案的包括多个soc的系统。

图9示出了根据本技术的某些实施方案的管理计算子系统的框图。

图10示出了根据本技术的某些实施方案的网络i/o子系统的框图。

图11示出了根据本技术的某些实施方案的服务器i/o子系统的框图。

图12示出了根据本技术的某些实施方案的共享资源子系统的框图。

图13示出了根据至少一个示例性实施方案的本文描述的特征和系统的示例性架构,其包括通过一个或多个网络连接的一个或多个服务提供商计算机和/或用户设备;以及

图14示出了可实现各种实施方案的环境。

详细描述

在以下描述中,将描述各种实施方案。出于解释的目的,将阐述具体的配置和细节,以便提供对实施方案的透彻理解。然而,对本领域的技术人员也将明显的是,在没有具体细节的情况下也可实践实施方案。此外,为了不使所描述的实施方案晦涩,可省略或简化众所周知的特征。

一般来说,计算系统可包括一个或多个计算子系统来执行若干不同的功能。在大多数情况下,一旦计算系统被制成,每个计算子系统即可被限制为执行特定功能。在一些情况下,可以更多的硅为代价来提供额外的功能。例如,计算系统可能需要额外的芯片来提供额外的功能。因此,在大多数情况下,客户端可被限制为使用特定功能,所述特定功能由每个子系统基于该子系统的预定配置来提供。

本技术的实施方案可提供用于操作片上系统(soc)的各种配置和模式。例如,soc可通信地耦合到主机系统(例如,x86服务器),以提供诸如网络流量监测、网络流量整形、计算等的各种服务。根据某些实施方案,soc可包括用于至少管理主机系统的网络流量的网络计算子系统和用于提供计算服务的服务器计算子系统。在所公开技术的一些实施方案中,soc可在第一模式下操作以仅提供联网服务(例如,当服务器计算子系统被去配置或停用时),在第二模式下操作以仅提供计算服务(例如,当网络计算子系统被去配置或停用时)或者在第三模式下操作以同时提供联网和计算两种服务(例如,当网络计算子系统和服务器计算子系统都被激活或起作用时)。

计算机网络通常可包括多个服务器,所述多个服务器可托管数据并向多个客户端或组织提供服务。例如,服务器可向潜在更大数量的的客户端计算机提供服务,诸如云计算、分析、web服务、存储、数据库、应用、部署服务等。客户端或组织可使用这些服务或数据来支持辅助各种各样的工作负载,诸如存储、数据处理和仓储、web和移动应用、存档和许多其他任务。通常,客户端请求来自服务器的服务或数据,并且服务器通过执行服务于请求的某些任务来进行响应和/或通过网络提供数据。网络流量可根据多个因素(诸如在特定时间请求服务的客户端的数量、服务器的容量等)而发生变化。

在一些情况下,网络系统可监测网络流量以调节流量并使带宽拥塞减少到最低限度。例如,网络系统可通信地耦合到主机系统(例如,x86服务器),所述主机系统向不同的客户端提供web服务。网络系统可包括一个或多个处理器核、高速缓存、网络加速逻辑、存储器控制器和i/o子系统等。在一些实施方案中,网络系统还可执行与由服务器(例如,主机系统)提供的web服务相关联的其他功能,诸如流量整形、网络存储处理等。在一些情况下,网络系统的功能可被实现为可通信地耦合到主机系统的片上系统(soc)上的计算子系统。例如,可使用插入卡将soc耦合到主机系统(例如,一个或多个服务器),或者可将soc焊接到主机系统的主板。

在一些实施方案中,除了网络计算子系统之外,soc还可包括服务器计算子系统和管理计算子系统。例如,服务器计算子系统可被配置来提供计算服务,并且管理计算子系统可被配置来管理网络计算子系统和服务器计算子系统的资源。在一些情况下,网络计算子系统和服务器计算子系统可包括专用资源。例如,资源可包括处理器核、1级(l1)高速缓存、2级(l2)高速缓存、3级(l3)或末级高速缓存、存储器控制器、存储器通道、i/o控制器、各种i/o接口等。

在大多数情况下,一旦soc被制成,那么soc可被限制为基于具体配置仅提供某些类型的服务。例如,可以第一配置来制造soc以提供一组功能,或者以第二配置来制造soc以提供另一组功能。此外,一旦以某种配置制成soc,就可固定每个计算子系统的处理和存储器资源的数量和类型。因此,每个soc可被限制为基于预定的配置提供某一类型和级别的服务。

所公开技术的实施方案可提供用于操作片上系统(soc)的各种配置和模式。soc可通信地耦合到主机系统(例如,x86服务器),以提供诸如流量监测、流量整形、计算等的各种服务。在技术的一些实施方案中,soc可包括多个子系统,诸如提供计算服务的服务器计算子系统、至少管理网络流量的网络计算子系统以及管理网络计算子系统和服务器计算子系统的管理计算子系统。

在所公开技术的实施方案中,soc可被配置来在多种模式中的一种模式下操作。例如,在不同的实施方案中,soc可在第一模式下操作以仅提供联网服务,在第二模式下操作以仅提供计算服务或者在第三模式下操作以同时提供联网和计算服务。此外,每个模式可使用不同的技术来实现。例如,在一个实施方案中,每个计算子系统可具有固定的资源分配。在另一个实施方案中,与去配置或停用的计算子系统相关联的资源可被重新分配给激活的计算子系统。在另一个实施方案中,soc可包括可重新配置的资源,所述可重新配置的资源可被转向到激活的计算子系统。在一些实施方案中,管理计算子系统可基于硬件配置(例如,一个或多个引脚、跳线或熔丝)、软件配置(例如,软件寄存器的数据字段)或策略来确定soc在加电时的配置。例如,策略可由外部实体或操作者通过网络连接来提供。

在一个实施方案中,管理计算子系统可将soc配置成在第一模式下操作,例如,soc可仅提供与网络相关的服务。例如,服务器计算子系统可被断电或去配置。在一个实施方案中,soc可被配置来在主机系统中的外围部件高速互连(pcie)设备上操作为网络计算子系统。在一些实施方案中,管理计算子系统还可以第一模式配置soc来禁用服务器计算子系统并将与服务器计算子系统相关联的处理和存储器资源重新配置,以作为网络计算子系统的资源来操作。在另一个实施方案中,管理计算子系统还可以第一模式配置soc以将服务器计算子系统重新利用为第二网络计算子系统。例如,网络计算子系统可用作第一网络计算子系统,并且服务器计算子系统可用作第二网络计算子系统。在一些实施方案中,在第一模式下,可重新配置的资源的至少一部分可被转向到网络计算子系统。因此,所公开技术的一些实施方案可使soc能够在第一模式下(例如,使用与服务器计算子系统相关联的资源或可重新配置的资源)提供高性能的联网服务。

在一个实施方案中,管理计算子系统可将soc配置成在第二模式下操作,例如,soc可仅提供与计算相关的服务。例如,网络计算子系统可被断电或去配置。在一个实施方案中,soc可被配置来在主机系统中的外围部件高速互连(pcie)设备上操作为服务器计算子系统。在一些实施方案中,管理计算子系统108还可以第二模式配置soc来禁用网络计算子系统并将与网络计算子系统相关联的处理和存储器资源重新配置,以作为服务器计算子系统的资源来操作。在另一个实施方案中,管理计算子系统还可以第二模式配置soc以将网络计算子系统重新利用为第二服务器计算子系统。例如,服务器计算子系统可用作第一服务器计算子系统,并且网络计算子系统可用作第二服务器计算子系统。在一些实施方案中,在第二模式下,可重新配置的资源的至少一部分可被转向到服务器计算子系统。因此,所公开技术的一些实施方案可使soc能够在第二模式下(例如,使用与网络计算子系统相关联的资源或可重新配置的资源)提供高性能的计算服务。

在一个实施方案中,管理计算子系统可将soc配置成在第三模式下操作,例如,网络计算子系统和服务器计算子系统都可被启用,并且soc可同时提供与网络相关的服务和与计算相关的服务。在第三模式下,网络计算子系统和服务器计算子系统中的每一个可利用其专用处理和存储器资源。在一些实施方案中,在第三模式下,服务器计算子系统可被配置为主机系统,并且网络计算子系统可被配置来管理被配置为主机系统的服务器计算子系统的网络流量。

在所公开技术的一些实施方案中,系统可包括多个soc,其中多个soc中的第一soc可被配置来在多种模式中的一种模式下操作,并且多个soc中的第二soc可被配置来在多种模式中的一种模式下操作。在一个实施方案中,系统中的多个soc可使用诸如外围部件高速互连(pcie)接口的标准接口来彼此通信。例如,在一个实施方案中,被配置来在第二模式下操作以仅提供计算服务的第一soc可作为主机系统中的通用处理器来操作,并且可与配置成处于多种模式中的一种模式下的一个或多个其他soc通信。在另一个实施方案中,被配置来在第一模式下操作以仅提供网络服务的第一soc可作为一个或多个服务器(例如,被配置成处于第二模式下的soc或第三方soc)的网络处理器来操作。

典型的soc可包括集成到单个芯片中的系统的功能。例如,soc可包括多个处理器核、易失性和非易失性存储器模块、存储器控制器、一个或多个内部总线、标准接口、外围设备、电压调节器、功率管理电路、诸如振荡器和锁相环的定时资源等。在单个芯片上实现多个芯片的功能可降低制造和组装成本。此外,soc通常具有较小的覆盖区和空间要求。因此,与实现相同功能的多芯片系统相比,soc实现方式通常消耗更少的功率并且具有更高性价比。

尽管所公开技术的实施方案被描述和示出为将soc配置成在三种模式中的一种模式下操作,但是所公开技术的方面不限于将soc配置成在三种模式中的一种模式下操作。例如,在一些实现方式中,多个计算子系统可被包括在soc中,并且soc可被配置成作为计算子系统中的一个来操作,或者作为多于两个的计算子系统同时操作,而不偏离所公开技术的范围。

图1示出了根据本文所述的技术的某些实施方案的示例性系统100。在某些实施方案中,片上系统(soc)102可被配置来在多种模式中的一种模式下操作。

soc102可包括网络计算子系统104、服务器计算子系统106和管理计算子系统108。soc102可被配置来与主机系统110通信。可使用接口112(诸如外围部件高速互连(pcie)接口或任何其他合适的接口)来执行soc102与主机系统110之间的通信。

在一些情况下,主机系统110可向多个客户端提供多租户平台。例如,主机系统110可向不同的客户端提供服务,诸如云计算、云存储、分析、web服务、数据库、应用、部署服务等。主机系统110可包括服务器(例如,x86服务器)。在一些实施方案中,主机系统110中的一个或多个处理器可连接到soc102上的套接字。在一些实现方式中,可使用插入卡将soc102耦合到主机系统110,或者可将soc102焊接在主机系统110的主板上。

网络计算子系统104可被配置来提供网络相关功能,诸如网络流量整形、网络加速、网络存储处理等。在一些实施方案中,网络计算子系统104可包括网络接口控制器(nic)或网络协处理器的至少一些功能。在某些实施方案中,网络计算子系统104可包括与由主机系统110提供的web服务相关的一些功能,例如,计费、速率、流量整形、加密、阻塞等。网络计算子系统104可包括处理和存储器资源,诸如处理核、高速缓存、存储器控制器、i/o控制器等。

服务器计算子系统106可被配置来向客户端计算机提供计算服务(例如,虚拟或物理资源)。例如,计算服务可包括启动各种大小的虚拟机示例,根据需要将存储卷关联到虚拟机,通过租用虚拟机、数据处理、存储设备等给客户端计算机提供资源以运行应用。服务器计算子系统106可包括处理和存储器资源,诸如处理核、高速缓存、存储器控制器、i/o控制器等。

在一些实施方案中,服务器计算子系统106可用于卸载主机系统110的一些工作负载。在一些情况下,主机系统110连同服务器计算子系统106可提供高性能的计算服务。例如,主机系统110可集中处理快速周转服务,并且可将任何低性能的工作负载卸载到服务器计算子系统106,从而增加系统的吞吐量。

在所公开技术的实施方案中,soc102可被配置来在多种模式中的一种模式下操作。例如,在第一模式下,soc102可被配置来操作网络计算子系统104以至少管理网络流量。例如,在一些实施方案中,soc102可被配置来(例如,通过接口112)在主机系统110中的pcie设备上操作网络计算子系统104,(例如)以管理主机系统110的网络流量。在第二模式下,soc102可被配置来操作服务器计算子系统106以提供计算服务。例如,在一些实施方案中,soc102可被配置来(例如,通过接口112)在主机系统110中的pcie设备上操作服务器计算子系统106。在第三模式下,soc102可被配置来同时操作网络计算子系统104和服务器计算子系统106。在一些实施方案中,服务器计算子系统106可被配置为主机系统,并且网络计算子系统104可管理被配置为主机系统的服务器计算子系统106的网络流量。在一些实施方案中,soc102可由管理计算子系统108配置成处于多种模式中的一种模式下。

在一些实施方案中,当soc102在第一模式下操作时,服务器计算子系统106可被去配置或停用。例如,在一些情况下,可关闭服务器计算子系统106。在一些其他实施方案中,当soc102在第一模式下操作时,服务器计算子系统106可被重新利用为第二网络计算子系统。例如,在一些情况下,soc102可被配置来通过利用两个网络计算子系统来提供高性能的联网服务。在一些实施方案中,在第一模式下,soc102可被配置来禁用服务器计算子系统106并且重新配置与服务器计算子系统106相关联的处理和存储器资源,以作为网络计算子系统104的资源来操作,从而提供高性能的联网服务。在一些实施方案中,在第一模式下,soc102可被配置成作为一个或多个服务器的网络处理器来操作。

在一些实施方案中,当soc102在第二模式下操作时,网络计算子系统104可被去配置或停用。例如,在一些情况下,可关闭网络计算子系统104。在一个实施方案中,在第二模式下,soc102可被配置成作为主机系统110中的通用处理器来操作。例如,在一些实施方案中,通用处理器可能能够在任何平台(例如,任何操作系统)上运行。在一些实施方案中,通用处理器可能能够执行计算机的中央处理单元的大部分功能(诸如通用计算),并且可能能够支持多个联网和消息传输协议。在一些其他实施方案中,当soc102在第二模式下操作时,网络计算子系统104可被重新利用为第二服务器计算子系统。例如,在一些情况下,soc102可被配置来通过利用两个服务器计算子系统来提供高性能的计算服务。在一些实施方案中,在第二模式下,soc102可被配置来禁用网络计算子系统104并且重新配置与网络计算子系统104相关联的处理和存储器资源,以作为服务器计算子系统106的资源来操作,从而提供高性能的计算服务。

在一些实施方案中,管理计算子系统108可被配置来将soc102配置在多种模式中的一种模式(例如,第一模式、第二模式或第三模式)下操作。管理计算子系统108还可被配置来管理soc102的各种子系统。例如,管理计算子系统108可被配置来提供不同子系统的引导管理、复位和功率管理以及与soc管理相关的任何其他功能。例如,在一些实施方案中,管理计算子系统108可被配置来在不影响其他计算子系统的情况下将每个计算子系统断电,例如,网络计算子系统104和服务器计算子系统106可独立地加电或断电。管理计算子系统108还可被配置来管理与不同子系统相关联的资源。在一些实施方案中,管理计算子系统108可包括其自身的处理资源(诸如一个或多个处理器核)。

因此,所公开技术的实施方案可通过使用相同的硅提供不同的功能来允许soc102在多种模式中的一种模式下操作。例如,同一个soc102可在不同的配置下作为网络计算子系统操作,作为服务器计算子系统操作或者作为网络计算子系统和服务器计算子系统同时操作,这具有最小的成本并且不需要任何额外的硅。

图2示出了根据所公开技术的一些实施方案的soc102的详细框图。

soc102可包括网络计算子系统104、服务器计算子系统106、管理计算子系统108和共享资源子系统230。管理计算子系统108可使用内部总线232与诸如网络计算子系统104、服务器计算子系统106和共享资源子系统230的其他子系统通信。

网络计算子系统104可包括网络计算子系统多核处理器202、l1/l2高速缓存204、网络计算子系统高速缓存一致结构206、l3高速缓存208、网络i/o子系统210、网络计算子系统存储器控制器212和加速度单元214。在一些实施方案中,网络计算子系统104的处理和存储器资源的分配可被固定。例如,网络计算子系统多核处理器202中的多核处理器的数量、网络计算子系统存储器控制器212中的存储器控制器的数量以及l1/l2高速缓存204、l3高速缓存208的大小可在上电复位后被固定。

服务器计算子系统106可包括服务器计算子系统多核处理器216、l1/l2高速缓存218、服务器计算子系统高速缓存一致结构220、l3高速缓存222、服务器i/o子系统224、服务器计算子系统存储器控制器226和引导外围设备228。在一些实施方案中,服务器计算子系统106的处理和存储器资源的分配可被固定。例如,服务器计算子系统多核处理器216中的多核处理器的数量、服务器计算子系统存储器控制器226中的存储器控制器的数量以及l1/l2高速缓存218、l3高速缓存222的大小可在上电复位后被固定。

网络计算子系统多核处理器202可包括同一处理器内的多个多核处理器或处理单元。例如,在一种情况下,网络计算子系统多核处理器202可包括十二个2核处理器。网络计算子系统多核处理器202可被配置来在处理器核的一个或多个处理器上共同地执行多个指令。指令可(例如)以计算机程序的形式存储在计算机可读存储介质上。计算机可读存储介质可以是非暂时性的。在一些实施方案中,多核处理器可共享某些资源,诸如多核之间的总线以及1级(l1)高速缓存和/或2级(l2)高速缓存。例如,在一些情况下,单核或多核处理器中的每个核还可包括多个执行中的逻辑处理器(或线程)。在这种(支持多个逻辑处理器的)核中,还可共享执行流水线的若干级以及还有较低级的高速缓存(例如,l1或l2)。多核处理器的一些非限制性示例可包括arm的cortexa57、mips、amdphenom、intelatom等。

在一些实施方案中,l1/l2高速缓存204可在网络计算子系统多核处理器202的多个核之间共享。例如,l1高速缓存可用作主高速缓存,并且l2高速缓存可用作次高速缓存。在一些实施方案中,l1/l2高速缓存204可被内置到网络计算子系统多核处理器202中。例如,一个l1/l2高速缓存可与一个多核处理器集成。在一些实施方案中,可将网络计算子系统多核处理器202和l1/l2高速缓存204重新配置以作为服务器计算子系统106的计算资源来操作。例如,当soc102被配置来在第二模式下操作时,网络计算子系统104可被去配置以禁用由soc102提供的与网络相关的功能。

网络i/o子系统210可包括一个或多个接口,所述一个或多个接口用于与各种内部和外部部件通信。例如,网络i/o子系统210可包括接口236,所述接口236用于与主机系统110通信。网络i/o子系统210可包括内部接口(例如,接口234),所述内部接口用于与服务器计算子系统106通信。在一些实施方案中,当服务器计算子系统106被禁用时,可不利用与服务器计算子系统106通信的接口234。在一些实施方案中,服务器计算子系统106可(例如)通过接口234经由网络i/o子系统210与主机系统110和网络通信。在一些实施方案中,与主机系统110和服务器计算子系统106通信的接口可以基于诸如pcie的标准接口。网络i/o子系统210还可包括与网络(例如,互联网、内联网)等通信的接口。例如,接口可以基于标准(诸如以太网、令牌环、wi-fi、atm(异步传输模式)等)。在一些实施方案中,网络i/o子系统210还可包括外围设备,诸如一个或多个sata控制器、以太网mac、pcie设备、serdes(串行化-解串行化)i/o多路复用器、uart(通用异步接收器/发送器)、i2c(集成电路互连)、gpio(通用输入/输出)以及用于soc功能的任何其他合适的i/o设备。在一些实施方案中,网络i/o子系统210还可包括接口(例如,sata),所述接口用于连接到外部大容量存储设备(诸如硬盘驱动器、光驱等)。

网络计算子系统存储器控制器212可包括多个存储器控制器,诸如ddr(双倍数据速率)控制器、ddr2控制器或任何合适的存储器控制器。网络计算子系统存储器控制器212可用于管理对外部存储器(例如,系统存储器)的访问。例如,外部系统存储器可包括ddr同步动态随机存取存储器(dram)、ddr2dram、dram等。在一些实施方案中,网络计算子系统存储器控制器212中的存储器控制器的数量可以基于处理器核的数量、高速缓存的大小等。

加速度单元214可包括一个或多个加速器(诸如网络加速器)。在一些实施方案中,加速度单元214可包括各种硬件和软件技术的组合,以(例如)使用硬件加速器、各种流水线、高速缓存、压缩等来提供带宽优化或网络加速。加速度单元214还可支持rdma(远程直接存储器访问)、加密引擎等。例如,在一些情况下,加密引擎可在硬件中执行加密功能,从而减少软件开销并加速执行与联网相关的解密、加密和认证功能。

l3高速缓存208可包括末级高速缓存。在一些实施方案中,l3高速缓存208可被网络计算子系统多核处理器202的多个核共享。在本说明书中,术语末级高速缓存和l3高速缓存可以互换地使用,然而,在一些系统中,末级高速缓存在不偏离技术的范围的情况下可以是2级高速缓存或4级高速缓存或任何其他级高速缓存。在一些实施方案中,可将l3高速缓存208和网络计算子系统存储器控制器212重新配置以作为服务器计算子系统106的计算资源来操作。例如,当soc102被配置来在第二模式下操作时,网络计算子系统104可被去配置以禁用由soc102提供的与网络相关的功能。

网络计算子系统高速缓存一致结构206可表示物理层结构,所述物理层结构可连接到分配给网络计算子系统104的所有资源。在所公开技术的一些实施方案中,网络计算子系统高速缓存一致结构206可通过允许针对分配给网络计算子系统104的所有资源的专用硬件路径来提供硬件安全和性能/抖动隔离。在一些实施方案中,网络计算子系统高速缓存一致结构206可被配置来在网络计算子系统104的不同部件(例如,网络计算子系统多核处理器202、l1/l2高速缓存204、l3高速缓存208、网络i/o子系统210、网络计算子系统存储器控制器212、加速度单元214和共享资源子系统230)之间保持一致性。在一些情况下,网络计算子系统高速缓存一致结构206可表示网络计算子系统104的通信骨干。在一些实施方案中,网络计算子系统高速缓存一致结构206可被配置来确保所有共享数据在网络计算子系统104中是一致的。例如,如果某些共享数据存储在两个或更多个位置(例如,多个处理器、处理器的多个核、高速缓存等)中,那么网络计算子系统高速缓存一致结构206可操作来保持不同位置中的共享数据的一致性。在一些实施方案中,网络计算子系统高速缓存一致结构206可包括一致性控制器和一致性目录,以保持网络计算子系统104的不同部件之间的一致性。

服务器计算子系统多核处理器216可包括同一处理器内的多个多核处理器或处理单元。例如,在一种情况下,服务器计算子系统多核处理器216可包括十二个2核处理器。服务器计算子系统多核处理器216可被配置来在处理器核的一个或多个处理器上共同地执行多个指令。指令可(例如)以计算机程序的形式存储在计算机可读存储介质上。计算机可读存储介质可以是非暂时性的。

在一些实施方案中,l1/l2高速缓存218可在服务器计算子系统多核处理器216的多个核之间共享。例如,l1高速缓存可用作主高速缓存,并且l2高速缓存可用作次高速缓存。在一些实施方案中,l1/l2高速缓存218可被内置到服务器计算子系统多核处理器216中。在一些实施方案中,可将服务器计算子系统多核处理器216和l1/l2高速缓存218重新配置以作为网络计算子系统104的计算资源来操作。例如,当soc102被配置来在第一模式下操作时,服务器计算子系统106可被去配置以禁用由soc102提供的与计算相关的功能。

服务器计算子系统存储器控制器226可包括多个存储器控制器,诸如ddr控制器、ddr2控制器或任何合适的存储器控制器。服务器计算子系统存储器控制器226可用于管理对外部存储器的访问。在一些实施方案中,服务器计算子系统存储器控制器226中的存储器控制器的数量可以基于处理器核的数量、高速缓存的大小等。

服务器i/o子系统224可包括一个或多个接口,所述一个或多个接口用于与各种内部和外部部件通信。例如,服务器i/o子系统224可包括接口238,所述接口238用于与主机系统110通信。服务器i/o子系统224可包括内部接口(例如,接口234),所述内部接口用于与网络计算子系统104通信。在一些实施方案中,当网络计算子系统104被禁用时,可不利用与网络计算子系统104通信的接口234。在一些实施方案中,服务器计算子系统106可(例如)通过接口234经由网络i/o子系统210与主机系统110和网络通信。在一些实施方案中,与主机系统110和网络计算子系统104通信的接口可以基于诸如pcie的标准接口。服务器i/o子系统224还可包括与网络(例如,互联网、内联网)等通信的接口。例如,接口可以基于标准(诸如以太网、令牌环、wi-fi、atm(异步传输模式)等)。在一些实施方案中,服务器i/o子系统224还可包括外围设备,诸如一个或多个sata控制器、以太网mac、pcie设备、serdes(串行化-解串行化)i/o多路复用器、uart、i2c、gpio以及用于soc功能的任何其他合适的i/o设备。在一些实施方案中,服务器i/o子系统224还可包括接口(例如,sata),所述接口用于连接到外部大容量存储设备(诸如硬盘驱动器、光驱等)。

l3高速缓存222可包括末级高速缓存。在一些实施方案中,l3高速缓存222可被服务器计算子系统多核处理器216的多个核共享。在一些实施方案中,可将l3高速缓存222和服务器计算子系统存储器控制器226重新配置以作为网络计算子系统104的存储器资源来操作。例如,当soc102被配置来在第一模式下操作时,服务器计算子系统106可被去配置以禁用由soc102提供的与计算相关的功能。

引导外围设备228可包括服务器计算子系统106的一个或多个外围设备。例如,引导外围设备228可包括引导rom、eeprom或闪存。在一些实施方案中,引导外围设备228中的一个可包括bios软件,所述bios软件用于引导服务器计算子系统106的操作系统。

服务器计算子系统高速缓存一致结构220可表示物理层结构,所述物理层结构可连接到分配给服务器计算子系统106的所有资源。在所公开技术的实施方案中,服务器计算子系统高速缓存一致结构220可通过允许针对分配给服务器计算子系统106的所有资源的专用硬件路径来提供硬件安全和性能/抖动隔离。在一些实施方案中,服务器计算子系统高速缓存一致结构220可被配置来在服务器计算子系统106的不同部件(例如,服务器计算子系统多核处理器216、l1/l2高速缓存218、服务器计算子系统存储器控制器226、l3高速缓存222、服务器i/o子系统224和共享资源子系统230)之间保持一致性。在一些情况下,服务器计算子系统高速缓存一致结构220可表示服务器计算子系统106的通信骨干。在一些实施方案中,服务器计算子系统高速缓存一致结构220可被配置来确保所有共享数据在服务器计算子系统106中是一致的。例如,如果某些共享数据存储在两个或更多个位置(例如,多个处理器、处理器的多个核、高速缓存等)中,那么服务器计算子系统高速缓存一致结构220可操作来保持不同位置中的共享数据的一致性。在一些实施方案中,服务器计算子系统高速缓存一致结构220可包括一致性控制器和一致性目录,以保持服务器计算子系统106的不同部件之间的一致性。

共享资源子系统230可包括一个或多个资源,所述一个或多个资源可在网络计算子系统104与服务器计算子系统106之间共享。在一些实施方案中,共享资源子系统230可包括一个或多个外围设备,所述一个或多个外围设备可在不引起任何抖动或安全问题的情况下在网络计算子系统104与服务器计算子系统106之间安全地共享。例如,共享资源子系统230可包括随机数生成器、通信邮箱、高速暂存存储器、闪存等。

管理计算子系统108可被配置来将soc102配置成在多种模式中的一种模式下操作。在一些实施方案中,管理计算子系统108可基于硬件配置(例如,一个或多个引脚、跳线或熔丝)、软件配置(例如,软件寄存器的数据字段)或策略来确定soc102在加电时的配置。例如,策略可由外部实体或操作者通过网络连接来提供。在一些实施方案中,管理计算子系统108可在运行时间期间动态地确定soc102的配置。

在一个实施方案中,管理计算子系统108可将soc102配置成在第一模式下操作,例如,soc102可仅提供与网络相关的服务。例如,服务器计算子系统106可被断电或去配置。在一些实施方案中,管理计算子系统108还可以第一模式配置soc102来禁用服务器计算子系统106并将与服务器计算子系统106相关联的处理和存储器资源重新配置,以作为网络计算子系统104的资源来操作。在一个实施方案中,管理计算子系统108可将服务器计算子系统多核处理器216、l1/l2高速缓存218、l3高速缓存222、服务器计算子系统存储器控制器226和服务器i/o子系统224重新配置,以作为网络计算子系统104的资源来操作。在另一个实施方案中,管理计算子系统108还可以第一模式配置soc102以将服务器计算子系统106重新利用为第二网络计算子系统。例如,网络计算子系统104可用作第一网络计算子系统,并且服务器计算子系统106可用作第二网络计算子系统。因此,所公开技术的一些实施方案可使soc102能够在第一模式下提供高性能的联网服务。

在一个实施方案中,管理计算子系统108可将soc102配置成在第二模式下操作,例如,soc102可仅提供与计算相关的服务。例如,网络计算子系统104可被断电或去配置。在一些实施方案中,管理计算子系统108还可以第二模式配置soc102来禁用网络计算子系统104并将与网络计算子系统104相关联的处理和存储器资源重新配置,以作为服务器计算子系统106的资源来操作。在一个实施方案中,管理计算子系统108可将网络计算子系统多核处理器202、l1/l2高速缓存204、l3高速缓存208、网络计算子系统存储器控制器212和网络i/o子系统210重新配置,以作为服务器计算子系统106的资源来操作。在另一个实施方案中,管理计算子系统108还可以第二模式配置soc102以将网络计算子系统104重新利用为第二服务器计算子系统106。例如,服务器计算子系统106可用作第一服务器计算子系统,并且网络计算子系统104可用作第二服务器计算子系统。因此,所公开技术的一些实施方案可使soc102能够在第二模式下提供高性能的计算服务。

在一个实施方案中,管理计算子系统108可将soc102配置成在第三模式下操作,例如,网络计算子系统104和服务器计算子系统106都可被启用,并且soc102可同时提供与网络相关的服务和与计算相关的服务。在第三模式下,网络计算子系统104和服务器计算子系统106中的每一个可利用其专用处理和存储器资源。

图3a示出了根据所公开技术的实施方案的第一模式下的soc配置。

在第一模式下,soc102可作为网络计算子系统来操作,以用于至少管理主机系统110的网络流量。在一个实施方案中,soc102可被配置来(例如,使用接口236)在主机系统110中的pcie设备上操作网络计算子系统104。例如,在一些情况下,soc可用于仅提供与网络相关的功能(诸如网络流量整形、网络加速、网络存储处理等)并且可不被用来提供与计算相关的服务。在一些实施方案中,如图3a中所示,在第一模式下,只有网络计算子系统104可以是激活的或被配置来至少管理主机系统110的网络流量。服务器计算子系统106可以是停用的或被去配置。在一些实施方案中,可关闭服务器计算子系统106的至少一部分。管理计算子系统108可以是激活的并且被配置来管理网络计算子系统104和服务器计算子系统106的资源。例如,在一些实施方案中,管理计算子系统108还可配置soc102来将与服务器计算子系统106相关联的处理和存储器资源重新配置,以作为网络计算子系统104的资源来操作。重新参照图2,管理计算子系统108可将服务器计算子系统多核处理器216、l1/l2高速缓存218、l3高速缓存222、服务器计算子系统存储器控制器226和服务器i/o子系统224重新配置,以作为网络计算子系统104的资源来操作。因此,所公开技术的一些实施方案可使soc102能够通过利用来自两个计算子系统的资源来提供高性能的联网服务。

图3b示出了根据所公开技术的实施方案的第二模式下的soc配置。

在第二模式下,soc102可作为服务器计算子系统来操作,以用于提供计算服务。在一个实施方案中,soc102可被配置来(例如,使用接口238)在主机系统110中的pcie设备上操作服务器计算子系统106。例如,在一些情况下,soc102可用于仅提供与服务器相关的功能(诸如计算、数据处理或提供其他虚拟或物理的资源)并且可不被用来提供与网络相关的服务。在一些实施方案中,如图3b中所示,在第二模式下,只有服务器计算子系统106可以是激活的或被配置来提供计算服务。网络计算子系统104可以是停用的或被去配置。在一些实施方案中,可关闭网络计算子系统104的至少一部分。管理计算子系统108可以是激活的并且被配置来管理网络计算子系统104和服务器计算子系统106的资源。例如,在一些实施方案中,管理计算子系统108还可配置soc102来将与网络计算子系统104相关联的处理和存储器资源重新配置,以作为服务器计算子系统106的资源来操作。重新参照图2,管理计算子系统108可将网络计算子系统多核处理器202、l1/l2高速缓存204、l3高速缓存208、网络计算子系统存储器控制器212和网络i/o子系统210重新配置,以作为服务器计算子系统106的资源来操作。因此,所公开技术的一些实施方案可使soc102能够通过利用来自两个计算子系统的资源来提供高性能的计算服务。

图3c示出了根据所公开技术的一个实施方案的第三模式下的soc配置。

在第三模式下,soc102可作为网络计算子系统104和服务器计算子系统106来同时操作。例如,网络计算子系统104和服务器计算子系统106都可以是激活的。在一些实施方案中,网络计算子系统104可用于提供与网络相关的服务(诸如网络流量整形、网络加速、网络存储处理等),并且服务器计算子系统106可用于提供计算服务(诸如计算、数据处理或提供其他虚拟或物理的资源)。在一些实施方案中,在第三模式下,soc102还可被配置成将服务器计算子系统106作为主机系统来操作,并且操作网络计算子系统104以管理服务器计算子系统106的网络流量。例如,在一些实施方案中,soc102可用作主机系统,所述主机系统可提供计算服务和网络服务。管理计算子系统108可以是激活的并且被配置来管理网络计算子系统104和服务器计算子系统106的资源。因此,所公开技术的一些实施方案可使soc102能够通过利用两个计算子系统来同时提供网络服务和计算服务。

图4a示出了根据所公开技术的一个实施方案的第一模式下的soc配置,其中服务器计算子系统被重新利用为网络计算子系统。

在一些实施方案中,在第一模式下,soc402可被配置来将服务器计算子系统重新利用为第二网络计算子系统406。例如,重新参照图3a,服务器计算子系统106在第一模式下可以是停用的或被去配置。soc402还可包括可类似于网络计算子系统104的第一网络计算子系统404以及可类似于管理计算子系统108的管理计算子系统408,如先前参考图2和图3a所论述的。在一些实施方案中,将服务器计算子系统重新利用为网络计算子系统可包括利用与服务器计算子系统相关联的一个或多个资源以执行与网络相关的功能而不是与计算服务器相关的功能。例如,重新参照图2,服务器i/o子系统238可用于网络流量监测,并且服务器计算子系统多核处理器216、l1/l2高速缓存218、l3高速缓存222和服务器计算子系统存储器控制器226可用于执行网络存储处理。在一些实施方案中,soc402可作为网络处理器来操作。因此,所公开技术的一些实施方案可允许有效地利用资源以提供高性能的联网服务。

图4b示出了根据所公开技术的实施方案的第二模式下的soc配置,其中网络计算子系统被重新利用为服务器计算子系统。

在一些实施方案中,在第二模式下,soc410可被配置来将网络计算子系统104重新利用为第二服务器计算子系统414。例如,重新参照图3b,网络计算子系统104在第二模式下可以是停用的或被去配置。soc410还可包括管理计算子系统408以及可类似于服务器计算子系统106的第一服务器计算子系统412,如先前参考图2和图3b所论述的。在一些实施方案中,将网络计算子系统重新利用为第二服务器计算子系统可包括利用与网络计算子系统相关联的一个或多个资源以执行与计算服务器相关的功能而不是与网络相关的功能。例如,重新参照图2,网络i/o子系统210可用于与主机系统110通信,并且网络计算子系统多核处理器202、l1/l2高速缓存204、l3高速缓存208和网络计算子系统存储器控制器212可用于执行数据处理。在一些实施方案中,soc410可作为通用处理器来操作。因此,所公开技术的一些实施方案可允许有效地利用资源以提供高性能的计算服务。

图5示出了根据所公开技术的一个实施方案的具有可重新配置的处理和存储器资源的soc502的框图。通常,soc502可包括可重新配置的处理和存储器资源,根据模式,其可被配置来用作网络计算子系统的一部分或用作服务器计算子系统的一部分。网络计算子系统和服务器计算子系统也可各自包括其自身的专用处理和存储器资源。

soc502可类似于先前参考图2所论述的soc102。在一个实施方案中,除了网络计算子系统104、服务器计算子系统106、管理计算子系统108和共享资源子系统230之外,soc502还可包括可重新配置的处理核504、l1/l2高速缓存506、转向单元508、结构桥接器512和可重新配置的存储器控制器510,如参考图2所论述的。网络计算子系统104可包括网络计算子系统多核处理器202、l1/l2高速缓存204、网络计算子系统高速缓存一致结构206、l3高速缓存208、网络i/o子系统210、网络计算子系统存储器控制器212和加速度单元214,如参考图2所论述的。服务器计算子系统106可包括服务器计算子系统多核处理器216、l1/l2高速缓存218、服务器计算子系统高速缓存一致结构220、l3高速缓存222、服务器计算子系统存储器控制器226、引导外围设备228和服务器i/o子系统224。

可重新配置的处理核504可包括多个处理核,所述多个处理核可被配置来用作网络计算子系统104的一部分或用作服务器计算子系统106的一部分。l1/l2高速缓存506可包括多个l1/l2高速缓存,所述多个l1/l2高速缓存可被配置来用作网络计算子系统104的一部分或用作服务器计算子系统106的一部分。在一些实施方案中,l1/l2高速缓存506中的每一个可被一个或多个处理核共享。

在一个实施方案中,管理计算子系统108可配置soc502以将可重新配置的处理核504和l1/l2高速缓存506中的一个或多个分配给网络计算子系统104。例如,在第一模式下,soc502可作为网络计算子系统来操作,以用于至少管理主机系统110的网络流量。例如,在一些情况下,soc502可用于仅提供与网络相关的功能(诸如网络流量整形、网络加速、网络存储处理等)并且可不被用来提供与计算相关的服务。在一些实施方案中,可将可重新配置的处理核504和l1/l2高速缓存506中的至少一些重新配置以作为网络计算子系统104的资源来操作。在一些实施方案中,soc502还可包括可重新配置的l3或末级高速缓存,所述可重新配置的l3或末级高速缓存可被配置来用作网络计算子系统104的一部分或用作服务器计算子系统106的一部分。因此,soc502可利用与网络计算子系统104相关联的专用资源和被转向到网络计算子系统104的可重新配置的资源来提供高性能的联网服务。

在一个实施方案中,管理计算子系统108可配置soc502以将可重新配置的处理核504和l1/l2高速缓存506中的一个或多个分配给服务器计算子系统106。例如,在第二模式下,soc502可作为服务器计算子系统来操作,以用于提供计算服务。例如,在一些情况下,soc502可用于仅提供与服务器相关的功能(诸如计算、数据处理或提供其他虚拟或物理的资源)并且可不被用来提供与网络相关的服务。在一些实施方案中,可将可重新配置的处理核504和l1/l2高速缓存506中的至少一些重新配置以作为服务器计算子系统106的资源来操作。因此,soc502可利用与服务器计算子系统106相关联的专用资源和被转向到服务器计算子系统106的可重新配置的资源来提供高性能的计算服务。

转向单元508可被配置来将可重新配置的存储器控制器510中的一个或多个存储器控制器转向到网络计算子系统104或服务器计算子系统106。例如,管理计算子系统108可根据soc502的模式将可重新配置的存储器控制器510配置来用作网络计算子系统104的一部分或用作服务器计算子系统106的一部分。在一些实施方案中,管理计算子系统108可被配置来向转向单元508提供控制信号,以在第一模式下将可重新配置的存储器控制器510转向到网络计算子系统104,或者在第二模式下将可重新配置的存储器控制器510转向到服务器计算子系统106。

在一些实施方案中,转向单元508还可用于将重新配置的处理核504和l1/l2高速缓存506(例如,通过网络计算子系统高速缓存一致结构206)转向到网络计算子系统104或(例如,通过服务器计算子系统高速缓存一致结构220)转向到服务器计算子系统106。

结构桥接器506可表示路由结构,所述路由结构用于将每个资源映射到物理层。例如,结构桥接器512可将可重新配置的处理核504和l1/l2高速缓存506映射到物理层结构,所述物理层结构可与网络计算子系统104或服务器计算子系统106相关联。在一些实施方案中,可使用结构桥接器512将可重新配置的存储器控制器510映射到网络计算子系统104或服务器计算子系统106。在本技术的一些实施方案中,可存在多个物理层,其中每个物理层可与子系统的一致结构相关联。例如,网络计算子系统高速缓存一致结构206可表示网络计算子系统104的第一物理层结构,并且服务器计算子系统高速缓存一致结构220可表示服务器计算子系统106的第二物理层结构。在一些实施方案中,网络计算子系统高速缓存一致结构206和服务器计算子系统高速缓存一致结构220中的每一个可具有附接到资源的端口。在一些实施方案中,结构桥接器512可具有端口,所述端口用于(例如,通过资源的接口)物理地连接到每个可重新配置的资源。结构桥接器512可被配置来将附接的资源映射到相应的物理层结构的端口。例如,网络计算子系统高速缓存一致结构206和服务器计算子系高速缓存一致结构220中的每一个可被实现为交叉杆、网格、环或可允许附接资源的任何其他合适的实现方式,所述资源物理地连接到结构桥接器512上的端口。所公开技术的实施方案可允许物理隔离每个计算子系统的物理层结构,这可减少两个计算子系统的抖动和安全风险。

在一些实施方案中,网络计算子系统高速缓存一致结构206可通过将网络计算子系统104的所有配置的资源隔离到第一物理层来提供减少的抖动和安全问题,并且服务器计算子系统高速缓存一致结构220可通过将服务器计算子系统106的所有配置的资源隔离到第二物理层来提供减少的抖动和安全问题。

图6a示出了根据所公开技术的一些实施方案的soc502,其被配置来在包括可重新配置的资源的第一模式下操作。

如图6a中所示,soc502可包括网络计算子系统602、服务器计算子系统106和管理计算子系统108。在一些实施方案中,网络计算子系统602可包括网络计算子系统104的专用资源以及如参考图5所论述的可重新配置的处理和存储器资源。例如,除了与网络计算子系统104相关联的专用处理和存储器资源之外,网络计算子系统602可包括重新配置的处理核504、l1/l2高速缓存506以及重新配置的存储器控制器510。

如先前参考图3a所论述的,在第一模式下,服务器计算子系统106可以是停用的或被去配置。例如,在一些情况下,可关闭服务器计算子系统106的至少一些部分。在一些实施方案中,在第一模式下,soc502可作为网络计算子系统602来操作,所述网络计算子系统602包括:专用资源,其与网络计算子系统104相关联;以及可重新配置的处理和存储器资源,其被配置成作为网络计算子系统104的资源来操作。这可允许soc502通过利用更多数量的资源来执行高性能的联网任务。

图6b示出了根据所公开技术的一些实施方案的soc502,其被配置来在第二模式下操作。

如图6b中所示,soc502可包括网络计算子系统104、服务器计算子系统604和管理计算子系统108。在一些实施方案中,服务器计算子系统604可包括服务器计算子系统106的专用资源以及如参考图5所论述的可重新配置的处理和存储器资源。例如,除了与服务器计算子系统106相关联的资源之外,服务器计算子系统604可包括重新配置的处理核504、l1/l2高速缓存506以及重新配置的存储器控制器510。

如先前参考图3b所论述的,在第二模式下,网络计算子系统104可以是停用的或被去配置。例如,在一些情况下,可关闭网络计算子系统104的至少一些部分。在一些情况下,网络计算子系统104的一小部分可用于为soc502提供基本的联网功能。在一些实施方案中,在第二模式下,soc502可作为服务器计算子系统604来操作,所述服务器计算子系统604包括:专用资源,其与服务器计算子系统106相关联;以及可重新配置的处理和存储器资源,其被配置成作为服务器计算子系统106的资源来操作。这可允许soc502通过利用更多数量的资源来执行高性能的计算任务。

图7a-7c示出了可包括第一soc和第二soc的系统700,所述第一soc和第二soc可被配置来通过接口710通信。例如,接口710可以基于诸如pcie的标准接口。第一soc可被配置来与第二soc通信,所述第二soc可被配置成处于多种模式中的一种模式下,例如,在第一模式下操作网络计算子系统,在第二模式下操作服务器计算子系统或者在第三模式下同时操作网络计算子系统和服务器计算子系统二者。

图7a示出了根据本技术的一个实施方案的第一soc与第二soc通信,所述第一soc被配置来在第二模式下操作,所述第二soc被配置来在第一模式下操作。例如,第一soc702可被配置来在第二模式下操作以提供计算服务。应注意,在一些实施方案中,可使用soc502来代替第一soc702或第二soc102。然而,仅出于说明性目的,soc102被示出为第二soc。

如图7a中所示,第一soc702可类似于被配置成处于第二模式下的soc102,其中网络计算子系统被重新利用为第二服务器计算子系统。在一些实施方案中,在第二模式下,soc702可被配置成作为主机系统(例如,主机系统110)中的通用处理器来操作。例如,在一些实施方案中,通用处理器可能能够在任何平台(例如,任何操作系统)上运行。在一些实施方案中,通用处理器可能能够执行计算机的中央处理单元的大部分功能(诸如通用计算),并且可能能够支持多个联网和消息传输协议。soc702可包括第一服务器计算子系统704、第二服务器计算子系统706和管理计算子系统708。第一服务器计算子系统704可类似于服务器计算子系统106,并且第二服务器计算子系统706可类似于如先前参考图4b所论述的第二服务器计算子系统414。例如,第二服务器计算子系统706可以是重新利用的网络计算子系统。管理计算子系统708可类似于先前参考图2所论述的管理计算子系统108。

soc102可在第一模式下操作,如先前参考图3a所论述的。例如,在一些实施方案中,soc102可被配置来操作网络计算子系统104以至少管理第一soc702的网络流量。服务器计算子系统106可以是停用的或被去配置。在一些情况下,可关闭服务器计算子系统106的至少一些部分。在一些实施方案中,在第一模式下,soc102可被配置来在作为主机系统操作的soc702中的pcie设备上操作网络计算子系统104。例如,pcie设备可以是服务器i/o子系统224的一部分,如参考图2所论述的。因此,在一些实施方案中,soc102可作为soc702的网络处理器来操作。

图7b示出了根据本技术的一个实施方案的第一soc与第二soc通信,所述第一soc被配置来在第二模式下操作,所述第二soc被配置来在第二模式下操作。例如,第一soc702可被配置来在第二模式下操作以提供计算服务,如先前参考图7a所论述的。在一些实施方案中,在第二模式下,soc702可被配置成作为主机系统(例如,主机系统110)中的通用处理器来操作。

如图7b中所示,soc102可在第二模式下操作,如先前参考图3b所论述的。例如,soc102可被配置来操作服务器计算子系统106以提供计算服务。网络计算子系统104可以是停用的或被去配置。在一些情况下,可关闭网络计算子系统104的至少一些部分。在一些实施方案中,在第二模式下,soc102可被配置来在作为主机系统操作的soc702中的pcie设备上操作服务器计算子系统106。例如,pcie设备可以是服务器i/o子系统224的一部分,如参考图2所论述的。因此,soc702可作为通用处理器来操作,所述通用处理器可通过pcie接口与服务器计算子系统106通信。例如,在一些实施方案中,服务器计算子系统106可用于卸载第一soc702的一些工作负载。在一些情况下,被配置成处于第二模式下的第一soc702连同服务器计算子系统106可提供高性能的计算服务。例如,第一soc702可集中处理快速周转服务,并且可将低性能的工作负载卸载到服务器计算子系统106,从而增加系统的吞吐量。

图7c示出了根据本技术的一个实施方案的第一soc与第二soc通信,所述第一soc被配置来在第二模式下操作,所述第二soc被配置来在第三模式下操作。例如,第一soc702可被配置来在第二模式下操作以提供计算服务,如先前参考图7a所论述的。在一些实施方案中,在第二模式下,soc702可被配置成作为主机系统(例如,主机系统110)中的通用处理器来操作。

如图7c中所示,soc102可在第三模式下操作,如先前参考图3c所论述的。例如,soc102可被配置来同时操作网络计算子系统104和服务器计算子系统106。因此,soc702可作为通用处理器来操作,所述通用处理器可通过pcie接口与网络计算子系统104和服务器计算子系统106通信。在一些实施方案中,soc702可通过网络i/o子系统210(例如,接口236)与网络计算子系统104通信以及通过服务器i/o子系统224(例如,接口238)与服务器计算子系统106通信,如先前参考图2所论述的。

图8示出了根据本技术的一个实施方案的包括多个soc的系统800。根据本技术的一个实施方案,第一soc可被配置成作为网络计算子系统来操作,所述网络计算子系统可被配置来使用pcie接口与一个或多个soc通信。在一些实施方案中,第一soc可被配置来与第二soc通信,所述第二soc可以是第三方soc(例如,包括通用处理器的soc)。

soc802可被配置成处于第一模式下,以操作网络计算子系统来至少管理网络流量。例如,soc802可包括如先前参考图4a所论述的第一网络计算子系统804和第二网络计算子系统806。第一网络计算子系统804可类似于第一网络计算子系统404,并且可被配置用于至少管理网络流量。第二网络计算子系统806可以是重新利用的服务器计算子系统(例如,服务器计算子系统106)。soc802可被配置来通过利用与第一网络计算子系统804和第二网络计算子系统806相关联的资源来提供高性能的联网服务。

在一些实施方案中,soc802可作为一个或多个服务器的网络处理器来操作。例如,soc802可被配置来与被配置为服务器子系统的一个或多个soc(例如,soc808、soc820和soc832)通信。例如,soc808、820和832中的每一个可被配置来在第二模式下操作以作为用于提供计算服务的服务器计算子系统来操作。soc808可包括第一服务器计算子系统810和第二服务器计算子系统812。例如,第二服务器计算子系统812可以是重新利用的网络计算子系统,如先前参考4b所论述的。soc820可包括第一服务器计算子系统822和第二服务器计算子系统824,其中第二服务器计算子系统824可以是重新利用的网络计算子系统。soc832可包括第一服务器计算子系统834和第二服务器计算子系统836,其中第二服务器计算子系统836可以是重新利用的网络计算子系统。应注意,soc808、820和832可包括相同或不同配置的处理和存储器资源。此外,在一些实施方案中,soc808、820和832中的任何一个可仅包括一个服务器计算子系统(例如,其他服务器计算子系统可以是停用的)。在一些实施方案中,soc808、820和832中的一个或多个可类似于soc502,如参考图6b所论述的。

soc808可包括第一服务器计算子系统810与soc802之间的接口816以及第二服务器计算子系统818与soc802之间的接口818。在一些实施方案中,接口816和818可以是pcie或以太网接口。soc808还可包括诸如固态驱动器、dram等的外部存储器(未示出)的接口814。在一些实施方案中,接口814可以是pcie接口。soc808还可包括诸如sata控制器、gpio、i2c等的其他i/o设备的接口。soc820可包括接口826、828和830,并且soc832可包括接口838、840和842。soc820和soc832的接口可类似于soc808的相应的接口。在一些实施方案中,soc808、820和832可以是同一个soc的示例,或者可以是不同的soc。

在一些实施方案中,soc802可被配置来与由第三方提供的soc(例如,诸如基于服务器的soc的通用soc)通信。例如,在一些实施方案中,soc802可使用pciex4/x8插槽与多达四个或八个soc通信。在一些实施方案中,soc802和soc808、820、832可包括其他部件,例如像先前参考图2所论述的管理计算子系统、共享资源子系统等,为了简单起见,所述其他部件未在图8中示出。

管理计算子系统108可包括多核处理器902、l1/l2高速缓存904、网络接口单元906、专用存储器908、外围设备910和计算机可读存储介质912。

多核处理器902可包括两个或更多个处理器核,诸如的a57。在一些实施方案中,可使用单核处理器来代替多核处理器902。l1/l2高速缓存904可位于多核处理器902内部或外部,并且可被所有处理器核共享。多核处理器902可被配置来执行多个指令,所述多个指令可存储在计算机可读存储介质912上。例如,计算机可读介质可包括指令,所述指令用于将soc(例如,soc102)配置在多种模式中的一种模式(例如,第一模式、第二模式或第三模式)下操作。计算机可读存储介质912可以是非暂时性的。在一些实施方案中,计算机可读存储介质可包括但不限于:参数随机存取存储器(pram)、sram、dram、ram、只读存储器(rom)、电可擦可编程只读存储器(eeprom)、闪存或其他存储器技术、光盘(cd)-rom、数字视频光盘(dvd)或其他光存储设备、磁带盒、磁带、磁盘存储设备或其他磁存储设备或者可用来存储期望的信息并且可由多核处理器902访问的任何其他介质。在一些实施方案中,计算机可读存储介质912可以是外围设备910的一部分。l1/l2高速缓存904可以是用于临时数据存储的数据高速缓存。

网络接口单元906可允许管理计算子系统108连接到网络。例如,网络接口单元906可包括以太网mac(媒体访问控制),所述以太网mac(媒体访问控制)能够使管理计算子系统108连接到诸如以太网的网络。在一些情况下,以太网mac可提供以太网端口以对接到用于连接到网络的phy(物理层)设备。在一些实施方案中,管理计算子系统108可通过网络与外部实体或系统通信,以确定用于配置soc的模式。

专用存储器908可包括专门供管理计算子系统108使用的存储器。专用存储器908可包括诸如随机存取存储器(例如,sram或dram)的易失性存储器。例如,管理计算子系统108可使用专用存储器908来临时存储数据。

外围设备910可包括管理计算子系统108的专用外围设备。在一些实施方案中,专用外围设备910中的一些可包括用于对soc102的不同子系统进行重新引导和功率管理的设备。例如,外围设备910可包括可信管理模块,所述可信管理模块包括引导固件,所述引导固件可在上电时执行以在开启其他子系统之前建立信任根。在一些实施方案中,可通过电压操纵、时钟操纵或任何其他合适的方法来提供功率管理。

在一些实施方案中,管理计算子系统108可被配置成基于模式来将网络计算子系统104或服务器计算子系统106的至少一些部分断电。例如,在一个实施方案中,在第一模式下,soc102可操作网络计算子系统104,并且因此可将服务器计算子系统106的至少一些部分(例如,可能不被利用的计算密集型逻辑)断电。类似地,在另一个实施方案中,在第二模式下,soc102可操作服务器计算子系统106,并且因此可将网络计算子系统104的至少一些部分(例如,可能不被利用的网络密集型逻辑)断电。

在一些实施方案中,管理计算子系统108可被配置为在整个soc202冷上电时首先运行。在一些情况下,管理计算子系统108可首先上电,以在其他子系统上电之前为其建立信任根。例如,网络计算子系统104和服务器计算子系统106的引导进程可在管理计算子系统108的核心引导下被分层地考虑。在一些实施方案中,随后将在网络计算子系统104和服务器计算子系统106上运行的软件可被管理计算子系统108认证为已使用与主机系统114或由主机系统114提供的具体服务相关联的专用密钥进行了签名。这可允许网络计算子系统104和服务器计算子系统106两个进程通过可信和独立的引导装载程序进行引导。

在一些实施方案中,管理计算子系统108可用单独的复位线来进行复位/重新引导,而不影响网络计算子系统104和服务器计算子系统106二者的有效操作。

网络i/o子系统210可包括总线接口单元1002、网络接口单元1004和i/o外围设备单元1006。

总线接口单元1002可包括用于与内部或外部部件通信的一个或多个总线接口。例如,总线接口单元1002可包括与主机系统110通信的第一接口,例如,接口236。在一些实施方案中,第一接口可以是pcie接口。例如,总线接口单元1002可包括一个或多个pcie端口以连接到其他pcie端口。总线接口单元1002可包括根复合体(rc)端口和端点端口(ep)。在一些实施方案中,网络计算子系统104可使用接口236通过网络i/o子系统210中的pcie端口和主机系统110中的pcie端口与主机系统110通信。在一些实施方案中,在第一模式下,soc102被配置来在主机系统110中的pcie设备上操作为网络计算子系统104。总线接口单元1002可包括连接服务器计算子系统106的第二接口,例如,接口234。例如,接口234可以是pcie接口,并且总线接口单元1002可通过pcie接口连接到服务器i/o子系统224中的pcie端口。

网络接口单元1004可包括连接到网络的第三接口。在一些实施方案中,网络接口单元1004可包括一个或多个以太网mac(例如,10/25/40/50gb/s)以连接到以太网网络。在一些情况下,以太网mac可提供以太网端口,所述以太网端口用于对接到phy(物理层)设备以连接到网络。

i/o外围设备单元1006可包括一个或多个外围设备。例如,i/o外围设备单元1006可包括一个或多个外围设备,诸如uart、i2c、gpio、sata控制器、serdes(串行化-解串行化)接口等。

服务器i/o子系统224可包括总线接口单元1102、网络接口单元1104和i/o外围设备单元1106。

总线接口单元1102可包括用于与内部或外部部件通信的一个或多个总线接口。例如,总线接口单元1102可包括与主机系统110通信的第一接口,例如,接口238。在一些实施方案中,第一接口可以是pcie接口。例如,总线接口单元1102可包括一个或多个pcie端口以连接到其他pcie端口。总线接口单元1102可包括根复合体(rc)端口和端点端口(ep)。在一些实施方案中,服务器计算子系统106可使用接口238通过服务器i/o子系统224中的pcie端口和主机系统110中的pcie端口与主机系统110通信。在一些实施方案中,在第二模式下,soc102被配置来在主机系统110中的pcie设备上操作服务器计算子系统106。总线接口单元1102可包括连接网络计算子系统104的第二接口,例如,接口234。例如,总线接口单元1102可通过pcie接口连接到网络i/o子系统210中的pcie端口。

网络接口单元1104可包括连接到网络的第三接口。在一些实施方案中,网络接口单元1104可包括一个或多个以太网mac(例如,10/25/40/50gb/s)以连接到以太网网络。在一些情况下,以太网mac可提供以太网端口,所述以太网端口用于对接到phy(物理层)设备以连接到网络。

i/o外围设备单元1106可包括一个或多个外围设备。例如,i/o外围设备单元1106可包括一个或多个外围设备,诸如uart、i2c、gpio、sata控制器、serdes(串行化-解串行化)接口等。在一些实施方案中,i/o外围设备单元906可包括与参考图10所论述的i/o外围设备单元1006不同类型和数量的i/o设备。例如,在一些情况下,与i/o外围设备单元1006相比,i/o外围设备单元1106可包括更多数量的sata控制器。在一些情况下,仅i/o外围设备单元1106可包括gpio,并且仅i/o外围设备单元1006可包括uart。

在本技术的实施方案中,共享资源子系统230可包括部件,所述部件可不包括进程状态。共享资源子系统230可包括存储器模块1202、随机生成器模块1204、通信邮箱1206和高速暂存存储器模块1208。

存储器模块1202可包括诸如闪存的非易失性存储器存储设备。例如,存储器模块1202可包括嵌入式多媒体控制器(emmc)或安全数字(sd)以提供低级闪存管理。在一些实施方案中,存储器模块1202可用于存储控制代码,例如,bios(基本输入/输出系统)、引导装载程序等。例如,存储器模块1202可包括可被两个计算子系统共享的代码。

随机生成器模块1204可被配置来生成随机数或符号的序列。例如,随机数可用于加密应用,诸如数据加密或任何此类应用。在一些实施方案中,随机生成器模块1204可用于生成随机数或序列,所述随机数或序列可由管理计算子系统108在上电或重新引导之后使用,以在将每个计算子系统加电之前对每个计算子系统进行认证。

通信邮箱1206可用于促进与两个子系统相关联的不同进程之间的通信。例如,通信邮箱1206可用作进程间通信模块,所述进程间通信模块用于交换诸如消息传送、同步、共享存储器和远程过程调用(rpc)的各种功能的数据。

高速暂存存储器模块1208可用于临时存储可由两个子系统使用的数据。在一些实施方案中,高速暂存存储器模块1208可包括高速存储器(例如,2mbsram),以存储用于快速检索的少量数据,例如,指令或中间值。

所公开技术的实施方案可提供用于操作片上系统(soc)的各种配置和模式。在所公开技术的不同实施方案中,soc可在第一模式下操作以仅提供联网服务,在第二模式下操作以仅提供计算服务或者在第三模式下操作以同时提供联网和计算服务。在一些实施方案中,第一计算子系统可被重新利用为第二计算子系统以提供高性能的联网服务或高性能的计算服务。在一些实施方案中,根据soc的操作所处于的模式,可重新配置的处理和存储器资源可被转向到第一计算子系统或第二计算子系统。在一些其他实施方案中,可将去配置的计算子系统的处理和存储器资源重新配置,以作为激活的计算子系统的资源来操作。因此,所公开技术的各种实施方案可允许有效地利用资源以提供高性能的联网服务或高性能的计算服务。此外,所公开技术的一些实施方案提供了包括多个soc的系统,其中第一soc可在第一模式下被配置为网络处理器,并且第二soc可在第二模式下被配置为服务器。

图13示出了根据至少一个示例性实施方案的本文描述的特征和系统的示例性架构,其包括通过一个或多个网络连接的一个或多个服务提供商计算机和/或用户设备。图1-12中所论述的设备可使用图13中描述的计算设备的一个或多个部件,或者可表示图13中描述的一个或多个计算设备。在架构1300中,一个或多个用户1302可通过一个或多个网络1308利用用户计算设备1304(1)-(n)(统称为用户设备1304)来访问应用1306(例如,web浏览器或移动设备应用)。在一些方面,应用1306可由计算资源服务或服务提供商托管、管理和/或提供。一个或多个服务提供商计算机1310可提供本机应用,所述本机应用被配置来在用户1302可以与之互动的用户设备1304上运行。在一些示例中,服务提供商计算机1310可提供计算资源,诸如但不限于:客户端实体、低延迟数据存储、持久数据存储、数据访问、管理、虚拟化、基于云的软件解决方案、电子内容性能管理等。服务提供商计算机1310还可操作来向用户(1302)提供web托管、计算机应用开发和/或实现平台、前述描述的组合等。在一些示例中,服务提供商计算机1310可与一个或多个第三方计算机1312通信。

在一些示例中,网络1308可包括许多不同类型的网络(诸如有线网络、互联网、无线网络、蜂窝网络和其他专用和/或公共网络)中的任何一种或组合。尽管所示出的示例表示用户1302通过网络1308访问应用1306,但是所描述的技术可同样适用于以下情况:其中用户1302通过固定电话、通过信息亭或以任何其他方式经由用户设备1304与服务提供商计算机1310进行互动。还应注意,所描述的技术可应用于其他客户端/服务器布置(例如,机顶盒等)以及非客户端/服务器布置(例如,本地存储的应用等)中。

如以上所简要描述的,应用1306可允许用户1302与服务提供商计算机1310进行互动,以访问web内容(例如,网页、音乐、视频等)。可能布置在服务器群集中或作为服务器场布置的服务提供商计算机1310可托管应用1306和/或基于云的软件服务。其他服务器架构也可用于托管应用1306。应用1306可能能够处理来自许多用户1302的请求,并且作为响应来服务各种项目网页。应用1306可提供支持用户互动的任何类型的网站,包括社交网站、在线零售商、信息站点、博客站点、搜索引擎站点、新闻和娱乐站点等。如上所述,所描述的技术可类似地在应用1306之外得到实现,诸如使用在用户设备1304上运行的其他应用。

用户设备1304可以是任何类型的计算设备,诸如但不限于:移动电话、智能手机、个人数字助理(pda)、膝上型计算机、台式计算机、瘦客户端设备、平板pc、电子书(e-book)阅读器等。在一些示例中,用户设备1304可通过网络1308或通过其他网络连接与服务提供商计算机1310通信。此外,用户设备1304可以是由服务提供商计算机1310管理、控制的分布式系统的一部分,或以其他方式是服务提供商计算机1310的分布式系统的一部分(例如,与服务提供商计算机1310集成的控制台设备)。

在一个说明性配置中,用户设备1304可包括至少一个存储器1314和一个或多个处理单元(或处理器)1316。处理器1316可在硬件、计算机可执行指令、固件或其组合中适当地实现。处理器1316的计算机可执行指令或固件实现方式可包括以任何合适的编程语言编写的用于执行所描述的各种功能的计算机可执行或机器可执行指令。用户设备1304还可包括用于提供和/或记录与用户设备1304相关联的地理位置信息的地理定位设备(例如,全球定位系统(gps)设备等)。

存储器1314可存储可在处理器1316上加载和执行的程序指令,以及在执行这些程序期间产生的数据。根据用户设备1304的配置和类型,存储器1314可以是易失性的(诸如随机存取存储器(ram))和/或非易失性的(诸如只读存储器(rom)、闪存等)。用户设备1304还可包括另外的可移除存储设备和/或不可移除存储设备,其包括但不限于磁存储设备、光盘和/或带存储设备。磁盘驱动器和其相关联的计算机可读介质可提供对计算机可读指令、数据结构、程序模块和其他用于计算设备的数据的非易失性存储。在一些实现方式中,存储器1314可包括多种不同类型的存储器,诸如静态随机存取存储器(sram)、动态随机存取存储器(dram)或rom。

转到存储器1314的更详细的内容,存储器1314可包括操作系统和用于实现本文所公开的特征的一个或多个应用程序或服务(至少包括用户提供的输入元件或电子服务网页,诸如通过浏览器应用1306或专用应用(例如,智能手机应用、平板应用等))。浏览器应用1306可被配置来接收、存储和/或显示用于与服务提供商计算机1310进行互动的网站或其他接口。此外,存储器1314可存储访问凭证和/或其他用户信息(诸如但不限于用户id、密码和/或其他用户信息)。在一些示例中,用户信息可包括用于认证帐户访问请求的信息,诸如但不限于设备id、小型文本文件(cookie)、ip地址、位置等。此外,用户信息可包括用户提供的对安全问题的响应或用户设备1304获得的地理位置。

在一些方面,服务提供商计算机1310还可以是任何类型的计算设备,诸如但不限于:移动电话、智能手机、个人数字助理(pda)、膝上型计算机、台式计算机、服务器计算机、瘦客户端设备、平板pc等。此外,应注意,在一些实施方案中,服务提供商计算机1310由实现在托管的计算环境中的一个或多个虚拟机来执行。托管的计算环境可包括一个或多个快速提供和发布的计算资源,所述计算资源可包括计算、联网和/或存储设备。托管的计算环境还可被称为云计算环境。在一些示例中,服务提供商计算机1310可通过网络1308或通过其他网络连接与用户设备1304和/或其他服务提供商通信。服务提供商计算机1310可包括一个或多个服务器,可能布置在群集中,作为服务器场,或者作为彼此不相关联的单个服务器。这些服务器可被配置来将本文描述的关键字分类和评级特征服务实现为集成的分布式计算环境的一部分。

在一个说明性配置中,服务提供商计算机1310可包括至少一个存储器1318和一个或多个处理单元(或处理器)1320。处理器1320可在硬件、计算机可执行指令、固件或其组合中适当地实现。处理器1320的计算机可执行指令或固件实现方式可包括以任何合适的编程语言编写的用于执行所描述的各种功能的计算机可执行或机器可执行指令。

在一些情况下,硬件处理器1320可以是单核处理器或多核处理器。多核处理器可包括同一个处理器内的多个处理单元。在一些实施方案中,多核处理器可共享某些资源,诸如总线和多核之间的第二或第三级高速缓存。在一些情况下,单核或多核处理器中的每个核还可包括多个执行中的逻辑处理器(或线程)。在这种(支持多个逻辑处理器的)核中,还可共享执行流水线的若干级以及还有较低级的高速缓存。

存储器1318可存储可在处理器1320上加载和执行的程序指令,以及在执行这些程序期间产生的数据。根据服务提供商计算机1310的配置和类型,存储器1318可以是易失性的(诸如ram)和/或非易失性的(诸如rom、闪存等)。服务提供商计算机1310或服务器还可包括附加存储设备1322,所述附加存储设备1322可包括可移除存储设备和/或不可移除存储设备。附加存储设备1322可包括但不限于磁存储设备、光盘和/或带存储设备。磁盘驱动器和其相关联的计算机可读介质可提供对计算机可读指令、数据结构、程序模块和其他用于计算设备的数据的非易失性存储。在一些实现方式中,存储器1318可包括多种不同类型的存储器,诸如sram、dram或rom。

可移除和不可移除的存储器1318、附加存储设备1322均为计算机可读存储介质的示例。例如,计算机可读存储介质可包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的易失性或非易失性的、可移除或不可移除的介质。存储器1318和附加存储设备1322均为计算机存储介质的示例。可存在于服务提供商计算机1310中的另外类型的计算机存储介质可包括但不限于:pram、sram、dram、ram、rom、eeprom、闪存或其他存储器技术、cd-rom、dvd或其他光存储设备、磁带盒、磁带、磁盘存储设备或其他磁存储设备或者可用来存储期望的信息并且可由服务提供商计算机1310访问的任何其他介质。任何上述介质的组合也应包括在计算机可读介质的范围内。

替代地,计算机可读通信介质可包括计算机可读指令、程序模块或在诸如载波或其他传输的数据信号内传输的其他数据。然而,如本文所使用的,计算机可读存储介质不包括计算机可读通信介质。

服务提供商计算机1310还可包含通信连接1324,所述通信连接1324允许服务提供商计算机1310与存储的数据库、另一计算设备或服务器、用户终端和/或网络1308上的其他设备通信。服务提供商计算机1310还可包括i/o设备1326,诸如键盘、鼠标、笔、语音输入设备、触摸输入设备、显示器、扬声器、打印机等。

存储器1318可包括操作系统1328,一个或多个数据存储区1330和/或用于实现本文所公开的特征的一个或多个应用程序或服务(任选地包括管理计算子系统模块1332、网络计算子系统模块1334和服务器计算子系统模块1336)。本文描述的模块可以是软件模块、硬件模块或其合适的组合。如果模块是软件模块,那么模块可体现在非暂时性计算机可读介质上,并且由本文描述的任何计算机系统中的处理器进行处理。在一些实施方案中,重新参照图2,管理计算子系统模块1332可包括管理计算子系统108的功能,网络计算子系统模块1334可包括网络计算子系统104的功能并且服务器计算子系统模块1336可包括服务器计算子系统106的功能。应注意,所描述的进程和架构可在任何用户互动之前以实时或异步模式来执行。模块可以图13中所提出的方式进行配置,和/或本文描述的功能可由存在的一个或多个模块提供,因为本文描述的单独的模块和/或模块功能可遍布在多个模块上。

图14示出了根据各种实施方案的用于实现各方面的示例性环境1400的方面。如将了解的,尽管出于解释目的使用基于web的环境,但是可视情况使用不同环境来实现各种实施方案。环境包括电子客户端设备1402,所述电子客户端设备1402可包括可操作来在适当网络1404上发送和接收请求、消息或信息并且将信息传送回设备用户的任何适当设备。此类客户端设备的示例包括个人计算机、手机、手持式消息传输设备、膝上型计算机、机顶盒、个人数据助理、电子书阅读器等。网络可包括任何适当的网络,所述适当的网络包括内联网、互联网、蜂窝网络、局域网或任何其他此类网络或其组合。用于这种系统的部件可至少部分地取决于选定的网络和/或环境的类型。用于通过这种网络通信的协议和部件是众所周知的,且本文将不详细论述。通过网络进行的通信可通过有线或无线的连接及其组合来实现。在这个示例中,网络包括互联网,因为环境包括用于接收请求并且响应于所述请求而服务内容的web服务器1406,然而对于其他网络来说,可使用服务类似目的替代设备,如本领域普通技术人员所明白的。

说明性环境包括至少一个应用服务器1408和数据存储区1410。应理解,可存在可链接起来或以其他方式来配置的若干应用服务器、层或其他元件、进程或部件,所述应用服务器、层或其他元件、进程或部件可互动来执行诸如从适当的数据存储区获得数据的任务。如本文所使用的,术语“数据存储区”指代能够存储、访问和检索数据的任何设备或设备组合,所述设备或设备组合可包括任何标准、分布式或集群式环境中的任何组合和任何数目的数据服务器、数据库、数据存储设备和数据存储介质。应用服务器可包括任何适当的硬件和软件,所述硬件和软件视执行客户端设备的一个或多个应用的方面的需要与数据存储区集成、处理应用的大多数数据访问和业务逻辑。应用服务器提供与数据存储区协作的访问控制服务,并且能够生成有待于传送到用户的诸如文本、图形、音频和/或视频的内容,在这个示例中,所述内容可以超文本标记语言(“html”)、可扩展标记语言(“xml”)或另一种适当结构化语言的形式由web服务器向用户提供。所有请求和响应的处理以及客户端设备1402与应用服务器1408之间的内容递送可由web服务器来处理。应理解,web服务器和应用服务器不是必要的,并且仅仅是示例性部件,因为本文所论述的结构化代码可在如本文其他地方所论述的任何适当的设备或主机上执行。

数据存储区1410可包括若干单独的数据表、数据库或其他数据存储机构和介质,以用于存储与具体方面相关的数据。举例来说,所示出的数据存储区包括用于存储生产数据1412和用户信息1416的机构,其可用于服务生产侧的内容。数据存储区还被示出为包括用于存储日志数据1414的机构,其可用于报告、分析或其他此类目的。应理解,可能存在可能需要存储在数据存储区中的许多其他方面,诸如页面图像信息和访问权信息,所述方面可视情况存储在上文所列机构中的任何一个中或存储在数据存储区1410中的附加机构中。数据存储区1410可通过与它相关联的逻辑来操作,以从应用服务器1408接收指令,并且响应于所述指令而获得、更新或以其他方式处理数据。在一个示例中,用户可提交针对某种类型的项目的搜索请求。在这种情况下,数据存储区可访问用户信息以核实用户的身份,并且可访问目录详细信息以获得关于所述类型的项目的信息。随后,可将信息诸如以网页上的结果列表的形式返回给用户,用户能够通过用户设备1402上的浏览器来查看所述网页。可在专用浏览器页面或窗口中查看感兴趣的具体项目的信息。

每个服务器通常将包括提供用于所述服务器的一般管理和操作的可执行程序指令的操作系统,并且通常将包括存储指令的计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等),所述指令在由服务器的处理器执行时允许服务器执行其预期的功能。操作系统的合适的实现方式和服务器的一般功能是众所周知的或可商购获得的,并且易于由本领域普通技术人员实现,尤其是根据本文中的公开内容来实现。

在一个实施方案中,环境是分布式计算环境,所述分布式计算环境利用通过通信链路、使用一个或多个计算机网络或直接连接来互连的若干计算机系统和部件。然而,本领域普通技术人员应了解,这种系统可在具有比图14中所示的部件更少或更多数量的部件的系统中同样顺利地操作。因此,对图14中的系统1400的描绘本质上应视为说明性的,并且不限制本公开的范围。

各种实施方案还可在各种各样的操作环境中实现,所述操作环境在一些情况下可包括一个或多个用户计算机、计算设备或者可用于操作多个应用中的任何一个的处理设备。用户或客户端设备可包括多个通用个人计算机中的任何一个,诸如运行标准操作系统的台式计算机或膝上型计算机,以及运行移动软件并且能够支持多个联网协议和消息传输协议的蜂窝设备、无线设备和手持式设备。这种系统还可包括多个工作站,所述工作站运行多种可商购获得的操作系统以及用于诸如开发和数据库管理目的的其他已知应用中的任一个。这些设备还可包括其他电子设备,诸如虚拟终端、瘦客户端、游戏系统以及能够通过网络通信的其他设备。

大多数实施方案利用本领域技术人员将熟悉的至少一个网络来使用多种可商购获得的协议中的任一个来支持通信,诸如传输控制协议/互联网协议(“tcp/ip”)、开放系统互连(“osi”)、文件传送协议(“ftp”)、通用即插即用(“upnp”)、网络文件系统(“nfs”)、通用互联网文件系统(“cifs”)和appletalk。网络可以是例如局域网、广域网、虚拟专用网、互联网、内联网、外联网、公共交换电话网、红外网络、无线网络以及上述网络的任何组合。

在利用web服务器的实施方案中,web服务器可运行多种服务器或中间层级应用中的任何一个,包括超文本传送协议(“http”)服务器、ftp服务器、公共网关接口(“cgi”)服务器、数据服务器、java服务器和业务应用服务器。服务器还能够响应来自用户设备的请求而执行程序或脚本,诸如通过执行可实现为以任何编程语言(诸如c、c#或c++)或任何脚本语言(诸如perl、python或tcl)及其组合编写的一个或多个脚本或程序的一个或多个web应用。服务器还可包括数据库服务器,包括但不限于可从商购获得的那些数据库服务器。

环境可包括如上文论述的多种数据存储区以及其他存储器和存储介质。这些可驻留在多种位置中,诸如在一个或多个计算机本地(和/或驻留在一个或多个计算机中)的存储介质上,或者远离网络上的计算机中的任何一个或所有计算机的存储介质上。在一组具体实施方案中,信息可驻留在本领域技术人员熟悉的存储区域网(“san”)中。类似地,用于执行属于计算机、服务器或其他网络设备的功能的任何必要的文件可视情况本地和/或远程存储。在系统包括计算机化设备的情况下,每个这种设备可包括可通过总线电耦合的硬件元件,所述元件包括例如至少一个中央处理单元(“cpu”)、至少一个输入设备(例如,鼠标、键盘、控制器、触摸屏或小键盘)和至少一个输出设备(例如,显示设备、打印机或扬声器)。这种系统还可包括一个或多个存储设备,诸如磁盘驱动器、光存储设备和固态存储设备(诸如随机存取存储器(“ram”)或只读存储器(“rom”)),以及可移除介质设备、存储卡、闪存卡等。

这类设备还可包括计算机可读存储介质读取器、通信设备(例如,调制解调器、网卡(无线或有线)、红外通信设备等)以及工作存储器,如上文所描述的。计算机可读存储介质读取器可与计算机可读存储介质连接或被配置来接收计算机可读存储介质,所述计算机可读存储介质表示远程、本地、固定和/或可移除存储设备以及用于暂时和/或更永久地包含、存储、传输和检索计算机可读信息的存储介质。系统和各种设备通常也将包括位于至少一个工作存储器设备内的多个软件应用、模块、服务或其他元件,包括操作系统和应用程序,诸如客户端应用或web浏览器。应了解,替代性实施方案可具有上文描述的实施方案的众多变型。例如,也可使用定制硬件,和/或特定元件可以硬件、软件(包括可移植软件,诸如小应用)或两者来实现。此外,可采用与其他计算设备诸如网络输入/输出设备的连接。

用于包含代码或部分代码的存储介质和计算机可读介质可包括本领域已知或已使用的任何适当介质,包括存储介质和通信介质,诸如但不限于以用于存储和/或传输信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术所实现的易失性和非易失性、可移除和不可移除的介质,包括ram、rom、电可擦除可编程只读存储器(“eeprom”)、闪存或其他存储器技术、光盘只读存储器(“cd-rom”)、数字通用光盘(dvd)或其他光存储设备、磁带盒、磁带、磁盘存储设备或其他磁存储设备或者可用来存储期望的信息并且可由系统设备访问的任何其他介质。基于本文所提供的公开内容和教义,本领域普通技术人员将了解实现各种实施方案的其他方式和/或方法。

因此,应以说明性意义而不是限制性意义来理解本说明书和附图。但是,将明显的是在不脱离如在权利要求书中阐述的本公开的更宽广精神和范围的情况下,可以对其做出各种修改和改变。

本公开的实施方案可鉴于以下条款来进行描述:

条款1.一种片上系统(soc),其包括:

网络计算子系统,其用于管理主机系统的网络流量;以及

服务器计算子系统,其用于提供计算服务,

其中所述soc被配置来在多种模式中的一种模式下操作,并且其中

在第一模式下,所述soc被配置来操作所述网络计算子系统,

在第二模式下,所述soc被配置来操作所述服务器计算子系统,以及

在第三模式下,所述soc被配置来同时操作所述网络计算子系统和所述服务器计算子系统。

条款2.如条款1所述的soc,其中在所述第一模式下,所述soc还被配置来将所述服务器计算子系统重新利用为第二网络计算子系统。

条款3.如任一前述条款所述的soc,其中在所述第二模式下,所述soc还被配置来将所述网络计算子系统重新利用为第二服务器计算子系统。

条款4.如任一前述条款所述的soc,所述soc还包括可重新配置的处理和存储器资源,其中所述soc还被配置来将所述可重新配置的处理和存储器资源的至少一部分进行分配,以在所述第二模式下作为所述服务器计算子系统的资源来操作,或者在所述第一模式下作为所述网络计算子系统的资源来操作。

条款5.一种片上系统(soc),其被配置来:

在多种模式中的一种模式下操作,其中

在第一模式下,所述soc被配置来操作网络计算子系统以管理网络流量,

在第二模式下,所述soc被配置来操作服务器计算子系统以提供计算服务,以及

在第三模式下,所述soc被配置来同时操作所述网络计算子系统和所述服务器计算子系统。

条款6.如条款5所述的soc,其中在所述第一模式下,所述soc被配置来在主机系统中的外围部件高速互连(pcie)设备上操作所述网络计算子系统。

条款7.如条款5或6所述的soc,其中在所述第二模式下,所述soc被配置来在主机系统中的外围部件高速互连(pcie)设备上操作所述服务器计算子系统。

条款8.如条款5-7中的任一项所述的soc,其中在所述第二模式下,所述soc被配置来作为主机系统中的通用处理器来操作。

条款9.如条款5-8中的任一项所述的soc,其中在所述第一模式下,所述soc还被配置来禁用所述服务器计算子系统并将与所述服务器计算子系统相关联的处理和存储器资源重新配置,以作为所述网络计算子系统的资源来操作。

条款10.如条款5-9中的任一项所述的soc,其中在所述第一模式下,所述soc还被配置来将所述服务器计算子系统重新利用为第二网络计算子系统。

条款11.如条款5-10中的任一项所述的soc,其中在所述第二模式下,所述soc还被配置来禁用所述网络计算子系统并将与所述网络计算子系统相关联的处理和存储器资源重新配置,以作为所述服务器计算子系统的资源来操作。

条款12.如条款5-11中的任一项所述的soc,其中在所述第二模式下,所述soc还被配置来将所述网络计算子系统重新利用为第二服务器计算子系统。

条款13.如条款5-12中的任一项所述的soc,所述soc包括可重新配置的处理和存储器资源,其中所述soc还被配置来在所述第一模式下将所述可重新配置的处理和存储器资源的至少一部分分配给所述网络计算子系统。

条款14.如条款5-13中的任一项所述的soc,所述soc包括可重新配置的处理和存储器资源,其中所述soc还被配置来在所述第二模式下将所述可重新配置的处理和存储器资源的至少一部分分配给所述服务器计算子系统。

条款15.如条款5-14中的任一项所述的soc,其中在所述第三模式下,所述soc还被配置成将所述服务器计算子系统作为主机系统来操作,并且操作所述网络计算子系统以管理所述主机系统的网络流量。

条款16.如条款5-15中的任一项所述的soc,所述soc包括管理计算子系统,所述管理计算子系统被配置来将所述soc配置成处于所述多种模式中的一种模式下。

条款17.一种片上系统(soc)的系统,其包括:

多个soc,所述多个soc包括第一soc和第二soc,所述第二soc通信地耦合到所述第一soc,其中所述第一soc被配置来在多种模式中的一种模式下操作,并且其中

在第一模式下,所述第一soc被配置来操作第一网络计算子系统,

在第二模式下,所述第一soc被配置来操作第一服务器计算子系统,以及

在第三模式下,所述第一soc被配置来同时操作所述第一网络计算子系统和所述第一服务器计算子系统。

条款18.如条款17所述的系统,其中所述第二soc也被配置来在所述多种模式中的一种模式下操作,并且其中

在所述第一模式下,所述第二soc被配置来操作第二网络计算子系统,

在所述第二模式下,所述第二soc被配置来操作第二服务器计算子系统,以及

在所述第三模式下,所述第二soc被配置来同时操作所述第二网络计算子系统和所述第二服务器计算子系统。

条款19.如条款18所述的系统,其中所述第一soc被配置成处于所述第一模式下,其中所述第一服务器计算子系统被重新利用为第三网络计算子系统,并且所述第二soc被配置成处于所述第二模式下,其中所述第二网络计算子系统被重新利用为第三服务器计算子系统。

条款20.如条款17-19中的任一项所述的系统,其中所述第二soc是通用soc。

其他变型在本公开的精神内。因此,虽然所公开技术易受各种修改和替代构造的影响,但在附图中示出并且在上文详细描述了其某些说明的实施方案。然而,应理解,并不意图将本公开限于所公开的一种或多种具体形式,相反地,意图涵盖归属于本公开的精神和范围内的所有修改、替代构造和等效物,如所附权利要求书中所限定的。

在描述所公开实施方案的上下文中(尤其是在以下权利要求书的上下文中),术语“一个(a/an)”和“所述”以及类似指称对象的使用应解释为涵盖单数和复数两者,除非本文另外指示或上下文明显矛盾。术语“包含(comprising)”、“具有(having)”、“包括(including)”和“含有(containing)”应解释为开放式的术语(即,意味着“包括但不限于”),除非另外指出。术语“连接(connected)”应解释为部分地或全部地包含在内、附接到或接合在一起,即使存在介入物也是如此。除非本文另外指示,否则本文中对值范围的列举仅仅意图用作单独地表示归属于所述范围内的各单独值的速记方法,并且犹如本文单独描述地那样将各单独值并入到本说明书中。可按任何适合的顺序来执行本文所述的全部方法,除非本文另外指明或上下文明显矛盾。本文所提供的任何以及所有示例或示例性语言(例如,“诸如”)的使用仅意图更好地说明本公开的实施方案,并且除非另外要求,否则不会对本公开的范围施加限制。本说明书中的语言不应解释为将任何非要求保护的要素指示为实践本公开所必需。

除非另外特别说明,否则诸如短语“x、y或z中的至少一个”的析取语言在上下文中意图被理解为通常用于描述项目、项等可以是x、y或z或者它们的任何组合(例如,x、y和/或z)。因此,此类析取语言一般并非旨在并且不应该暗示某些实施方案需要x中的至少一个、y中的至少一个或z中的至少一个各自存在。

本文中描述了本公开的优选实施方案,包括发明人已知用于执行本公开的最佳模式。阅读前述描述后,那些优选实施方案的变型对于本领域普通技术人员来说可变得明显。发明人希望技术人员视情况采用此类变体,并且发明人意图以不同于本文所特别描述的方式的其他方式来实践本公开。因此,本公开包括在所附的适用法律允许的权利要求书中叙述的主题的所有修改和等效物。此外,除非本文另有指示或以其他方式与上下文明显矛盾,否则本公开涵盖其所有可行变型中的上述元素的任何组合。

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