包括I/O转向引擎的片上系统的制作方法

文档序号:11336390阅读:279来源:国知局
包括I/O转向引擎的片上系统的制造方法与工艺



背景技术:

许多组织和公司通过多个通信网络提供计算服务。例如,计算服务可包括诸如web存储的web服务或虚拟服务器,其可通过互联网提供给不同的客户端。在一些情况下,可在需要的基础上将虚拟服务器出租给客户端。

一般来说,系统可包括多个子系统来执行各种不同的功能。在大多数情况下,每个子系统可利用固定的计算和i/o资源来执行预期的功能。因此,每个子系统的i/o带宽可受到分配到的i/o资源的限制。因此,每个子系统可被限制为基于分配到的计算和i/o资源来提供一定级别的性能。

附图简述

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

图1示出了根据所公开技术的一些实施方案的包括多个计算子系统的系统的框图。

图2示出了根据技术的一些实施方案的系统的框图。

图3示出了根据技术的某些实施方案的片上系统(soc)的高级别框图。

图4a示出了根据技术的某些实施方案的包括soc的示例性系统,所述soc被配置来包括将加速器转向到两个计算子系统。

图4b示出了根据技术的某些实施方案的包括soc的示例性系统,所述soc被配置来包括将加速器仅转向到网络计算子系统。

图4c示出了根据技术的某些实施方案的包括soc的示例性系统,所述soc被配置来包括将加速器仅转向到服务器计算子系统。

图5示出了根据技术的某些实施方案的具有soc的示例性系统,所述soc被配置来仅包括服务器计算子系统。

图6示出了根据技术的某些实施方案的具有soc的示例性系统,所述soc被配置来仅包括网络计算子系统。

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

图8示出了根据技术的某些实施方案的i/o转向引擎的框图。

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

图10示出了根据所公开技术的一些实施方案的加速器子系统的框图。

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

图12示出了根据技术的某些实施方案的第二i/o子系统的框图。

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

图14示出了根据技术的某些实施方案的流程图。

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

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

详细描述

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

一般来说,计算系统可包括一个或多个计算子系统来执行若干不同的功能。在一些情况下,系统可能正在运行多个虚拟服务器实例,所述虚拟服务器实例可能需要更多网络带宽以容纳多个应用。然而,在大多数情况下,每个计算子系统可包括固定数量的计算和i/o资源。因此,每个计算子系统可被限制为基于分配到的i/o资源来提供一定级别的性能。在一些情况下,系统上的i/o资源可能未被有效地利用。例如,如果计算子系统不起作用,那么分配给该计算子系统的i/o资源可能不会被其他计算子系统使用。这可能导致系统级的i/o资源未能得到充分利用。

所公开技术的实施方案可提供在片上系统(soc)上将一个或多个i/o资源转向到多于一个计算子系统。例如,soc可通信地耦合到主机系统(例如,x86服务器),以提供诸如流量监测、流量整形、计算等的各种服务。在一些实施方案中,soc可包括多个计算子系统来执行各种功能。例如,根据某些实施方案,soc可包括提供计算服务的服务器计算子系统以及至少管理主机系统和服务器子系统的网络流量的网络计算子系统。soc可包括:第一i/o子系统,其包括多个第一i/o资源;和第二i/o子系统,其包括多个第二i/o资源。在所公开技术的实施方案中,转向引擎可被配置来将第一i/o资源中的至少一个转向到网络计算子系统或服务器计算子系统,并且将第二i/o资源中的至少一个转向到网络计算子系统或服务器计算子系统。例如,soc可配置有一系列配置,以执行可能需要重新配置不同计算子系统的不同功能(例如,高性能联网、高性能计算等)。所公开技术的实施方案可将i/o资源相应地转向到不同的子系统,以匹配每个配置所需的i/o资源,从而允许更有效地使用每个计算子系统的i/o资源并增加系统的吞吐量。

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

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

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

一般来说,soc上的每个计算子系统可被设计有固定数量的处理和存储器资源。在大多数情况下,固定数量的i/o资源可通过硬件设计分配给每个计算子系统。在某些情况下,当soc被配置来包括不对称的计算子系统(例如,一个计算子系统具有比其他计算子系统更多的处理和存储器资源)时,每个计算子系统可受到其分配到的i/o资源的限制。因此,由soc提供的网络带宽和服务器带宽可受到每个计算子系统的固定i/o带宽的限制。

此外,在一些情况下,根据soc的配置,可导致一些i/o资源未能得到充分利用。例如,如果soc被配置来仅提供服务器计算服务,那么可能不会利用网络i/o资源。类似地,如果soc被配置来仅提供网络计算服务,那么可能不会利用服务器i/o资源。因此,可能未能有效地利用soc的i/o带宽,从而减少了系统的吞吐量。

所公开技术的实施方案可提供在片上系统(soc)上将i/o资源转向到多于一个计算子系统。在一些实施方案中,计算子系统可包括具有一个或多个处理核的子系统。soc可通信地耦合到主机系统(例如,x86服务器),以提供诸如流量监测、流量整形、计算等的各种服务。在技术的一些实施方案中,soc可包括多个子系统,诸如提供计算服务的服务器计算子系统、至少管理主机系统和服务器计算子系统的网络流量的网络计算子系统、管理资源的管理计算子系统、具有多个第一i/o资源的第一i/o子系统、具有多个第二i/o资源的第二i/o子系统以及包括多个加速器的加速器子系统。在某些实施方案中,可使用单个i/o子系统来管理网络计算子系统和服务器计算子系统的i/o请求。

在技术的某些实施方案中,i/o转向引擎可被配置来将多个第一i/o资源中的至少一个转向到服务器计算子系统或网络计算子系统,并且将多个第二i/o资源中的至少一个转向到服务器计算子系统或网络计算子系统。在一些实施方案中,i/o转向引擎可基于管理计算子系统提供的转向配置使i/o资源转向。在一些实施方案中,管理计算子系统可将转向配置提供给i/o转向引擎,以在加电时或在运行时动态地使一个或多个i/o资源转向。i/o转向引擎可耦合到第一i/o子系统、第二i/o子系统、网络计算子系统和服务器计算子系统。在某些情况下,当soc被配置来包括不对称的计算子系统(例如,一个计算子系统具有比其他计算子系统更多的处理和存储器资源)时,i/o转向引擎可提供将适当的i/o资源转向到每个计算子系统的灵活性。在一些其他情况下,当soc被配置来仅提供联网服务时,i/o转向引擎可将第一和第二i/o资源转向到网络计算子系统,并且当soc被配置来仅提供服务器计算服务时,i/o转向引擎可将第一和第二i/o资源转向到服务器计算子系统。在技术的某些实施方案中,i/o转向引擎还可被配置来将加速器中的至少一个转向到服务器计算子系统或网络计算子系统。例如,在一些情况下,当soc被配置来仅提供联网服务时,i/o转向引擎可将所有i/o资源和加速器转向到网络计算子系统。

根据所公开技术的某些实施方案,管理计算子系统可将转向配置提供给i/o转向引擎,以将i/o资源和加速器转向到适当的计算子系统。在一些实施方案中,管理计算子系统可确定网络计算子系统和服务器计算子系统都可起作用,并且可将转向配置提供给i/o转向引擎,以将第一i/o资源转向到网络计算子系统并将第二i/o资源转向到服务器计算子系统。在一些实施方案中,管理计算子系统可基于对两个计算子系统进行的处理和存储器资源的分配来将转向配置提供给两个计算子系统。在某些实施方案中,管理计算子系统可确定服务器计算子系统不能起作用,并且可将转向配置提供给i/o转向引擎,以将第一i/o资源和第二i/o资源转向到网络计算子系统。在某些实施方案中,管理计算子系统可确定网络计算子系统不能起作用,并且可将转向配置提供给i/o转向引擎,以将第一i/o资源和第二i/o资源转向到服务器计算子系统。在一些实施方案中,第一i/o资源和第二i/o资源的转向配置可以基于默认配置。在一些实施方案中,管理计算子系统可基于硬件配置(例如,引脚或熔丝)或软件配置(例如,软件寄存器的数据字段)来在加电时确定第一i/o资源和第二i/o资源的转向配置。在一些实施方案中,管理计算子系统可动态地确定转向配置,并在运行时将其提供给i/o转向引擎。例如,管理计算子系统可确定:与服务器计算子系统相比,网络计算子系统在特定时间处利用更多的计算资源。因此,在一些实现方式中,管理计算子系统可动态地更新转向配置,以将适当的i/o资源转向到网络计算子系统,以与网络计算子系统利用的计算资源相匹配。高速缓存一致结构桥接器可将每个配置的i/o资源映射到可与计算子系统相关联的物理层。

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

所公开技术的实施方案可提供将i/o资源转向到soc上的多于一个计算子系统的灵活性。更好地利用soc上的i/o资源的能力可使得主机系统为各种计算服务提供改进的网络和存储带宽。

尽管所公开技术的实施方案被描述并示出为使i/o资源在soc上的两个计算子系统之间转向,但是所公开技术的方面不限于使i/o资源仅在两个计算子系统之间转向。例如,在一些实现方式中,可使i/o资源在soc上的多个计算子系统(例如,多于两个)之间转向,而不偏离所公开技术的范围。

图1示出了可用于执行本文描述的实施方案的示例性系统100。一般来说,soc可包括i/o子系统,所述i/o子系统包括多个i/o资源。可使用i/o转向引擎将多个i/o资源中的一个或多个转向到多个计算子系统。

图1示出了被配置来与主机系统104进行通信的soc102。在一些情况下,主机系统104可向多个客户端提供多租户平台。例如,主机系统104可向不同的客户端提供服务,诸如云计算、云存储、分析、web服务、数据库、应用、部署服务、网站托管等。主机系统104可包括服务器(例如,x86服务器)。在一些实施方案中,主机系统104中的一个或多个处理器可连接到soc102上的套接字。

soc102可包括多个计算子系统,诸如第一计算子系统106、第二计算子系统108和第n计算子系统110。例如,在一些情况下,多个计算子系统可包括两个或更多个计算子系统。soc102还可包括i/o子系统114和i/o转向引擎112。i/o子系统114可使用接口116与主机系统104进行通信。接口116可以基于诸如外围部件高速互连(pcie)的标准接口。

在一些实施方案中,第一计算子系统106可被配置为网络计算子系统,并且第二计算子系统108可被配置为服务器计算子系统。例如,第一计算子系统106可被配置用于至少管理主机系统104的网络流量。在一些实施方案中,第一计算子系统106可执行与网络相关的功能,诸如网络流量整形、网络加速、网络存储处理等。在一些实施方案中,第二计算子系统108可被配置来提供计算服务。例如,计算服务可包括启动各种大小的虚拟机实例、将存储卷关联到虚拟机、数据处理等。

i/o子系统114可包括多个i/o资源。在一些实施方案中,多个i/o资源可包括i/o设备和用于内部和外部通信的各种i/o接口。例如,i/o子系统114可包括一个或多个以太网mac(介质访问控制)、pcie设备、uart(通用异步接收器/发送器)、i2c(集成电路互联)、gpio(通用输入/输出)、sata(串行ata)控制器、spi(串行外围接口)端口和任何其他合适的设备。

i/o转向引擎112可被配置来将多个i/o资源中的至少一个转向或引导到多个计算子系统中的一个或多个计算子系统。例如,在一些实施方案中,i/o转向引擎112可被配置来将i/o资源中的一个或多个转向到第一计算子系统106、第二计算子系统108或第一计算子系统106和第二计算子系统108二者。在一些实施方案中,i/o转向引擎可包括转向基体、交叉开关、网格、多路复用器、解复用器等。然而,可能存在i/o转向引擎的其他实现方式。

图2示出了可用于执行本文描述的实施方案的示例性系统200。一般来说,soc可包括i/o子系统,所述i/o子系统包括多个i/o资源,可使用i/o转向引擎将所述多个i/o资源转向到网络计算子系统或服务器计算子系统。

图2示出了被配置来通过接口116与主机系统104进行通信的soc102,如参考图1所论述的。soc102可包括网络计算子系统202、服务器计算子系统204、i/o子系统114、i/o转向引擎112和管理计算子系统206。在一些实施方案中,网络计算子系统202可以是第一计算子系统106,并且服务器计算子系统204可以是第二计算子系统108,如参考图1所论述的。

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

服务器计算子系统204可被配置来提供计算服务(例如,主机系统104的虚拟或物理资源)。例如,计算服务可包括根据需要启动各种大小的虚拟机实例、将存储卷关联到虚拟机等。在一些实施方案中,服务器计算子系统204可用于卸载主机系统104的一些工作负载。在一些情况下,主机系统104连同服务器计算子系统204可提供高性能计算服务。例如,主机系统104可集中处理快速周转服务,并且可将低性能工作负载卸载到服务器计算子系统204,从而增加系统的吞吐量。

i/o子系统114可包括多个i/o资源。在所公开技术的实施方案中,多个i/o资源可被网络计算子系统202或服务器计算子系统204使用以匹配系统的吞吐量要求。在一些实施方案中,多个i/o资源可包括外围设备和用于内部和外部通信的各种i/o接口。例如,i/o子系统114可包括与主机系统104进行通信的第一接口(例如,接口116)、与i/o转向引擎112进行通信的第二接口和与网络(例如,互联网、内联网)进行通信的第三接口。在一些实施方案中,i/o子系统114还可包括一个或多个i/o设备,诸如以太网mac(介质访问控制)、pcie设备、uart(通用异步接收器/发送器)、i2c(集成电路互联)、gpio(通用输入/输出)、sata(串行ata)控制器、spi(串行外围接口)端口和任何其他合适的外围设备。

在一些实施方案中,i/o子系统114可包括i/o资源池(诸如一个或多个sata控制器、以太网mac、pcie设备、serdesi/o多路复用器、gpio、uart等),所述i/o资源池可被转向到网络计算子系统202或服务器计算子系统204。在一个实施方案中,i/o子系统114中的所有资源可被转向到网络计算子系统202或服务器计算子系统204。在另一个实施方案中,转向可基于逐个设备来执行。例如,第一i/o设备组可被转向到网络计算子系统202,第二i/o设备组可被转向到服务器计算子系统204,并且第三i/o设备组可被转向到网络计算子系统202和服务器计算子系统204。在一些实施方案中,相较于服务器计算子系统204,可将更多数量的i/o资源转向到网络计算子系统202,或者反之亦然。例如,根据soc102的配置(例如,高性能联网或高性能计算服务器),计算子系统可利用更多数量的i/o资源以与该计算子系统利用的计算资源相匹配。

在一些实施方案中,i/o子系统114可包括第一i/o子系统和第二i/o子系统,如将参考图3论述的。例如,第一i/o子系统可包括用于网络计算子系统202的多个第一i/o资源,并且第二i/o子系统可包括用于服务器计算子系统204的多个第二i/o资源。在一些实施方案中,相较于第二i/o子系统,第一i/o子系统可包括更多的i/o资源,或者反之亦然。例如,在一种情况下,与第二i/o子系统相比,第一i/o子系统可包括更多数量的以太网mac和uart。

i/o转向引擎112可被配置来将多个i/o资源中的至少一个转向到网络计算子系统202或服务器计算子系统204。在一些实施方案中,i/o转向引擎可包括转向基体、交叉开关、网格、多路复用器、解复用器等。然而,可能存在i/o转向引擎的其他实现方式。在一些实施方案中,i/o转向引擎112可基于管理计算子系统206提供的转向配置使i/o资源转向。在一些实施方案中,由i/o转向引擎112转向到一个或多个计算子系统的i/o资源的数量可动态地发生变化。在某些情况下,当soc102被配置来包括不对称的计算子系统(例如,一个计算子系统具有比其他计算子系统更多的处理和存储器资源)时,i/o转向引擎112可提供将适当数量的i/o资源转向到每个计算子系统的灵活性。例如,如果网络计算子系统202具有更多的处理和存储器资源(例如,soc102被配置来提供高性能联网服务),那么i/o转向引擎112可使适当数量的i/o资源转向以匹配网络计算子系统202的吞吐量要求所需的i/o资源。类似地,如果服务器计算子系统204具有更多的处理和存储器资源(例如,soc102被配置来提供高性能服务器计算服务),那么i/o转向引擎112可使适当数量的i/o资源转向以匹配服务器计算子系统204的吞吐量要求所需的i/o资源。在一些情况下,当soc102被配置来仅提供联网服务时,i/o转向引擎112可将所有i/o资源转向到网络计算子系统202,并且当soc102被配置来仅提供服务器计算服务时,i/o转向引擎112可将所有i/o资源转向到服务器计算子系统204。

在一些实施方案中,管理计算子系统206可被配置为在整个soc102冷上电时首先运行。在一些实施方案中,管理计算子系统206可在加电时确定soc102的配置。例如,在一些实施方案中,soc102的配置可包括计算子系统的配置以及每个计算子系统的处理和存储器资源的配置。在一些实施方案中,管理计算子系统206可被配置来基于soc102的配置确定转向配置,并将转向配置提供给i/o转向引擎112,以将适当的i/o资源转向到一个或两个计算子系统。例如,管理计算子系统206可确定网络计算子系统202和服务器计算子系统204都可起作用,并且可将转向配置提供给i/o转向引擎112,以将i/o子系统114中适当数量的i/o资源转向到网络计算子系统202并将i/o子系统114中适当数量的i/o资源转向到服务器计算子系统204。在一些情况下,管理计算子系统206可确定服务器计算子系统204不能起作用,并且可将转向配置提供给i/o转向引擎112,以将多个i/o资源中的至少一个从i/o子系统114转向到网络计算子系统202。在一些情况下,管理计算子系统206可确定网络计算子系统202不能起作用,并且可将转向配置提供给i/o转向引擎112,以将多个i/o资源中的至少一个从i/o子系统114转向到服务器计算子系统204。soc102的配置可基于由外部实体(例如,通过网络连接)提供的策略、基于硬件配置(例如,一个或多个引脚或熔丝)或基于软件配置(例如,软件寄存器的数据字段)。在一些实施方案中,soc102可在加电时具有默认配置。在一些实施方案中,管理计算子系统206可基于soc的配置来确定转向配置以将不同的i/o资源转向到不同的计算子系统。在一些实施方案中,例如,当soc被配置来通过每个计算子系统使用不对称计算资源来提供计算服务时,管理计算子系统206可确定转向配置以将不对称数量的i/o资源转向到每个计算子系统。在一些实施方案中,管理计算子系统206可例如基于运行时每个计算子系统对计算资源的利用来动态地更新转向配置。

图3用根据所公开技术的一些实施方案的soc102的详细示意图示出了系统300。

soc102可包括网络计算子系统202、服务器计算子系统204、第一i/o子系统302、第二i/o子系统304、加速器子系统306、i/o转向引擎112、管理计算子系统206和共享资源子系统308。应理解,为了简单起见,图3示出了被转向到两个计算子系统的两个i/o子系统。例如,在一些实现方式中,可使来自多于两个i/o子系统的多个i/o资源在soc上的多个计算子系统(例如,多于两个)之间转向,而不偏离所公开技术的范围。

网络计算子系统202可包括网络计算子系统多核处理器310、l1/l2高速缓存312、网络计算子系统高速缓存一致结构314、l3高速缓存316、专用外围设备320和网络计算子系统存储器控制器318。

服务器计算子系统204可包括服务器计算子系统多核处理器322、l1/l2高速缓存324、服务器计算子系统高速缓存一致结构326、l3高速缓存328和网络计算子系统存储器控制器330。

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

在一些实施方案中,l1/l2高速缓存312可在网络计算子系统多核处理器310的多个核之间共享。例如,l1高速缓存可用作主高速缓存,并且l2高速缓存可用作次高速缓存。在一些实施方案中,l1/l2高速缓存312可被内置到网络计算子系统多核处理器310中。例如,一个l1/l2高速缓存可与一个多核处理器集成。

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

专用外围设备320可包括专用于网络计算子系统202的一个或多个外围设备,所述一个或多个外围设备不可被服务器计算子系统204共享。例如,在一些实施方案中,专用外围设备320可包括诸如引导rom的可信外围设备。

l3高速缓存316可包括末级高速缓存。在一些实施方案中,l3高速缓存316可被网络计算子系统多核处理器310的多个核共享。在本说明书中,术语末级高速缓存和l3高速缓存可以互换地使用,然而,在一些系统中,末级高速缓存在不偏离技术的范围的情况下可以是2级高速缓存或4级高速缓存或任何其他级高速缓存。

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

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

在一些实施方案中,l1/l2高速缓存324可在服务器计算子系统多核处理器322的多个核之间共享。例如,l1高速缓存可用作主高速缓存,并且l2高速缓存可用作次高速缓存。在一些实施方案中,l1/l2高速缓存324可被内置到服务器计算子系统多核处理器322中。

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

专用外围设备332可包括专用于服务器计算子系统204的一个或多个外围设备,所述一个或多个外围设备不可被网络计算子系统202共享。例如,在一些实施方案中,专用外围设备332可包括诸如引导rom的可信外围设备。

l3高速缓存328可包括末级高速缓存。在一些实施方案中,l3高速缓存328可被服务器计算子系统多核处理器322的多个核共享。

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

第一i/o子系统302可包括多个第一i/o资源。例如,第一i/o子系统302可包括用于内部和外部通信的一个或多个i/o设备和接口。在一些实施方案中,第一i/o子系统302还可包括一个或多个sata控制器、以太网mac、pcie设备、serdes(串行化-解串行化)i/o多路复用器、uart、i2c、gpio以及用于soc功能的任何其他合适的i/o设备。在一些实施方案中,第一i/o子系统302可包括与主机系统104进行通信的第一接口346,例如,类似于接口116。第一i/o子系统302可包括与网络计算子系统202进行通信的第二接口334、与服务器计算子系统204进行通信的第三接口336以及与网络进行通信的第四接口(未示出)。接口346、334和336可以基于诸如pcie接口的预定义接口。在一些实施方案中,第四接口可以基于标准(诸如以太网、令牌环、wi-fi、atm(异步传输模式)等)。在一些实施方案中,第一i/o子系统302还可包括接口(例如,sata),所述接口用于连接到外部大容量存储设备(诸如硬盘驱动器、光驱等)。

第二i/o子系统304可包括多个第二i/o资源。例如,第二i/o子系统304可包括用于内部和外部通信的一个或多个i/o设备和接口。在一些实施方案中,第二i/o子系统302还可包括一个或多个sata控制器、以太网mac、pcie设备、serdes(串行化-解串行化)i/o多路复用器、uart、i2c、gpio以及用于soc功能的任何其他合适的i/o设备。在一些实施方案中,第二i/o子系统304可包括与主机系统104进行通信的第一接口348,例如,类似于接口116。第二i/o子系统304可包括与服务器计算子系统204进行通信的第二接口338、与网络计算子系统202进行通信的第三接口340以及与网络进行通信的第四接口(未示出)。接口348、338和340可以基于诸如pcie接口的预定义接口。在一些实施方案中,第四接口可以基于标准(诸如以太网、令牌环、wi-fi、atm(异步传输模式)等)。在一些实施方案中,第四接口可以基于标准(诸如以太网、令牌环、wi-fi、atm(异步传输模式)等)。在一些实施方案中,第二i/o子系统304还可包括接口(例如,sata),所述接口用于连接到外部大容量存储设备(诸如硬盘驱动器、光驱等)。

在一些实施方案中,第一i/o子系统302中的一个或多个第一i/o资源可以不同于第二i/o子系统304中的第二i/o资源。例如,在一些情况下,第一i/o子系统302可包括以太网mac、i2c、uart,并且第二i/o子系统304可包括sata控制器、gpio、pcie设备等。在一些实施方案中,管理计算子系统206可基于可用资源和每个计算子系统的i/o资源要求来确定转向配置以使适当的i/o资源从每个i/o子系统转向。

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

根据所公开技术的一些实施方案,可将一个或多个加速器转向到网络计算子系统202,并且可将一个或多个加速器转向到服务器计算子系统204。应注意,在一些实现方式中,可将一个或多个加速器转向到多个计算子系统(例如,多于两个),而不偏离所公开技术的范围。在一些情况下,加速器子系统306可包括加速器a、加速器b和加速器c,如图3中所示。例如,加速器a可以是网络加速器,加速器b可以是加密引擎并且加速器c可以是压缩加速器。应注意,在一些实施方案中,加速器子系统306可包括可被适当地转向到任一计算子系统的多个网络加速器、加密引擎和其他加速器。在一个实施方案中,例如当网络计算子系统202和服务器计算子系统204都起作用时,加速器a和b可被转向到网络计算子系统202,并且加速器c可被转向到服务器计算子系统204。在另一个实施方案中,例如当服务器计算子系统204被去配置或不起作用时,加速器a、b和c中的一些或全部可被转向到网络计算子系统202。在另一个实施方案中,例如当网络计算子系统202被去配置或不起作用时,加速器a、b和c中的一些或全部可被转向到服务器计算子系统204。

i/o转向引擎112可被配置来将第一i/o子系统302中的至少一个i/o资源转向到网络计算子系统202或服务器计算子系统204并且将第二i/o子系统304中的至少一个i/o资源转向到网络计算子系统202或服务器计算子系统204。例如,在某些实施方案中,i/o转向引擎112可通过接口334将第一i/o资源转向到网络计算子系统高速缓存一致结构314,或通过接口336将第一i/o资源转向到服务器计算子系统高速缓存一致结构326。在一些实施方案中,i/o转向引擎112可通过接口340将第二i/o资源转向到网络计算子系统高速缓存一致结构314,或通过接口338将第二i/o资源转向到服务器计算子系统高速缓存一致结构326。在一些实施方案中,i/o转向引擎112还可被配置来将加速器子系统306中的一个或多个加速器转向到网络计算子系统202或服务器计算子系统204。例如,i/o转向引擎112可通过接口342将一个或多个加速器转向到网络计算子系统高速缓存一致结构314,或通过接口344将一个或多个加速器转向到服务器计算子系统高速缓存一致结构326。在一些实施方案中,i/o转向引擎112可基于转向配置来将不同的i/o资源转向到不同的计算子系统。例如,在一些情况下,i/o转向引擎112可将所有以太网mac从第一i/o子系统302转向到网络计算子系统202,并且可将所有gpio从第二i/o子系统304转向到服务器计算子系统204。在一些实施方案中,i/o转向引擎112可使不对称数量的i/o资源从第一i/o子系统302和第二i/o子系统304转向。例如,相较于第二i/o子系统304,i/o转向引擎112可使更多数量的以太网mac从第一i/o子系统302转向,并且相较于第一i/o子系统302,i/o转向引擎112可使更多数量的uart从第二i/o子系统304转向。

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

管理计算子系统206可被配置来将转向配置提供给i/o转向引擎112,以将适当数量的i/o资源转向到每个计算子系统。在一些实施方案中,管理计算子系统206还可将转向配置提供给i/o转向引擎112,以将加速器子系统306中的一个或多个加速器转向到网络计算子系统202或服务器计算子系统204。在一些实施方案中,管理计算子系统206可确定网络计算子系统202和服务器计算子系统204都可起作用,并且可将转向配置提供给i/o转向引擎112,以将第一i/o子系统302转向到网络计算子系统202并将第二i/o子系统304转向到服务器计算子系统204。在某些实施方案中,管理计算子系统206可确定服务器计算子系统204不能起作用,并且可将转向配置提供给i/o转向引擎112,以将第一i/o子系统302和第二i/o子系统304转向到网络计算子系统202。在某些实施方案中,管理计算子系统206可确定网络计算子系统202不能起作用,并且可将转向配置提供给i/o转向引擎112,以将第一i/o子系统302和第二i/o子系统304转向到服务器计算子系统204。在一些实施方案中,第一i/o子系统302和第二i/o子系统304的转向配置可以基于默认配置,例如,基于策略。在一些实施方案中,管理计算子系统206可基于硬件配置(例如,一个或多个引脚或熔丝)或软件配置(例如,软件寄存器的数据字段)来在加电时确定第一i/o子系统302和第二i/o子系统304的转向配置。在一些实施方案中,管理计算子系统206可在运行时动态地确定第一i/o子系统302和第二i/o子系统304的转向配置。

图4a-4c示出了具有soc102的示例性系统400,所述soc102被配置来包括两个计算子系统。

系统400可包括soc102的所有部件,如参考图3所论述的。一般来说,服务器计算子系统204可被配置用于提供计算服务,并且网络计算子系统202可被配置用于至少管理主机系统104和服务器计算子系统204的网络流量。加速器子系统306可包括一个或多个加速器(例如,加速器a、b和c),所述一个或多个加速器可仅被转向到网络计算子系统202,仅被转向到服务器计算子系统204或被转向到网络计算子系统202和服务器计算子系统204。

图4a示出了所公开技术的一个实施方案,其包括将i/o资源和加速器转向到网络计算子系统202和服务器计算子系统204。

管理计算子系统206可在加电时或在运行时确定soc102的配置。例如,管理计算子系统206可确定网络计算子系统202和服务器计算子系统204都起作用。在一些实施方案中,管理计算子系统206可基于对每个计算子系统的处理和存储器资源的分配来确定网络计算子系统202和服务器计算子系统204具有对称或不对称的配置。例如,soc102可被配置来提供高性能联网服务和低性能计算服务、高性能计算服务和低性能联网服务,或者可被配置来针对联网和计算服务都提供类似的性能。因此,在一个实现方式中,管理计算子系统206可确定用于提供给i/o转向引擎112的转向配置,以将适当数量的i/o资源转向到每个计算子系统。

在一些实施方案中,管理计算子系统206还可提供转向配置,以将一个或多个加速器转向到网络计算子系统202和服务器计算子系统204。例如,在一些情况下,加速器a和b可被转向到网络计算子系统202,并且加速器c可被转向到服务器计算子系统204。例如,加速器a可以是网络加速器,所述网络加速器可由网络计算子系统202用来进行联网加速,并且加速器b可以是加密引擎,所述加密引擎可由网络计算子系统202用来对由网络计算子系统202执行的加密功能进行加速。加速器c可以是压缩加速器,所述压缩加速器用于对由服务器计算子系统204执行的视频压缩或其他数据处理任务进行加速。在一些实施方案中,管理计算子系统206可在运行时为i/o转向引擎112更新转向配置,以动态地改变一定量的i/o资源和/或加速器到每个计算子系统的转向。

在一些实施方案中,与服务器计算子系统204相比,网络计算子系统202可具有更多的分配的计算资源,例如,soc102可被配置来提供高性能联网服务和低性能计算服务。在一些实施方案中,soc102的配置设置可在引导时提供或存储在持久性存储器(未示出)中。例如,管理计算子系统206可基于硬件配置(例如,一个或多个引脚或熔丝)或软件配置(例如,寄存器的数据字段)来确定soc102的配置设置。在一些实施方案中,soc102的配置设置可在运行时动态地更新。例如,soc102可在引导时或动态地被配置来仅包括网络计算子系统202,仅包括服务器计算子系统204,或者包括网络计算子系统202和服务器计算子系统204。例如,在一些情况下,网络计算子系统多核处理器310可包括比服务器计算子系统多核处理器322更多数量的处理器核,比服务器计算子系统存储器控制器330更多数量的网络计算子系统存储器控制器318或者可包括比l1/l2高速缓存324、l3高速缓存328更大的l1/l2高速缓存312、l3高速缓存316。因此,相较于服务器计算子系统204(例如,通过接口338),i/o转向引擎112可将更多数量的i/o资源转向到网络计算子系统202(例如,通过接口334),以匹配分配给网络计算子系统202的计算资源的吞吐量要求。类似地,对于高性能联网配置,与服务器计算子系统204相比,i/o转向引擎112可将更多数量的网络加速器转向到网络计算子系统202(例如,通过接口342)以匹配联网带宽。例如,只有加密引擎可被转向到服务器计算子系统204(例如,通过接口344)。在一些实施方案中,i/o转向引擎112可包括多路复用器、解复用器或用于执行转向的任何其他合适的逻辑。

图4b示出了所公开技术的一个实施方案,其包括将加速器仅转向到网络计算子系统202。

在一个实施方案中,加速器子系统306中的一个或多个加速器可仅被转向到网络计算子系统202(例如,通过接口342)。例如,在一些实施方案中,网络计算子系统202可被配置来提供高性能联网服务,并且服务器计算子系统204可被配置来提供低性能计算服务。在一些情况下,网络计算子系统202可利用多个网络加速器、加密引擎、压缩加速器和任何其他合适的加速器来提供高性能联网服务,并且服务器计算子系统204可不利用任何加速器。应注意,图4b示出了加速器a、b和c到网络计算子系统202的转向。然而,任何合适数量的加速器可被转向到网络计算子系统202,例如,仅a、仅b、仅c或者a、b和/或c的多个实例。

图4c示出了所公开技术的一个实施方案,其包括将加速器仅转向到服务器计算子系统204。

在一个实施方案中,加速器子系统306中的一个或多个加速器可仅被转向到服务器计算子系统204(例如,通过接口344)。例如,在一些实施方案中,服务器计算子系统204可被配置来提供高性能计算服务,并且网络计算子系统204可被配置来提供低性能联网服务。在一些情况下,服务器计算子系统204可利用多个加密引擎、压缩加速器和任何其他合适的加速器来提供高性能计算服务,并且网络计算子系统202可不利用任何加速器。应注意,图4c示出了加速器a、b和c到服务器计算子系统204的转向。然而,任何合适数量的加速器可被转向到服务器计算子系统204,例如,仅b、仅c或者b和/或c的多个实例。

图5示出了具有soc102的示例性系统500,所述soc102被配置来仅包括服务器计算子系统。

如图5中所示,网络计算子系统202可能不起作用。例如,soc102可被配置来仅提供服务器计算服务。在一些实施方案中,soc102可仅包括可被配置用于提供计算服务的服务器计算子系统204。

管理计算子系统206可在加电时或在运行时动态地确定soc102的配置。例如,管理计算子系统206可确定仅服务器计算子系统204起作用。在一些实施方案中,网络计算子系统202可被去配置或被去特征。例如,soc102可被配置来仅提供高性能计算服务,因此可能不会利用联网服务。例如,soc102可被配置来执行可利用计算密集型资源的数据计算或数据分析。在一些实施方案中,管理计算子系统206可基于对服务器计算子系统204进行的处理和存储器资源的分配来确定提供给i/o转向引擎112的转向配置。因此,i/o转向引擎112可基于管理计算子系统206提供的转向配置将一个或多个第一i/o资源(例如,通过接口336)和一个或多个第二i/o资源(例如,通过接口338)转向到服务器计算子系统204。例如,在一些情况下,与第二i/o子系统304相比,i/o转向引擎112可将更多数量的以太网mac从第一i/o子系统302转向到服务器计算子系统204,并且相较于第一i/o子系统302,i/o转向引擎112可将更多数量的sata控制器从第二i/o子系统304转向到服务器计算子系统204。基于管理计算子系统114提供的转向配置,i/o转向引擎112可以将或可以不将加速器转向到服务器计算子系统106。在一些实施方案中,加速器子系统306中的一个或多个加速器可被转向到服务器计算子系统204(例如,通过接口344)。例如,在一些情况下,只有加密引擎和/或压缩加速器而不是网络加速器可被转向到服务器计算子系统204。

当网络计算子系统202不起作用时,所公开技术的一些实施方案可允许将更多数量的资源转向到服务器计算子系统204。例如,soc102可被配置来提供高性能计算服务。根据一些实施方案,可使多个i/o资源从第一i/o子系统302和第二i/o子系统304转向,以匹配服务器计算子系统204使用的计算资源,从而提供高性能计算服务。因此,技术的实施方案可允许更有效地利用i/o资源以增加系统的吞吐量。

图6示出了具有soc102的示例性系统600,所述soc102被配置来仅包括网络计算子系统202。

如图6中所示,服务器计算子系统204可能不起作用。例如,soc102可被配置来仅提供联网服务。在一些实施方案中,soc102可仅包括网络计算子系统202,所述网络计算子系统202可被配置用于至少管理主机系统104的网络流量。

管理计算子系统206可在加电时确定soc102的配置。例如,管理计算子系统206可确定仅网络计算子系统202起作用。在一些实施方案中,服务器计算子系统204可被去配置或被去特征。例如,soc102可被配置来仅提供高性能联网服务,因此可能不会利用计算服务。例如,soc102可被配置来执行可利用网络密集型资源的网络存储或网络流量整形。在一些实施方案中,管理计算子系统206可基于对网络计算子系统202进行的处理和存储器资源的分配来确定提供给i/o转向引擎112的转向配置。因此,i/o转向引擎112可将一个或多个第一i/o资源(例如,通过接口334)和一个或多个第二i/o资源(例如,通过接口340)转向到网络计算子系统202,以匹配网络计算子系统202的吞吐量要求,来提供联网服务。在一些实施方案中,i/o转向引擎112可将加速器子系统306中的一个或多个加速器(例如,通过接口342)转向到网络计算子系统202,以满足soc102提供的联网服务所需的网络带宽。例如,在一些情况下,可将一个或多个网络加速器、加密引擎、压缩加速器等转向到网络计算子系统202。

当服务器计算子系统204不起作用时,所公开技术的一些实施方案可允许将更多数量的资源转向到网络计算子系统202。例如,soc102可被配置来提供高性能联网服务。根据一些实施方案,可使多个i/o资源从第一i/o子系统302和第二i/o子系统304转向,以匹配网络计算子系统202使用的计算资源,从而提供高性能联网服务。此外,可将多个加速器从加速器子系统306转向到网络计算子系统202以提供网络加速。因此,技术的实施方案可允许更有效地利用i/o资源以增加系统的吞吐量。

图7示出了根据技术的某些实施方案的i/o子系统114的框图。i/o子系统114可包括多个i/o设备,例如,第一以太网mac702、第二以太网mac704、第三以太网mac706、第一pcie设备708、第二pcie设备710、gpio设备712、第一sata控制器714、第二sata控制器716和i2c设备718。应理解,i/o子系统114可基于soc102的配置包括更多或更少数量的设备。

在一些实施方案中,i/o子系统114可包括第一i/o子系统302和第二i/o子系统304,如先前参考图3所论述的。根据所公开技术的一些实施方案,i/o子系统114中的一个或多个设备可被转向到一个或多个计算子系统,如先前参考图1所论述的。例如,在一些实现方式中,可将一个或多个设备转向到网络计算子系统202,并且可将一个或多个设备转向到服务器计算子系统204。在一些实施方案中,管理计算子系统206可基于soc102的配置将转向配置提供给i/o转向引擎112,以将适当数量和类型的i/o设备转向到一个或多个计算子系统。例如,在一个实施方案中,当soc102被配置来用作网络计算子系统202和服务器计算子系统204(例如,参见图4a-4c)时,i/o转向引擎112可将第一i/o设备组转向到网络计算子系统202并且将第二i/o设备组转向到服务器计算子系统204。例如,第一i/o设备组可包括可由网络计算子系统202使用的适当数量和类型的i/o设备,诸如第一以太网mac702、第二以太网mac704、第一pcie设备708和第一sata控制器714。第二i/o设备组可包括可由服务器计算子系统204使用的适当数量和类型的i/o设备,诸如第三以太网mac706、第二pcie设备710、gpio设备712、第二sata控制器716和i2c设备718。在一个实施方案中,当soc102被配置为仅是服务器计算子系统(例如,参见图5)时,i/o转向引擎112可使可由服务器计算子系统204使用的适当的i/o设备(例如,第三以太网mac706、第一pcie设备708、第二sata控制器716和gpio设备712)转向。在一个实施方案中,当soc102被配置为仅是网络计算子系统(例如,参见图6)时,i/o转向引擎112可使可由网络计算子系统202使用的适当的i/o设备(例如,第一以太网mac702、第二以太网mac704、第一pcie设备708和第一sata控制器714)转向。

图8示出了根据技术的某些实施方案的i/o转向引擎112的框图。i/o转向引擎112可包括接口单元802和转向单元804。在技术的某些实施方案中,i/o转向引擎112可允许多个i/o资源通过由网络计算子系统高速缓存一致结构314和服务器计算子系统高速缓存一致结构326表示的物理层连接到网络计算子系统202和服务器计算子系统204。

接口单元802可包括与soc102的不同部件的各种接口。例如,接口单元802可与第一i/o子系统302、第二i/o子系统304、加速器子系统306、网络计算子系统高速缓存一致结构314、服务器计算子系统高速缓存一致结构326和管理计算子系统206对接。

转向单元804可包括转向逻辑,所述转向逻辑用于将i/o子系统114中的一个或多个i/o资源以及加速器子系统306中的一个或多个加速器转向或引导到一个或多个计算子系统。例如,在一些实施方案中,转向单元804可包括转向逻辑,所述转向逻辑用于将第一i/o子系统302中的多个第一i/o资源中的至少一个转向到网络计算子系统高速缓存一致结构314或服务器计算子系统高速缓存一致结构326,并用于将第二i/o子系统304中的多个第二i/o资源中的至少一个转向到网络计算子系统高速缓存一致结构314或服务器计算子系统高速缓存一致结构326。转向单元804还可被配置来将加速器子系统306中的一个或多个加速器转向到网络计算子系统202或服务器计算子系统204。在一些实施方案中,可使用转向基体、交叉开关、网格、多路复用器、解复用器等来实现转向逻辑。然而,可能存在转向逻辑的其他实现方式。在一些实施方案中,转向单元804可基于管理计算子系统206提供的转向配置使一个或多个i/o资源转向。

图9示出了根据所公开技术的某些实施方案的管理计算子系统206的框图。管理计算子系统206可包括多核处理器902、l1/l2高速缓存904、网络接口单元906、专用存储器908、外围设备910和计算机可读存储介质912。

多核处理器902可包括两个或更多个处理器核,诸如的a57。在一些实施方案中,可使用单核处理器来代替多核处理器902。l1/l2高速缓存904可位于多核处理器902的内部或外部,并且可被所有处理器核共享。多核处理器902可被配置来执行多个指令,所述多个指令可存储在计算机可读存储介质912上。例如,计算机可读介质可包括指令,所述指令用于在引导时或在运行时动态地确定转向配置以提供给i/o转向引擎112,从而用于将i/o资源和加速器转向到适当的计算子系统。计算机可读存储介质912可以是非暂时性的。在一些实施方案中,计算机可读存储介质可包括但不限于:参数随机存取存储器(pram)、sram、dram、ram、只读存储器(rom)、电可擦可编程只读存储器(eeprom)、闪存或其他存储器技术、光盘(cd)-rom、数字视频光盘(dvd)或其他光存储设备、磁带盒、磁带、磁盘存储设备或其他磁存储设备或者可用来存储期望的信息并且可由多核处理器902访问的任何其他介质。在一些实施方案中,计算机可读存储介质912可以是外围设备910的一部分。l1/l2高速缓存904可以是用于临时数据存储的数据高速缓存。

网络接口单元906可允许管理计算子系统206连接到网络。例如,网络接口单元906可包括以太网mac(媒体访问控制),所述以太网mac(媒体访问控制)能够使管理计算子系统206连接到诸如以太网的网络。在一些情况下,以太网mac可提供以太网端口以对接到用于连接到网络的phy(物理层)设备。在一些实施方案中,管理计算子系统206可通过网络与外部实体或系统进行通信,以确定虚拟服务器实例的工作负载,以配置处理和存储器资源。

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

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

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

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

图10示出了根据所公开技术的一些实施方案的加速器子系统306的框图。加速器子系统306可包括多个加速器,诸如网络加速器1002、加密引擎1004和压缩加速器1006。应理解,根据所公开技术的实施方案,加速器子系统306可包括更多或更少的加速器以及可被转向到多于一个计算子系统的各种类型的加速器。

网络加速器1002可用于提供网络加速。例如,在一些实现方式中,网络加速器1002可包括硬件和软件的组合,以(例如)通过使用高速缓存、数据压缩、数据复制或任何其他合适的技术来提供带宽优化。基于如参考图4a-4c、图5和图6所论述的soc102的配置,可将一个或多个网络加速器1002转向到网络计算子系统202和/或服务器计算子系统204。

加密引擎1004可用于提供(例如)加密功能的硬件加速。例如,在一些实现方式中,加密引擎1004可包括硬件和软件的组合,以(例如)通过使用高速缓存、数据压缩、数据复制或任何其他合适的技术来提供硬件加速。基于如参考图4a-4c、图5和图6所论述的soc102的配置,可将一个或多个加密引擎1004转向到网络计算子系统202和/或服务器计算子系统204。

压缩加速器1006可用于为计算密集型应用提供加速。例如,在一些实现方式中,压缩加速器1006可包括硬件和软件的组合,以使用任何合适的技术来提供加速。基于如参考图4a-4c、图5和图6所论述的soc102的配置,可将一个或多个压缩加速器1006转向到网络计算子系统202和/或服务器计算子系统204。

图11示出了第一i/o子系统302的一些部件。第一i/o子系统302可包括总线接口单元1102、网络接口单元1104和i/o外围设备单元1106。在一些实施方案中,第一i/o子系统302可以是i/o子系统114的一部分,如先前参考图7所论述的。

总线接口单元1102可包括用于与内部或外部部件进行通信的一个或多个总线接口。例如,总线接口单元1102可包括与主机系统104进行通信的第一接口,例如,接口346。在一些实施方案中,第一接口可以是pcie接口。例如,总线接口单元1102可包括一个或多个pcie端口以连接到其他pcie端口。总线接口单元1102可包括根复合体(rc)端口和端点端口(ep)。在一些实施方案中,网络计算子系统202可使用接口346通过第一i/o子系统302中的pcie端口和主机系统104中的pcie端口与主机系统104进行通信。总线接口单元1102可包括与i/o转向引擎112连接(例如,参考图8与接口单元802连接)的第二接口。例如,i/o转向引擎112可使用第二接口将第一i/o子系统302中的第一i/o资源连接到网络计算子系统202或服务器计算子系统204。

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

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

图12示出了第二i/o子系统304的一些部件。第二i/o子系统304可包括总线接口单元1202、网络接口单元1204和i/o外围设备单元1206。。在一些实施方案中,第二i/o子系统304可以是i/o子系统114的一部分,如先前参考图7所论述的。

总线接口单元1202可包括用于与内部或外部部件进行通信的一个或多个总线接口。例如,总线接口单元1202可包括与主机系统104进行通信的第一接口,例如,接口348。在一些实施方案中,第一接口可以是pcie接口。例如,总线接口单元1202可包括一个或多个pcie端口以连接到其他pcie端口。总线接口单元1202可包括根复合体(rc)端口和端点端口(ep)。在一些实施方案中,服务器计算子系统204可使用接口348通过第二i/o子系统304中的pcie端口和主机系统104中的pcie端口与主机系统104进行通信。总线接口单元1202可包括与i/o转向引擎112连接(例如,参考图8与接口单元802连接)的第二接口。例如,i/o转向引擎112可使用第二接口将第二i/o子系统304中的第二i/o资源连接到网络计算子系统202或服务器计算子系统204。

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

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

图13示出了共享资源子系统308的一些部件。在技术的实施方案中,共享资源子系统308可包括部件,所述部件可不包括进程状态。共享资源子系统308可包括存储器模块1302、随机生成器模块1304、通信邮箱1306和高速暂存存储器模块1308。

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

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

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

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

图14示出了根据技术的一个或多个方面的流程图1400。过程1400(或本文描述的任何其他过程,或其变型和/或组合)中的一些或全部可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,固件、可执行指令、一个或多个计算机程序或者一个或多个应用)或者通过硬件或其组合来实现。代码可(例如)以计算机程序的形式存储在计算机可读存储介质上,所述计算机程序可包括可由一个或多个处理器执行的多个指令。计算机可读存储介质可以是非暂时性的。

在步骤1402处,多个计算子系统中的一个或多个计算子系统可在片上系统(soc)上加电。例如,在一些实施方案中,网络计算子系统202和服务器计算子系统204可被加电,其中服务器计算子系统204被配置来提供计算服务,并且网络计算子系统202被配置来至少管理主机系统104和服务器计算子系统202的网络流量。例如,重新参照图3,管理计算子系统206可使网络计算子系统202和服务器计算子系统204都加电。在一些实施方案中,管理计算子系统206可基于soc102的配置在加电之后将处理器和存储器资源分配给每个计算子系统。例如,在一些情况下,soc102可被配置来提供高性能联网服务、高性能计算服务、仅联网服务或仅服务器服务。

在步骤1404处,确定转向配置以将第一i/o子系统中的多个第一i/o资源中的至少一个转向到多个计算子系统中的一个或多个计算子系统,并且将第二i/o子系统中的多个第二i/o资源中的至少一个转向到多个计算子系统中的一个或多个计算子系统。重新参照图3,管理计算子系统206可确定转向配置,以将第一i/o子系统302中的多个第一i/o资源中的至少一个转向到网络计算子系统202或服务器计算子系统204并且将第二i/o子系统304中的多个第二i/o资源中的至少一个转向到网络计算子系统202或服务器计算子系统204。在一些实施方案中,管理计算子系统206可确定转向配置,以将一个或多个加速器转向到网络计算子系统202或服务器计算子系统204,如先前参考图4a-4c、图5和图6所论述的。如参考图3所论述的,在一些情况下,管理计算子系统206可确定转向配置以将适当数量和类型的i/o资源转向到每个计算子系统。例如,在一些情况下,与服务器计算子系统204相比,可将更多数量的i/o资源和加速器转向到网络计算子系统202。

在步骤1406处,将转向配置提供给耦合到第一i/o子系统和第二i/o子系统的i/o转向引擎。重新参照图3,管理计算子系统206可将转向配置提供给耦合到第一i/o子系统302和第二i/o子系统304的i/o转向引擎112。在一些实施方案中,转向引擎112可将适当数量和类型的i/o资源和加速器转向到多个计算子系统(例如,网络计算子系统202和服务器计算子系统204)。

所公开技术的实施方案可提供将i/o资源和加速器转向到soc上的多于一个计算子系统的灵活性。更好地利用soc上的i/o资源和加速器的能力可使得主机系统为各种计算服务提供改进的网络和存储带宽。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

存储器1518可包括操作系统1528、一个或多个数据存储区1530和/或用于实现本文所公开的特征的一个或多个应用程序或服务(任选地包括i/o转向引擎1532、资源模块1540和多个计算子系统模块1542)。在一些实施方案中,资源模块1540可包括多个i/o资源和加速器。在一些实施方案中,i/o转向引擎1532可类似于i/o转向引擎112。多个计算子系统模块1542可包括网络计算子系统202和服务器计算子系统204。本文描述的模块可以是软件模块、硬件模块或其合适的组合。如果模块是软件模块,那么模块可体现在非暂时性计算机可读介质上,并且由本文描述的任何计算机系统中的处理器进行处理。应注意,所描述的进程和架构可在任何用户交互之前以实时或异步模式来执行。模块可以图15中所提出的方式进行配置,和/或本文描述的功能可由存在的一个或多个模块提供,因为本文描述的单独的模块和/或模块功能可遍布在多个模块上。

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

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

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

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

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

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

大多数实施方案利用本领域技术人员将熟悉的至少一个网络来使用多种可商购获得的协议中的任一个来支持通信,诸如传输控制协议/互联网协议(“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包括:

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

网络计算子系统,其用于至少管理所述主机系统和所述服务器计算子系统的网络流量;

第一i/o子系统,其包括多个第一i/o资源;

第二i/o子系统,其包括多个第二i/o资源;以及

i/o转向引擎,其耦合到所述第一i/o子系统和所述第二i/o子系统,所述i/o转向引擎被配置来:

将所述多个第一i/o资源中的至少一个转向到所述服务器计算子系统或所述网络计算子系统;以及

将所述多个第二i/o资源中的至少一个转向到所述服务器计算子系统或所述网络计算子系统。

条款2.如条款1所述的soc,其中所述第一i/o子系统还包括:第一接口,其与所述主机系统进行通信;第二接口,其与所述网络进行通信;以及第三接口,其与所述i/o转向引擎进行通信。

条款3.如任一前述条款所述的soc,其中所述第二i/o子系统还包括:第一接口,其与所述主机系统进行通信;第二接口,其与所述网络进行通信;以及第三接口,其与所述i/o转向引擎进行通信。

条款4.如任一前述条款所述的soc,其还包括加速器子系统,所述加速器子系统包括一个或多个加速器,其中所述i/o转向引擎还被配置来将所述加速器中的至少一个转向到所述服务器计算子系统或所述网络计算子系统。

条款5.一种被配置来与主机系统进行通信的片上系统(soc),所述soc包括:

多个计算子系统;

第一i/o子系统,其包括多个第一i/o资源;以及

i/o转向引擎,其耦合到所述第一i/o子系统,所述i/o转向引擎被配置来将所述多个第一i/o资源中的至少一个引导到所述多个计算子系统中的一个或多个计算子系统。

条款6.如条款5所述的soc,所述soc还包括第二i/o子系统,所述第二i/o子系统包括多个第二i/o资源,其中所述i/o转向引擎还被配置来将所述多个第二i/o资源中的至少一个引导到所述多个计算子系统中的所述一个或多个计算子系统。

条款7.如条款5或6所述的soc,所述soc还包括加速器子系统,所述加速器子系统包括一个或多个加速器,其中所述i/o转向引擎还被配置来将所述加速器中的至少一个引导到所述多个计算子系统中的所述一个或多个计算子系统。

条款8.如条款5-7中任一项所述的soc,所述soc还包括管理计算子系统,其中所述管理计算子系统被配置来将转向配置提供给所述i/o转向引擎。

条款9.如条款5-8中任一项所述的soc,其中所述多个计算子系统包括:服务器计算子系统,其提供计算服务;以及网络计算子系统,其管理所述主机系统和所述服务器计算子系统的网络流量。

条款10.如条款9所述的soc,其中所述i/o转向引擎被配置来将所述多个第一i/o资源中的一个或多个引导到所述服务器计算子系统并且将所述多个第二i/o资源中的一个或多个引导到所述网络计算子系统。

条款11.如条款9或10所述的soc,其中所述i/o转向引擎被配置来将所述多个第一i/o资源中的一个或多个以及所述多个第二i/o资源中的一个或多个引导到所述网络计算子系统。

条款12.如条款9-11中任一项所述的soc,其中所述i/o转向引擎被配置来将所述多个第一i/o资源中的一个或多个以及所述多个第二i/o资源中的一个或多个引导到所述服务器计算子系统。

条款13.如条款9-12中任一项所述的soc,其中所述i/o转向引擎通过网络计算子系统高速缓存一致结构耦合到所述网络计算子系统,并通过服务器计算子系统高速缓存一致结构耦合到所述服务器计算子系统。

条款14.如条款9-13中任一项所述的soc,所述soc还包括加速器子系统,所述加速器子系统包括多个加速器,其中所述i/o转向引擎还被配置来将所述多个加速器中的一个或多个引导到所述网络计算子系统并且将所述多个加速器中的一个或多个引导到所述服务器计算子系统。

条款15.如条款5-14中任一项所述的soc,其中所述第一i/o子系统包括:第一接口,其与所述主机系统进行通信;第二接口,其与网络进行通信;以及第三接口,其与所述i/o转向引擎进行通信。

条款16.如条款5-15中任一项所述的soc,其中所述第二i/o子系统包括:第一接口,其与所述主机系统进行通信;第二接口,其与网络进行通信;以及第三接口,其与所述i/o转向引擎进行通信。

条款17.一种用于在片上系统(soc)中使i/o资源转向的方法,所述方法包括:

激活多个计算子系统中的一个或多个计算子系统;

确定转向配置以将第一i/o子系统中的多个第一i/o资源中的至少一个转向到所述一个或多个计算子系统,并且将第二i/o子系统中的多个第二i/o资源中的至少一个转向到所述一个或多个计算子系统;以及

将所述转向配置提供给耦合到所述第一i/o子系统和所述第二i/o子系统的i/o转向引擎。

条款18.如条款17所述的方法,其中所述多个计算子系统包括:服务器计算子系统,其提供计算服务;以及网络计算子系统,其管理所述主机系统和所述服务器计算子系统的网络流量。

条款19.如条款18所述的方法,其中所述多个第一i/o资源中的一个或多个以及所述多个第二i/o资源中的一个或多个被转向到所述网络计算子系统。

条款20.如条款18或19所述的方法,其中所述多个第一i/o资源中的一个或多个以及所述多个第二i/o资源中的一个或多个被转向到所述服务器计算子系统。

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

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

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

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

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