CN111352875A - 包括用于多个计算子系统的可重新配置的资源的片上系统 - Google Patents

包括用于多个计算子系统的可重新配置的资源的片上系统 Download PDF

Info

Publication number
CN111352875A
CN111352875A CN202010107375.3A CN202010107375A CN111352875A CN 111352875 A CN111352875 A CN 111352875A CN 202010107375 A CN202010107375 A CN 202010107375A CN 111352875 A CN111352875 A CN 111352875A
Authority
CN
China
Prior art keywords
compute subsystem
network
subsystem
server
resources
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010107375.3A
Other languages
English (en)
Other versions
CN111352875B (zh
Inventor
M·B·戴维斯
D·J·博兰德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN111352875A publication Critical patent/CN111352875A/zh
Application granted granted Critical
Publication of CN111352875B publication Critical patent/CN111352875B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7885Runtime interface, e.g. data exchange, runtime control
    • G06F15/7892Reconfigurable logic embedded in CPU, e.g. reconfigurable unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Advance Control (AREA)

Abstract

本技术的实施方案可以提供在SoC(102)上的不同的计算子系统间对各种计算资源的细粒动态划分的灵活性。多个处理核心(206)、高速缓存层级结构(212)、存储器控制器(208)和I/O资源(210)可以在所述SoC上的网络计算子系统(104)与服务器计算子系统(108)之间动态划分。

Description

包括用于多个计算子系统的可重新配置的资源的片上系统
本申请是国际申请日为2015/12/21,国际申请号为PCT/US2015/067163,进入中国国家阶段的申请号为201580068917.8,题为“包括用于多个计算子系统的可重新配置的资源的片上系统”的发明专利申请的分案申请。
发明背景
许多的组织和公司通过多个通信网络提供计算服务。例如,计算服务可以包括web服务,诸如可通过因特网(Internet)向不同的客户端提供的web存储装置或虚拟服务器。在一些情况下,虚拟服务器可以基于需要而租赁给客户端。
一般来说,一种系统可以包括具有固定计算资源的子系统。在大多数的情况下,可能因不规则的工作负载需求而无法有效利用系统上的计算资源。例如,在某个时间上,高性能子系统会受限于固定数量计算资源,而低性能子系统可能不利用其所有的计算资源。因此,在大多数的情况下,系统可能因分配给每个子系统的固定数量资源而无法有效执行。
附图简述
将会参考附图描述根据本公开的各种实施方案,其中:
图1示出了根据本公开的一些实施方案的系统的框图。
图2示出了根据本公开的某些实施方案的具有可重新配置的资源的片上系统(SoC)的高级框图。
图3示出了根据本公开的某些实施方案的具有可重新配置的处理和存储器资源的SoC的框图。
图4示出了根据本公开的某些实施方案的SoC的详细框图。
图5示出了根据本公开的某些实施方案的包括服务器计算子系统的SoC的详细框图。
图6示出了根据本公开的某些实施方案的除了网络计算子系统和服务器计算子系统中的每者的专用资源之外还包括了可重新配置的处理资源的SoC的详细框图。
图7示出了根据本公开的某些实施方案的管理计算子系统的框图。
图8示出了根据本公开的某些实施方案的网络I/O子系统的框图。
图9示出了根据本公开的某些实施方案的服务器I/O子系统的框图。
图10示出了根据本公开的某些实施方案的共享资源单元的框图。
图11示出了根据本公开的某些实施方案的流程图。
图12示出了根据至少一个示例性的实施方案的包括经由一个或多个网络而连接的一个或多个服务提供商计算机和/或用户设备的本文中描述的特征和系统的示例性的架构。
图13示出了可实现各种实施方案的环境。
详细描述
在下文描述中,将会描述各种实施方案。出于解释目的,阐述特定的配置和细节,以便提供对实施方案的透彻理解。然而,对于本领域的技术人员来说将会明显的是,可以在没有特定细节情况下实践实施方案。此外,可省略或简化已众所周知的特征,以便避免模糊所描述的实施方案。
一般来说,计算系统可以包括一个或多个计算子系统用于执行若干不同功能。在大多数的情况下,每个计算子系统可以包括固定数量资源用于执行预期功能。一旦制造了计算系统,资源的数量和种类对于计算系统的每个计算子系统来说就是固定的。因此,无论使用情况如何,客户端都受限于每个计算子系统的特定预定资源配置。
此外,在固定资源下,当工作负载需求随时间而变化时,每个子系统可能无法有效执行。例如,第一子系统的性能可受限于固定数量资源在工作负载为高时的某个时段内执行其预期的功能,而第二子系统则在这个时段期间因低的工作负载而无法利用其所有的资源。因此,在大多数的情况下,系统可能因分配给每个子系统的固定数量资源而无法有效执行。
所公开的技术的实施方案可动态或在引导时间上提供在片上系统(SoC)上的多个计算子系统间对各种资源的划分。例如,SoC可以通信地耦合到主机系统(例如,x86服务器),以便提供各种服务,诸如流量监测、流量整形、计算等等。在一些实施方案中,SoC可以包括多个计算子系统用于执行各种功能。例如,根据某些实施方案,SoC可以包括用于提供计算服务的服务器计算子系统和用于至少管理主机系统和服务器子系统的网络流量的网络计算子系统。每个计算子系统可以包括多个资源,诸如处理资源(例如,处理器核心)、存储器资源(例如,高速缓存层级、存储器控制器、存储器信道等等)、I/O资源(例如,外围设备、网络和总线接口)等等。在所公开的技术的实施方案中,每个资源可以是可重新配置的,它们可动态或在引导时间上分配给不同的计算子系统。例如,主机系统可以提供一系列的虚拟服务器实例,这系列的虚拟服务器实例可能需要为虚拟服务器实例中的每者重新配置不同的计算子系统以将必需资源与虚拟服务器实例的吞吐量要求匹配。所公开的技术的实施方案允许更有效地使用每个计算子系统的资源,从而增加系统的吞吐量。另外,所公开的技术的实施方案可以允许使用专用物理层或硬件路径进行每个计算子系统的各种资源的重新配置和隔离。例如,可以将多个已配置的资源动态分配给网络计算子系统的第一物理层构架(fabric)和/或服务器计算子系统的第二物理层构架。因此,本技术的实施方案可以通过使不同的计算子系统具有独立的物理层来提供硬件安全和抖动/性能隔离。
计算机网络可典型地包括多个服务器,所述多个服务器可以托管数据并且将服务提供给多个客户端或组织。例如,服务器可以将服务(诸如云计算、分析、web服务、存储、数据库、应用、部署服务等等)提供给可能更大数量客户端计算机。客户端或组织可以使用这些服务或数据来启动各种各样工作负载,诸如存储、数据处理和仓储、web和移动应用、存档和许多其它任务。一般来说,客户端从服务器请求服务或数据,并且服务器通过执行某些任务以通过网络服务请求和/或提供数据来做出响应。网络流量可根据多个因素(诸如在某个时间上请求服务的客户端的数量、服务器的容量等等)而变化。
在一些情况下,网络系统可监测网络流量来调节流量并最小化带宽拥塞。例如,网络系统可以通信地耦合到向不同的客户端提供web服务的主机系统(例如,x86服务器)。网络系统可以包括一个或多个处理器核心、高速缓存、网络加速逻辑、存储器控制器和I/O子系统等等。在一些实施方案中,网络系统还可执行与服务器(例如,主机系统)提供的web服务相关联的其它功能,诸如流量整形、网络存储处理等等。在一些情况下,该网络系统的功能可以被实现为可通信地耦合到主机系统的片上系统(SoC)上的网络计算子系统。例如,SoC可以使用插件卡耦合到主机系统(例如,一个或多个服务器)或者焊接在该主机系统的主板上。
在一些实施方案中,除了网络计算子系统之外,SoC还可包括服务器计算子系统和管理计算子系统。例如,服务器计算子系统可以被配置为提供计算服务,并且管理计算子系统可以被配置为管理网络计算子系统和服务器计算子系统的资源。在一些情况下,网络计算子系统和服务器计算子系统可以包括固定资源。例如,资源可以包括处理资源(例如,处理器核心)、存储器资源(例如,(例如,级1(L1)高速缓存、级2(L2)高速缓存、级3(L3)或末级高速缓存)、存储器控制器、存储器信道等等)和I/O资源(网络和总线接口)。
在大多数的情况下,一旦制造了计算系统,资源的数量和种类对于计算系统的每个计算子系统来说就是固定的。另外,如果SoC已制造为包括具有其固定资源的网络计算子系统和具有其固定资源的服务器计算子系统,那么SoC可受限于基于每个计算子系统的固定资源提供仅某些种类的服务。例如,在一些情况下,如果网络计算子系统具有少量固定处理和存储器资源,那么SoC仅会提供低性能网络处理。类似地,在一些情况下,如果服务器计算子系统具有少量固定处理和存储器资源,那么SoC仅会提供低性能的计算服务。因此,无论使用情况如何,客户端都受限于每个计算子系统的特定预定资源配置。
此外,在一些情况下,分配给每个计算子系统的固定资源可能导致对资源的低效使用。例如,在一些情况下,当执行低性能联网服务(例如,低网络或带宽拥塞)时,网络计算子系统可不利用其所有的资源。类似地,在一些情况下,当执行低性能计算服务(例如,并非所有虚拟服务器实例都被租出)时,服务器计算子系统可不利用其所有的资源。
所公开的技术的实施方案可以提供在片上系统(SoC)上的多个计算子系统间对各种资源的细粒动态划分。在一些实施方案中,计算子系统可以包括具有一个或多个处理核心的子系统。例如,SoC可以通信地耦合到主机系统(例如,x86服务器),以便提供各种服务,诸如流量监测、流量整形、计算等等。在一些实施方案中,SoC可以包括多个子系统,诸如用于监测网络流量的网络计算子系统、用于提供计算服务的服务器计算子系统、用于管理资源的管理计算子系统和具有用于内部通信和外部通信的各种接口的I/O子系统。SoC上的各种资源可以包括处理器核心、若干级的高速缓存层级(诸如级1(L1)高速缓存、级2(L2)高速缓存、级3(L3)或末级高速缓存)、存储器控制器、I/O等等。在所公开的技术的实施方案中,若干资源可以是可重新配置的,它们可动态分配给不同的计算子系统。例如,在一些实现方案中,已配置的资源可单独路由到不同的物理层。
在本技术的某些实施方案中,管理计算子系统可以动态配置每个资源。在一些实施方案中,管理计算子系统可基于工作负载需求来确定子系统的每个资源的配置。例如,如果服务器计算子系统相较网络计算子系统来说在某个时间上执行高性能计算,那么网络计算子系统的资源的一些可以被转移到服务器计算子系统,且反之亦然。在一些实施方案中,资源可以具有可基于策略的默认配置。在一些情况下,将在启动时间上应用这些策略。例如,管理计算子系统可基于软件寄存器的一个或多个引脚或数据字段来在启动时间上确定对资源的默认配置。因此,一旦已制造了SoC,所公开的技术的一些实施方案可以允许对资源的重新配置。例如,在通电复位后,可以在各种子系统间均匀划分资源。
在所公开的技术的某些实施方案中,构架网桥可提供路由构架以将每个已配置的资源映射到物理层。在一些实施方案中,可以存在多个物理层,其中每个物理层可以与相干构架相关联。例如,构架网桥可以将一个或多个可重新配置的资源(例如,处理器核心、末级高速缓存、存储器控制器、I/O控制器等等)映射到网络计算子系统的第一物理层构架或服务器计算子系统的第二物理层构架。在所公开的技术的各种实施方案中,第一物理层构架和第二物理层构架可以是彼此物理隔离的,以便提供降低的抖动和安全风险。例如,具有可通过每个计算子系统的它们各自物理层物理隔离的处理和存储器资源可以允许在这个计算子系统内将包含的任何安全风险。
在一些实施方案中,可以使用转向单元将已配置的资源转向到单独的计算子系统。例如,转向单元可以包括一个或多个多路复用器用于将已重新配置的处理核心、L3高速缓存、存储器控制器、I/O资源等等转向到网络计算子系统或服务器计算子系统。
典型SoC可以包括系统的集成到单个芯片中的功能。例如,SoC可以包括多个处理器核心、易失性和非易失性存储器模块、存储器控制器、一个或多个内部总线、标准接口、外围设备、调压器、电源管理电路、定时资源(诸如振荡器和锁相环)等等。在单个芯片上实现多个芯片功能可以降低制造和组装成本。另外,SoC通常具有较小占用面积和空间要求。因此,相较实现相同的功能的多芯片系统来说,SoC实现方案通常消耗更少功率并且更具成本效益。
所公开的技术的实施方案还可提供在SoC上的不同的计算子系统间对各种资源的细粒动态划分的灵活性。对每个资源进行动态重新配置的能力可以允许对资源的有效利用,从而满足工作负载需求而不折损性能。
虽然所公开的技术的实施方案被描述和示出为在SoC上的两个计算子系统间动态划分资源,但是本技术的方面不受限于仅仅在两个计算子系统间划分资源。例如,在一些实现方案中,可以在SoC上的多个计算子系统(例如,多于两个)间划分资源,而不偏离所公开的技术的范围。
图1示出了可用于执行本文中描述的实施方案的示例性的系统100。一般来说,SoC可以包括可重新配置的资源,所述可重新配置的资源可以在网络计算子系统和服务器计算子系统间动态重新划分。管理计算子系统可以被配置为管理网络计算子系统和服务器计算子系统的资源。
图1示出了被配置为与主机系统112通信的SoC 102。可使用主机接口114(诸如外围部件互连Express(PCIe)接口或任何其它合适接口)来执行SoC102与主机系统112之间的通信。
在一些情况下,主机系统112可向多个客户端提供多租户平台。例如,主机系统112可以将服务(诸如云计算、云存储、分析、web服务、数据库、应用、部署服务、网站托管等等)提供给不同的客户端。主机系统112可以包括服务器,例如,x86服务器。在一些实施方案中,主机系统112中的一个或多个处理器可连接到SoC 102上的插口。
SoC 102可以包括网络计算子系统104、可重新配置的资源106、服务器计算子系统108和管理计算子系统110。在一些实施方案中,计算子系统可以包括多个处理核心,其中每个处理核心可重新配置为用作网络计算子系统104的部分或用作服务器计算子系统108的部分。在一些实施方案中,可重新配置的资源106可以包括可重新配置的存储器资源,其中存储器资源的至少一部分可重新配置为用作网络计算子系统104的部分或用作服务器计算子系统108的部分。
网络计算子系统104可以被配置为提供网络相关功能,诸如网络流量整形、网络加速、网络存储处理等等。在一些实施方案中,网络计算子系统104可以包括网络接口控制器(NIC)或网络协处理器的至少一些功能。在某些实施方案中,网络计算子系统104可以包括与由主机系统112提供的web服务相关的一些功能,例如计费、费率、流量整形、加密、节流等等。
服务器计算子系统108可以被配置为提供计算服务,例如用于主机系统112的虚拟或物理资源。例如,根据需要,计算服务可以包括启动各种大小的虚拟机实例、将存储卷关联到虚拟机等等。在一些实施方案中,服务器计算子系统108可以用于卸下主机系统112的工作负载的一些。在一些情况下,主机系统112可与服务器计算子系统108一起提供高性能计算服务。例如,主机系统112可集中于处理快速周转服务,并且可以将低性能工作负载卸下到服务器计算子系统108,从而增加系统的吞吐量。
可重新配置的资源106可以包括可动态重新配置的多个资源。例如,在一些实施方案中,可重新配置的资源106可以包括可重新配置的处理核心、可重新配置的存储器资源、可重新配置的I/O资源和可重新配置的末级高速缓存资源。在一些实施方案中,可重新配置的资源106中的至少一些可动态划分以用作网络计算子系统104或服务器计算子系统108的部分。例如,在一些实现方案中,可重新配置的资源106可使用构架网桥或合适转向单元单独路由到不同的物理层。
可重新配置的处理核心可以包括多个处理核心。在一些实施方案中,可重新配置的处理核心可以包括多核心处理器。多核心处理器可以包括位于相同的处理器内的多个处理单元。在一些实施方案中,可以在2核心处理器的粒度级别下执行对处理核心的动态划分。在一些实施方案中,多核心处理器可以共享某些资源,诸如在多个核心之间的总线和L1和/或L2高速缓存。在一些情况下,单核心处理器或多核心处理器中的每个核心还可包括多个执行逻辑处理器(或线程)。在这种核心(支持多个逻辑处理器)中,还可共享执行流水线的若干阶段且还有较低级高速缓存(例如,L1或L2)。在一些实现方案中,所公开的技术的实施方案可以允许使用可提供硬件安全和性能/抖动隔离的专用硬件路径将可重新配置的处理核心路由到与不同的计算子系统相关联的不同的物理层。
可重新配置的存储器资源可以包括可重新配置的存储器控制器等等。存储器控制器可以包括DDR控制器、DDR2控制器或任何合适的控制器,并且可以用于管理对外部存储器的访问。在一些实施方案中,L1和/或L2高速缓存可以在处理器的多个核心之间共享。因此,在一些实施方案中,对处理资源的划分可以包括划分处理核心以及共享L1/L2高速缓存。在一些实现方案中,所公开的技术的实施方案可以允许使用可提供硬件安全和性能/抖动隔离的专用硬件路径将可重新配置的存储器资源路由到与不同的计算子系统相关联的不同的物理层。
可重新配置的I/O资源可以包括用于内部通信和外部通信的各种I/O接口。例如,可重新配置的I/O资源可以包括用于与主机系统112通信的第一接口、用于与网络计算子系统104通信的第二接口、用于与服务器计算子系统108通信的第三接口和用于与网络通信的第四接口。例如,主机接口114可以用于与主机系统112通信。主机接口114可使用任何标准接口(诸如PCIe接口)来实现。在一些实现方案中,所公开的技术的实施方案可以允许使用可提供硬件安全和性能/抖动隔离的专用硬件路径将可重新配置的I/O资源路由到与不同的计算子系统相关联的不同的物理层。
可重新配置的末级高速缓存资源可以包括末级高速缓存或级3(L3)高速缓存。在一些实施方案中,一个L3高速缓存可由一个计算子系统共享。在本说明书中,术语末级高速缓存和L3高速缓存可以互换使用,然而,在不偏离本技术的范围的情况下,在一些系统中,末级高速缓存可以是级2高速缓存或级4高速缓存或任何其它层级。在一些实现方案中,所公开的技术的实施方案可以允许使用可提供硬件安全和性能/抖动隔离的专用硬件路径将可重新配置的末级高速缓存资源路由到与不同的计算子系统相关联的不同的物理层。
管理计算子系统110可以被配置为管理SoC 102上的不同的计算子系统的各种资源。在一些实施方案中,管理计算子系统110可以被配置为在网络计算子系统104与服务器计算子系统108之间动态执行对可重新配置的资源106的细粒划分。在一些实施方案中,管理计算子系统110可以在启动后配置网络计算子系统104和服务器计算子系统108的资源。例如,管理计算子系统110可以在启动时重新配置资源中的至少一些,以便通过分别将所有处理和存储器资源映射到网络计算子系统104或映射到服务器计算子系统108将SoC 102配置为仅网络系统或配置为仅服务器系统。在一些实施方案中,管理计算子系统110可以包括一个或多个资源,所述一个或多个资源可以在网络计算子系统104与服务器计算子系统108之间共享。例如,在一些实现方案中,共享资源可使用构架网桥或转向单元映射到网络计算子系统104和服务器计算子系统108两者。
在一些实施方案中,可在通电复位时基于默认配置对可重新配置的资源106进行划分。在一些实施方案中,默认配置可以基于策略(例如,由组织提供的),或可以是操作者提供的配置。管理计算子系统110可以被配置为在通电复位后动态重新划分可重新配置的资源106。在一些实施方案中,管理计算子系统110可基于软件配置或硬件配置来确定可重新配置的资源106的重新划分的配置。例如,管理计算子系统110可基于SoC 102的一个或多个引脚或基于软件寄存器中的数据字段来确定重新划分配置。
图2示出了根据本技术的一些实施方案的具有可重新配置的资源的系统200的高级图。
SoC 102可以包括网络计算子系统104、服务器计算子系统108、管理计算子系统110和共享资源子系统204。可重新配置的资源106可以使用构架网桥202通信地耦合到网络计算子系统104、服务器计算子系统108和管理计算子系统110。可重新配置的资源106可以包括可重新配置的处理核心206、可重新配置的存储器资源208、可重新配置的I/O资源210和可重新配置的末级高速缓存资源212。可重新配置的资源106可由管理计算子系统110动态配置并且可由管理计算子系统110在网络计算子系统104与服务器计算子系统108之间重新划分。构架网桥202可以将可重新配置的资源106中的每个已配置的资源映射到网络计算子系统104的第一物理层构架或服务器计算子系统108的第二物理层构架。在某些实施方案中,转向单元可以用于将已配置的资源转向到网络计算子系统104或转向到服务器计算子系统108。在一些实施方案中,共享资源可使用构架网桥202或转向单元(未示出)路由到网络计算子系统104和服务器计算子系统108两者。
网络计算子系统104可以包括网络计算子系统高速缓存相干构架214和加速单元216。在一些实施方案中,可重新配置的处理核心206、可重新配置的存储器资源208、可重新配置的I/O资源210和可重新配置的末级高速缓存资源212的至少一部分可重新配置为用作网络计算子系统104的部分。在一些实施方案中,网络计算子系统高速缓存相干构架214可耦合到可能已映射到网络计算子系统104的处理核心、存储器资源、I/O资源和末级高速缓存资源。例如,网络计算子系统高速缓存相干构架214可以表示网络计算子系统104的第一物理层构架,所述第一物理层构架可以将网络计算子系统104的已配置的资源与服务器计算子系统108的已配置的资源物理隔离。
服务器计算子系统108可以包括服务器计算子系统高速缓存相干构架218。在一些实施方案中,可重新配置的处理核心206、可重新配置的存储器资源208、可重新配置的I/O资源210和可重新配置的末级高速缓存资源212的至少一部分可重新配置为用作服务器计算子系统108的部分。在一些实施方案中,服务器计算子系统高速缓存相干构架218可耦合到可能已映射到服务器计算子系统108的处理核心、存储器资源、I/O资源和末级高速缓存资源。例如,服务器计算子系统高速缓存相干构架218可以表示服务器计算子系统108的第二物理层构架,所述第二物理层构架可以将服务器计算子系统108的已配置的资源与网络计算子系统104的已配置的资源物理隔离。
可重新配置的处理核心206可以包括多个可重新配置的处理核心,所述多个可重新配置的处理核心可以在网络计算子系统104与服务器计算子系统108之间进行划分。在一些实施方案中,来自可重新配置的处理核心206的至少一个处理核心可重新配置为用作网络计算子系统104的部分或用作服务器计算子系统108的部分。例如,在一种情况下,可重新配置的处理核心206可以包括十二个2核心处理器。在通电复位时,基于默认配置,可以将四个2核心处理器映射到网络计算子系统104,并且可以将八个2核心处理器映射到服务器计算子系统108。例如,默认配置可以基于策略或由操作者提供。在一些实施方案中,L1和/或L2高速缓存可以在处理器的多个核心之间共享。例如,每个L1和/或L2高速缓存(例如,4MB高速缓存)可与一个多核心处理器(例如,2核心处理器)集成。在一些情况下,L1高速缓存可以用作初级高速缓存,并且L2高速缓存可以用作二级高速缓存。因此,对可重新配置的处理核心206的重新配置可以包括对多个可重新配置的处理核心的划分以及集成L1/L2高速缓存。管理计算子系统110可动态重新配置可重新配置的处理核心206以在网络计算子系统104与服务器计算子系统108之间重新划分资源。在一些实施方案中,管理计算子系统110可以在网络计算子系统104与服务器计算子系统108之间动态重新划分资源,这取决于每个子系统的性能要求。例如,主机系统112可以被配置为提供一系列的虚拟实例类型(例如,小型计算、大型计算、小型联网、大型联网等等),这系列的虚拟实例类型可能需要为虚拟服务器实例中的每者重新配置不同的子系统以将必需资源与服务器实例的吞吐量要求匹配。在一些实施方案中,可重新配置的处理核心206中的每个可配置的处理器核心可以具有经由构架网桥202或转向单元连接到计算子系统的接口。例如,在一些实现方案中,可重新配置的处理核心206可使用路由构架(例如,构架网桥202)或转向单元(未示出)单独路由到网络计算子系统104或路由到服务器计算子系统108。
可重新配置的存储器资源208可以包括存储器控制器。存储器控制器可以包括DDR控制器、DDR2控制器或任何合适的控制器,并且可以用于管理对外部存储器(例如,系统存储器)的访问。在一些实施方案中,可基于每个处理核心的带宽和存储器容量来重新配置可重新配置的存储器资源208。在一些实施方案中,来自可重新配置的存储器资源208的存储器资源的至少一部分可以被配置为用作网络计算子系统104的部分或用作服务器计算子系统108的部分。在一些实施方案中,可重新配置的存储器资源208中的每个可配置的资源可以具有经由构架网桥202或转向单元连接到计算子系统的接口。例如,在一些实现方案中,可重新配置的存储器资源208可使用路由构架(例如,构架网桥202)或转向单元(未示出)单独路由到网络计算子系统104或路由到服务器计算子系统108。
可重新配置的I/O资源210可以包括各种I/O接口,诸如网络接口、内部总线接口和外部总线接口。在一些实施方案中,可重新配置的I/O资源210可以包括用于与主机系统112通信的第一接口(例如,如参考图1讨论的主机接口114)。在一些实施方案中,可重新配置的I/O资源210可以包括用于与网络计算子系统104通信的第二接口。例如,在一些实施方案中,网络计算子系统104可使用可能已通过构架网桥202映射到主机接口114的第二接口与主机系统112通信。在一些实施方案中,可重新配置的I/O资源210可以包括用于与服务器计算子系统108通信的第三接口。例如,在一些实施方案中,服务器计算子系统108可使用可能已通过构架网桥202映射到主机接口114的第三接口与主机系统112进行通信。在一些实施方案中,第一接口、第二接口和第三接口可以使用标准接口(诸如PCIe接口)实现。可重新配置的I/O资源210可以包括用于与网络通信的第四接口,例如,网络接口218。例如,网络接口218可以基于诸如以太网、令牌环、Wi-Fi、ATM(异步传输模式)等等标准。在一些实施方案中,可重新配置的I/O资源210还可包括用于连接到外部大容量存储设备(诸如硬盘驱动器、光学驱动器等等)的接口。例如,接口可以基于串行高级技术附件(其还称为串行ATA或SATA)。在一些实施方案中,可重新配置的I/O资源210的至少一部分可重新配置为用作网络计算子系统104的部分或用作服务器计算子系统108的部分。在一些实施方案中,可重新配置的I/O资源210中的每个接口可经由构架网桥202或转向单元连接到计算子系统。例如,在一些实现方案中,可重新配置的I/O资源210可使用路由构架(例如,构架网桥202)或转向单元(未示出)单独路由到网络计算子系统104或路由到服务器计算子系统108。
可重新配置的末级高速缓存资源212可以包括末级高速缓存,诸如L3高速缓存。在一些实施方案中,可重新配置的末级高速缓存资源212的至少一部分可重新配置为用作网络计算子系统104的部分或用作服务器计算子系统108的部分。例如,L3高速缓存可以在网络计算子系统104与服务器计算子系统108之间进行划分。例如,16MB L3高速缓存可以被划分为两个8MB L3高速缓存,其中一个8MB L3高速缓存可以被分配给网络计算子系统104,并且另一8MB高速缓存可以被分配给服务器计算子系统108。在一些实施方案中,可以在2MB的细粒级别下重新配置L3高速缓存。例如,L3高速缓存可重新划分为分配给网络计算子系统104的2MB L3高速缓存和分配给服务器计算子系统108的14MB L3高速缓存。在一些实施方案中,可重新配置的末级高速缓存资源212可基于每个计算子系统的已配置的处理核心的存储器和带宽需求来在网络计算子系统104与服务器计算子系统108之间与可重新配置的处理核心302和可重新配置的存储器资源208动态重新划分。在一些实施方案中,可重新配置的末级高速缓存资源212中的每个可配置的资源可以具有经由构架网桥202或转向单元连接到计算子系统的接口。例如,在一些实现方案中,可重新配置的末级高速缓存资源212可使用路由构架(例如,构架网桥202)或转向单元(未示出)单独路由到网络计算子系统104或路由到服务器计算子系统108。
网络计算子系统高速缓存相干构架214可以表示第一物理层构架,所述第一物理层构架可以被配置为用作网络计算子系统的部分。在一些实现方案中,网络计算子系统高速缓存相干构架214可连接到网络计算子系统104的所有已配置的资源,并且可以将网络计算子系统104与服务器计算子系统108隔离,从而提供抖动和性能隔离。网络计算子系统高速缓存相干构架214可以被配置为维持在网络计算子系统104的不同部件间的相干性,例如,分配给网络计算子系统104的可重新配置的资源(例如,可重新配置的处理核心206、可重新配置的存储器资源208、可重新配置的I/O资源210和可重新配置的末级高速缓存资源212)、加速单元216和共享资源子系统204。在一些情况下,网络计算子系统高速缓存相干构架214可以表示网络计算子系统104的通信骨干。在一些实施方案中,网络计算子系统高速缓存相干构架214可以被配置为确保所有共享数据在网络计算子系统104中是相干的。例如,如果某些共享数据存储在两个或更多个位置(例如,多个处理器、处理器的多个核心、高速缓存等等)中,那么网络计算子系统高速缓存相干构架214可操作以维持在不同位置的共享数据的一致性。在一些实施方案中,网络计算子系统高速缓存相干构架214可以包括相干性控制器和相干性目录用于维持在网络计算子系统104的不同部件间的相干性。
加速单元216可以被配置为提供对网络计算子系统104的联网加速。在一些实施方案中,加速单元216可以包括不同类型的加速器,诸如硬件加速器、各种流水线等等。加速单元216还可支持RDMA(远程直接存储器访问)、密码引擎等等。例如,密码引擎可以在硬件中执行加密功能,从而减少软件开销并且加速执行与联网相关的解密、加密和认证功能。在一些实施方案中,加速单元216可能不由服务器计算子系统108访问。
共享资源单元204可以包括可在网络计算子系统104与服务器计算子系统108之间共享的一个或多个资源。在一些实现方案中,共享资源单元204可以是管理计算子系统110的部分。在一些实施方案中,共享资源单元204可以包括可在网络计算子系统104与服务器计算子系统108之间安全共享而不引起任何抖动或安全问题的一个或多个外围设备。例如,共享资源单元204可以包括随机数发生器、通信邮箱、便笺式存储器、闪存存储器等等。在一些实施方案中,共享资源单元204中的一个或多个资源可使用构架网桥202或转向单元单独路由到网络计算子系统104和服务器计算子系统108。
服务器计算子系统高速缓存相干构架218可以表示第二物理层构架,所述第二物理层构架可以被配置为用作服务器计算子系统108的部分。在一些实现方案中,服务器计算子系统高速缓存相干构架218可连接到服务器计算子系统108的所有已配置的资源,并且可以将服务器计算子系统108与网络计算子系统104隔离,从而提供抖动和性能隔离。服务器计算子系统高速缓存相干构架218可以被配置为维持在服务器计算子系统108的不同部件间的相干性,例如,分配给服务器计算子系统108的可重新配置的资源(例如,可重新配置的处理核心206、可重新配置的存储器资源208、可重新配置的I/O资源210和可重新配置的末级高速缓存资源212)和共享资源子系统204。在一些实施方案中,服务器计算子系统高速缓存相干构架218可以被配置为确保所有共享数据在服务器计算子系统108中是相干的。例如,如果某些共享数据存储在两个或更多个位置(例如,多个处理器、高速缓存等等)中,那么服务器计算子系统高速缓存相干构架218可操作以维持在不同位置的共享数据的一致性。在一些实施方案中,服务器计算子系统高速缓存相干构架218可以包括相干性控制器和相干性目录用于维持在服务器计算子系统108的不同部件间的相干性。
构架网桥202可以表示用于将每个资源映射到物理层的路由构架。例如,构架网桥202可以将一个或多个资源(例如,可重新配置的处理核心206、可重新配置的存储器资源208、可重新配置的I/O资源210和可重新配置的末级高速缓存资源212)映射到可与网络计算子系统104或服务器计算子系统108相关联的物理层构架。在本技术的一些实施方案中,可以存在多个物理层,其中每个物理层可以与子系统的相干构架相关联。例如,网络计算子系统高速缓存相干构架214可以表示网络计算子系统104的第一物理层构架,并且服务器计算子系统高速缓存相干构架218可以表示服务器计算子系统108的第二物理层构架。在一些实施方案中,网络计算子系统高速缓存相干构架214和服务器计算子系统高速缓存相干构架218中的每者可以具有附接到资源的端口。在一些实施方案中,构架网桥202可以具有用于例如经由资源的接口来物理连接到可重新配置的资源206中的每个资源的端口。构架网桥202可以被配置为将已附接的资源映射到各自物理层构架的端口。例如,网络计算子系统高速缓存相干构架214和服务器计算子系统高速缓存相干构架218中的每者可以被实现为交叉条、网、环或可允许附接物理连接到构架网桥202上的端口的资源的任何其它合适实现方案。所公开的技术的实施方案可以允许每个计算子系统的被物理隔离的物理层构架,这会降低计算子系统的抖动和安全风险两者。
图3示出了根据本技术的一些实施方案的具有可重新配置的处理和存储器资源的示例性的SoC。
SoC 102可以包括可重新配置的处理核心302、L1/L2高速缓存304、构架网桥202、网络计算子系统104、服务器计算子系统108、管理计算子系统110、转向单元306、可重新配置的存储器控制器308和共享资源子系统204。网络计算子系统104可以包括网络计算子系统高速缓存相干构架214、L3高速缓存310、加速单元216和网络I/O子系统312。在一些实施方案中,可重新配置的处理核心302、L1/L2高速缓存304和可重新配置的存储器控制器308的至少一部分可重新配置为用作网络计算子系统104的部分。服务器计算子系统108可以包括服务器计算子系统高速缓存相干构架218、L3高速缓存314、引导外围设备316和服务器I/O子系统318。在一些实施方案中,可重新配置的处理核心302、L1/L2高速缓存304和可重新配置的存储器控制器308的至少一部分可重新配置为用作服务器计算子系统108的部分。
可重新配置的处理核心302可以包括多个处理核心,其中每个处理核心可重新配置为用作网络计算子系统104的部分或用作服务器计算子系统108的部分。在一些实施方案中,可重新配置的处理核心302可以包括多个多核心处理器,其中每个多核心处理器(例如,2核心处理器、3核心处理器等等)可重新配置为用作网络计算子系统104的部分或用作服务器计算子系统108的部分。L1/L2高速缓存304可以包括可重新配置为用作网络计算子系统104的部分或用作服务器计算子系统108的部分的多个L1和/或L2高速缓存。在一些实施方案中,L1/L2高速缓存304可以内置到可重新配置的处理核心302中。L3高速缓存可以在SoC102上,并且每个L3高速缓存可由同一个子系统的所有处理核心共享。在一些实施方案中,可重新配置的处理核心302和L1/L2高速缓存304可由管理计算子系统110在网络计算子系统104与服务器计算子系统108之间动态重新划分。例如,在一种情况下,可重新配置的处理核心302和对应L1/L2高速缓存304的一半可以被映射到网络计算子系统104,而另一半可以被映射到服务器计算子系统108。在另一情况下,可重新配置的处理核心302和对应L1/L2高速缓存304的三分之一可以被映射到网络计算子系统104,而三分之二可以被映射到服务器计算子系统108。在一些实施方案中,L3高速缓存310和L3高速缓存314可基于每个计算子系统的已配置的处理核心的存储器和带宽需求来在网络计算子系统104与服务器计算子系统108之间与可重新配置的处理核心302和L1/L2高速缓存304动态重新划分。在一些实现方案中,可重新配置的处理核心302和L1/L2高速缓存304可使用构架网桥202或转向单元306路由到不同的物理层构架(例如,网络计算子系统高速缓存相干构架214和服务器计算子系统高速缓存相干构架218)。
网络计算子系统高速缓存相干构架214可以被配置为维持在网络计算子系统104的不同部件间的相干性,例如,分配给网络计算子系统104的已重新配置的资源(例如,可重新配置的处理核心302中的一个或多个处理核心和可重新配置的存储器控制器308中的一个或多个存储器控制器,L1/L2高速缓存304的一部分,L3高速缓存310)、网络I/O子系统312、加速单元216和共享资源子系统204,并且还配置为将分配给网络计算子系统104的所有已重新配置的资源与服务器计算子系统108物理隔离。在一些实施方案中,网络计算子系统高速缓存相干构架214可以被配置为确保所有共享数据在网络计算子系统104中是相干的。
在本技术的一些实施方案中,L3高速缓存310可以是可重新配置的末级高速缓存资源212的一部分,如参考图2讨论的。例如,L3高速缓存310可使用构架网桥202或转向单元306路由到网络计算子系统104。在一些实施方案中,L3高速缓存310可由被配置为用于网络计算子系统104的所有处理核心(例如,可重新配置的处理核心302中的一些)共享。
网络I/O子系统312可以包括与各种内部部件和外部部件通信的一个或多个接口。例如,网络I/O子系统312可以包括用于与主机系统112通信的接口。网络I/O子系统312可以包括用于与服务器计算子系统108通信的内部接口,例如,接口320。在一些实施方案中,用于与主机系统112和服务器计算子系统108通信的接口可以基于标准接口,诸如PCIe。网络I/O子系统312可以包括用于与网络(例如,因特网、内联网)等等通信的接口。在一些实施方案中,当并未使用服务器计算子系统108时,可不利用用于与服务器计算子系统108通信的接口320。在一些实施方案中,服务器计算子系统108可例如经由网络I/O子系统312(例如,经由接口320)与主机系统112和网络进行通信。返回参考图2,在一些实施方案中,主机接口114和网络接口218可以被配置为用作网络计算子系统104的部分,例如,通过构架网桥202映射到网络I/O子系统312接口。
服务器计算子系统高速缓存相干构架218可以被配置为维持在服务器计算子系统108的不同部件间的相干性,例如,分配给服务器计算子系统108的已重新配置的资源(例如,可重新配置的处理核心302中的一个或多个处理核心和可重新配置的存储器控制器308中的一个或多个存储器控制器,L1/L2高速缓存304的一部分,L3高速缓存314)、服务器I/O子系统318和共享资源子系统204,并且还配置为将分配给服务器计算子系统108的所有已重新配置的资源与网络计算子系统104物理隔离。在一些实施方案中,服务器计算子系统高速缓存相干构架218可以被配置为确保所有共享数据在服务器计算子系统108中是相干的。
在本技术的一些实施方案中,L3高速缓存314可以是可重新配置的末级高速缓存资源212的一部分,如参考图2讨论的。例如,L3高速缓存314可使用构架网桥202或转向单元路由到服务器计算子系统108。在一些实施方案中,L3高速缓存314可由被配置为用于服务器计算子系统108的所有处理核心(例如,可重新配置的处理核心302中的一些)共享。
服务器I/O子系统318可以包括与各种内部部件和外部部件通信的一个或多个接口。在一些实施方案中,服务器I/O子系统318可以包括用于与主机系统112通信的接口。例如,接口可以基于预定义的接口,诸如PCIe。服务器I/O子系统318可以包括用于与网络计算子系统104通信的内部接口,例如,接口320。服务器I/O子系统318可以包括用于与网络(例如,因特网、内联网)等等通信的接口。在一些实施方案中,当所有可重新配置的资源被配置为用于服务器计算子系统108时,例如,当并未使用网络计算子系统104时,可不利用用于与网络计算子系统104通信的接口320。因此,在此类情况下,服务器计算子系统108可能不经由网络计算子系统104与主机系统112和网络进行通信,相反,服务器计算子系统108可经由服务器I/O子系统318来利用其接口与主机系统112通信和利用其接口与网络通信。例如,返回参考图2,在一些实施方案中,主机接口114和网络接口218可以被配置为用作服务器计算子系统108的部分,例如,通过构架网桥202映射到服务器I/O子系统318接口。在一些实施方案中,服务器I/O子系统318还可包括用于连接到外部大容量存储设备(诸如硬盘驱动器、光学驱动器等等)的接口。例如,接口可以基于串行高级技术附件(其还称为串行ATA或SATA)。
引导外围设备316可以包括服务器计算子系统108的一个或多个外围设备。例如,引导外围设备316可以包括引导ROM、EEPROM或闪存存储器。在一些实施方案中,引导外围设备316中的一者可以包括用于引导服务器计算子系统108的操作系统的BIOS软件。
管理计算子系统110可以被配置为管理SoC 102的各种计算子系统。管理计算子系统110还可被配置为管理与不同的计算子系统相关联的资源。例如,管理计算子系统110可重新配置可重新配置的处理核心302、L1/L2高速缓存304和可重新配置的存储器控制器308以在网络计算子系统104与服务器计算子系统108之间重新划分处理和存储器资源。在一些实施方案中,管理计算子系统110可基于软件配置或硬件配置来确定对处理和存储器资源的重新配置。
可重新配置的存储器控制器308可以包括一个或多个存储器控制器。可重新配置的存储器控制器308可以包括DDR控制器、DDR2控制器或任何合适的控制器,并且可以用于管理例如经由一个或多个存储器信道(未示出)对外部存储器的访问。在一些实施方案中,可重新配置的存储器控制器308中的一个或多个可以被配置为用作网络计算子系统104或服务器计算子系统108的部分。例如,在一些实现方案中,可重新配置的存储器控制器308可使用构架网桥202或转向单元306路由到不同的物理层构架(例如,网络计算子系统高速缓存相干构架214和服务器计算子系统高速缓存相干构架218)。
共享资源子系统204可以包括可在网络计算子系统104与服务器计算子系统108之间共享的一个或多个资源。共享资源子系统318可以通信地耦合到网络计算子系统高速缓存相干构架214和服务器计算子系统高速缓存相干构架218。
转向单元306可以被配置为将可重新配置的存储器控制器308中的每个存储器控制器转向到网络计算子系统104(例如,经由网络计算子系统高速缓存相干构架214)或转向到服务器计算子系统108(例如,经由服务器计算子系统高速缓存相干构架218)。在一些实施方案中,转向单元306可以包括多路复用器、多路分解器或用于执行转向的任何其它合适实现方案。例如,在一些情况下,转向单元306可以将存储器数据和控制信号从可重新配置的存储器控制器308转向或路由到网络计算子系统104或转向或路由到服务器计算子系统108,并且在一些其它情况下,可以将来自网络计算子系统104或服务器计算子系统108的存储器数据和控制信号路由到可重新配置的存储器控制器308。在一些实施方案中,转向单元306可基于对可重新配置的处理核心302和所需存储器带宽的划分来确定可重新配置的存储器控制器308的转向。在一些实施方案中,转向单元306可以与可重新配置的存储器控制器308集成以执行可重新配置的存储器控制器308中的每个存储器控制器向任一计算子系统的转向。
在一些实现方案中,转向单元306还可被配置为将已重新配置的处理核心302和L1/L2高速缓存304转向到网络计算子系统104(例如,经由网络计算子系统高速缓存相干构架214)或转向到服务器计算子系统108(例如,经由服务器计算子系统高速缓存相干构架218)。在一些实现方案中,转向单元306还可被配置为将共享资源子系统204中的一个或多个共享资源转向到网络计算子系统104和转向到服务器计算子系统108。
图4示出了本技术的一些实施方案中的包括已重新配置的资源的SoC 402的示例性的框图。例如,参考图3,可重新配置的处理核心302、L1/L2高速缓存304和可重新配置的存储器控制器308已经重新配置并且在网络计算子系统104与服务器计算子系统108之间进行重新划分。例如,图4中示出的配置可以是在通电时的默认配置。
图4示出了包括网络计算子系统104、服务器计算子系统108、构架网桥202、管理计算子系统110和共享资源子系统204的SoC 102。除了如参考图3讨论的网络计算子系统高速缓存相干构架214、L3高速缓存310、网络I/O子系统312和加速单元216之外,网络计算子系统104可以包括一个或多个已重新配置的资源,诸如网络计算子系统处理核心402、L1/L2高速缓存404和网络计算子系统存储器控制器406。除了如参考图3讨论的服务器计算子系统高速缓存相干构架218、L3高速缓存314、服务器I/O子系统318和引导外围设备316之外,服务器计算子系统108可以包括一个或多个已重新配置的资源,诸如服务器计算子系统处理核心408、L1/L2高速缓存410和网络计算子系统存储器控制器412。
网络计算子系统处理核心402可以包括一个或多个处理核心,所述一个或多个处理核心已经例如通过管理计算子系统110配置为用作网络计算子系统104的部分。在一些实施方案中,可能已经在2个处理核心的粒度级别下划分网络计算子系统处理核心402。在一些实施方案中,L1/L2高速缓存404可能已划分为使得一个L1/L2高速缓存可由网络计算子系统处理核心402中的每个多核心处理器(例如,2核心处理器)共享。
网络计算子系统存储器控制器406可以包括一个或多个存储器控制器,所述一个或多个存储器控制器已经例如通过管理计算子系统110重新配置为用作网络计算子系统104的部分。返回参考图3,网络计算子系统存储器控制器406可以包括可重新配置的存储器控制器308中的一个或多个存储器控制器,所述存储器控制器已经被转向单元306转向到网络计算子系统104。
服务器计算子系统处理核心408可以包括一个或多个多核心处理器,所述一个或多个多核心处理器已经例如通过管理计算子系统110配置为用作服务器计算子系统108的部分。在一些实施方案中,可能已经在2个处理核心的粒度级别下划分服务器计算子系统处理核心408。在一些实施方案中,L1/L2高速缓存410可能已划分为使得一个L1/L2高速缓存可由服务器计算子系统处理核心408中的每个多核心处理器(例如,2核心处理器)共享。
服务器计算子系统存储器控制器412可以包括一个或多个存储器控制器,所述一个或多个存储器控制器已经例如通过管理计算子系统110重新配置为用作服务器计算子系统108的部分。返回参考图3,服务器计算子系统存储器控制器412可以包括可重新配置的存储器控制器308中的一个或多个存储器控制器,所述存储器控制器已经被转向单元306转向到服务器计算子系统108。
网络计算子系统高速缓存相干构架214可以通过将网络计算子系统104的所有已配置的资源隔离到第一物理层来提供减少的抖动和安全问题,并且服务器计算子系统高速缓存相干构架218可以通过将服务器计算子系统108的所有已配置的资源隔离到第二物理层来提供减少的抖动和安全问题。
在一些实施方案中,在引导时间上,可重新配置的处理和存储器资源可以被划分为如图4所示的示例性的配置。在一些情况下,如果服务器计算子系统108被配置为提供高性能计算服务,但是计算资源未完全地利用(例如,并非虚拟服务器上的所有时隙都被租出),那么管理计算子系统110可以将处理和存储器资源中的一些从服务器计算子系统108动态转移到网络计算子系统104。类似地,在一些其它情况下,如果服务器计算子系统108被配置为提供低性能计算服务,但是所有资源都完全地利用(例如,虚拟服务器上的所有时隙都被租出),那么管理计算子系统110可以将处理和存储器资源中的一些从网络计算子系统104动态转移到服务器计算子系统108以更好地利用资源。
图5示出了本技术的一些实施方案中的具有仅服务器配置的SoC 102的示例性的框图。如先前讨论的,在一些情况下,例如当并未利用网络计算子系统104的功能时,管理子系统110可以将所有可重新配置的资源重新划分以用作服务器计算子系统108的部分。例如,返回参考图3,可重新配置的处理核心302、L1/L2高速缓存304和可重新配置的存储器控制器308已经被重新配置为用作服务器计算子系统108的部分。在一些情况下,这种对资源的重新配置可以在启动时间上发生。
图5示出了包括服务器计算子系统108、构架网桥202、管理计算子系统110和共享资源子系统204的SoC 102。如参考图4讨论的,在这个实施方案中并未使用网络计算子系统104。例如,在一些实施方案中,SoC 102可以被配置为提供仅服务器功能,并且因此可不使用网络功能。
服务器计算子系统108可以包括与图4中讨论的类似的部件。服务器计算子系统处理核心408和L1/L2高速缓存410可能已经例如通过管理计算子系统110配置为用作服务器计算子系统108的部分。服务器计算子系统存储器控制器412可以包括可重新配置的存储器控制器308的一些或全部,所述存储器控制器可能已经被转向单元306转向到服务器计算子系统108。
接口320可不由服务器计算子系统108用来经由网络计算子系统104与主机系统112和与网络通信。在本技术的一些实施方案中,服务器计算子系统108可以使用服务器I/O子系统318与主机系统112和网络通信。例如,返回参考图2,主机接口114和网络接口218可重新配置为用作服务器计算子系统108的部分,例如,通过构架网桥202将服务器I/O子系统318接口映射到主机接口114和网络接口218。
图6示出了本技术的一个实施方案中的SoC 102的示例性的框图。一般来说,SoC可以包括灵活的资源池,所述灵活的资源池可以被动态配置为用作网络计算子系统的部分或用作服务器计算子系统的部分。网络计算子系统和服务器计算子系统还可每个包括专用处理和存储器资源。
除了如参考图3讨论的网络计算子系统104、服务器计算子系统108、构架网桥202、管理计算子系统110、转向单元306、可重新配置的存储器控制器308和共享资源子系统204之外,SoC 102可以包括可重新配置的处理核心602和L1/L2高速缓存604。除了如图4讨论的多个部件之外,网络计算子系统104可以包括网络计算子系统专用处理核心608和L1/L2高速缓存610。例如,网络计算子系统104还可包括网络计算子系统高速缓存相干构架214、L3高速缓存310、网络I/O子系统312和加速单元216。除了如图4讨论的多个部件之外,服务器计算子系统108可以包括服务器计算子系统专用处理核心612和L1/L2高速缓存614。例如,服务器计算子系统108还可包括服务器计算子系统高速缓存相干构架218、L3高速缓存314和服务器I/O子系统318。
可重新配置的处理核心602可以包括多个处理核心,所述多个处理核心可以被动态配置为用作网络计算子系统104的部分或用作服务器计算子系统108的部分。L1/L2高速缓存604可以包括可动态配置为用作网络计算子系统104的部分或用作服务器计算子系统108的部分的多个L1/L2高速缓存。在一些实施方案中,L1/L2高速缓存604中的每者可由一个或多个处理核心共享。例如,管理计算子系统110可基于工作负载需求来确定将处理核心和L1/L2高速缓存中的每个折曲到网络计算子系统104或折曲到服务器计算子系统108。作为实例,在一个实施方案中,网络计算子系统专用处理核心606、服务器计算子系统专用处理核心610和可重新配置的处理核心602中的每者可以包括八个2核心处理器。在本技术的实施方案中,可重新配置的处理核心602中的一个或多个可以被折曲到网络计算子系统104或折曲到服务器计算子系统108。例如,在一个情况中,管理计算子系统110可以确定在某个时间上服务器计算子系统108相较网络计算子系统104来说可以提供高性能计算服务。因此,在这种情况下,来自可重新配置的处理核心602的两个2核心处理器可以被映射到网络计算子系统104,且来自可重新配置的处理核心602的六个2核心处理器可以被映射到服务器计算子系统108。类似地,如果管理计算子系统110确定在某个时间上网络计算子系统104相较服务器计算子系统108来说可以提供高性能联网服务。因此,在这种情况下,来自可重新配置的处理核心602的两个2核心处理器可以被映射到服务器计算子系统108,且来自可重新配置的处理核心602的六个2核心处理器可以被映射到网络计算子系统104。在一些实施方案中,可重新配置的处理核心602的全部可以被映射到任一个计算子系统,或者都不可以被映射到任一个计算子系统,这取决于工作负载需求。
转向单元306可以被配置为将可重新配置的存储器控制器308中的一个或多个存储器控制器动态转向到网络计算子系统104或转向到服务器计算子系统108。例如,管理计算子系统110可以将可重新配置的存储器控制器308配置为用作网络计算子系统104的部分或用作服务器计算子系统108的部分。在一些实施方案中,管理计算子系统110可以被配置为将控制信号提供给转向单元306以将可重新配置的存储器控制器308转向到网络计算子系统104或转向到服务器计算子系统108。在一些实施方案中,转向单元可以将可重新配置的存储器控制器308转向到网络计算子系统104或转向到服务器计算子系统108以匹配被折曲的可重新配置的处理核心602的带宽和存储器容量。
在一些实施方案中,转向单元306还可用于将已重新配置的处理核心302和L1/L2高速缓存304转向到网络计算子系统104(例如,经由网络计算子系统高速缓存相干构架214)或转向到服务器计算子系统108(例如,经由服务器计算子系统高速缓存相干构架218)。
网络计算子系统高速缓存相干构架214可以通过将网络计算子系统104的所有已配置的资源隔离到第一物理层来提供减少的抖动和安全问题,并且服务器计算子系统高速缓存相干构架218可以通过将服务器计算子系统108的所有已配置的资源隔离到第二物理层来提供减少的抖动和安全问题。
图7示出了根据本技术的某些实施方案的管理计算子系统110的框图。管理计算子系统110可以包括多核心处理器702、L1/L2高速缓存704、网络接口单元706、专用存储器708、外围设备710和计算机可读存储介质712。
多核心处理器702可以包括两个或更多个处理器核心,诸如
Figure BDA0002388833550000251
的A57。在一些实施方案中,可以使用单核心处理器代替多核心处理器702。L1/L2高速缓存704可以在多核心处理器702的内部或外部,并且可由所有处理器核心共享。多核心处理器702可以被配置为执行可存储在计算机可读存储介质712上的多个指令。例如,计算机可读介质可以包括用于执行在网络计算子系统104与服务器计算子系统108之间对可配置的资源的细粒动态重新划分的指令。计算机可读存储介质712可为非暂时的。在一些实施方案中,计算机可读存储介质可以包括但不限于参数随机存取存储器(PRAM)、SRAM、DRAM、RAM、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存存储器或其它存储器技术、压缩盘(CD)-ROM、数字视频光谱(DVD)或其它光学存储装置、盒式磁带、磁带、磁盘存储装置或其它磁性存储设备或者可用于存储所需信息并可由多核心处理器702访问的任何其它介质。在一些实施方案中,计算机可读存储介质712可以是外围设备710的部分。L1/L2高速缓存704可以是用于暂时存储数据的数据高速缓存。
网络接口单元706可以允许管理计算子系统110来连接到网络。例如,网络接口单元706可以包括可使得管理计算子系统110能够连接到网络(诸如以太网)的以太网MAC(介质访问控制)。在一些情况下,以太网MAC可以提供以太网端口以对接到PHY(物理层)设备来连接到网络。在一些实施方案中,管理计算子系统110可通过网络与外部实体或系统进行通信以确定虚拟服务器实例的工作负载,以便动态配置处理和存储器资源。
专用存储器708可以包括用于管理计算子系统110的专门使用的存储器。专用存储器708可以包括易失性存储器,诸如随机存取存储器(例如,SRAM或DRAM)。例如,管理计算子系统110可以使用专用存储器708暂时存储数据。
外围设备710可以包括管理计算子系统110的专用外围设备。在一些实施方案中,专用外围设备710中的一些可以包括用于SoC 202的不同的子系统的重新引导和电源管理的设备。例如,外围设备710可以包括信任管理模块,所述信任管理模块包括引导固件,所述引导固件可在启动时执行以在其它子系统启动前建立信任根。在一些实施方案中,可通过电压操纵、时钟操纵或任何其它合适方法来提供电源管理。
在一些实施方案中,管理计算子系统110可以被配置为首先在整个SoC202的冷启动时运行。在一些情况下,管理计算子系统110可首先启动以在其它子系统启动前建立这些子系统的信任根。例如,网络计算子系统104和服务器计算子系统108的引导过程可以在管理计算子系统110的核心引导下被分层地考虑。在一些实施方案中,将随后在网络计算子系统104和服务器计算子系统108上运行的软件可能已经被管理计算子系统110认证为已经使用与主机系统112相关联的专用密钥或由主机系统112提供的特定服务进行签名。这可允许网络计算子系统104和服务器计算子系统108两者处理经由信任且独立的引导加载器进行引导。
在一些实施方案中,管理计算子系统110可以在启动后配置网络计算子系统104和服务器计算子系统108的资源。例如,管理计算子系统110可以在启动时重新配置资源中的至少一些,以便通过分别将所有处理和存储器资源映射到网络计算子系统104或映射到服务器计算子系统108将SoC 102重新配置为仅网络系统或配置为仅服务器系统。在一些实施方案中,管理计算子系统110可以利用单独复位线路复位/重新引导,而不影响网络计算子系统104和服务器计算子系统108的实时操作。
图8示出了网络I/O子系统324的一些部件。网络I/O子系统312可以包括总线接口单元802、网络接口单元804和I/O接口单元806。
总线接口单元802可以包括用于与内部部件或外部部件通信的一个或多个总线接口。例如,总线接口单元802可以包括用于与主机系统112连接的第一接口,例如,通过由构架网桥202将第一接口映射到主机接口114。总线接口单元802可包括用于与服务器计算子系统108连接的第二接口,例如,接口320。在一些实施方案中,第一接口和第二接口可以是PCIe接口。例如,总线接口单元802可以包括一个或多个PCIe端口以连接到其它PCIe端口。总线接口单元802可以包括根复合体(RC)端口和端点端口(EP)。返回参考图3,网络计算子系统104可使用接口320经由网络I/O子系统312中的PCIe端口和服务器I/O子系统318中的PCIe端口与服务器计算子系统108进行通信。类似地,网络计算子系统104可使用接口114经由网络I/O子系统312中的PCIe端口和主机系统112中的PCIe端口与主机系统112进行通信。
网络接口单元804可以包括用于连接到网络的第三接口,例如,通过由构架网桥202将第三接口映射到网络接口218。在一些实施方案中,网络接口单元804可以包括一个或多个以太网MAC(例如,10/25/40/50Gb/秒)以连接到以太网网络。在一些情况下,以太网MAC可以提供以太网端口以对接到PHY(物理层)设备来连接到网络。返回参考图3,一个或多个以太网MAC可连接到网络计算子系统相干互连网络320。
I/O接口单元806可以包括用于I/O连接的一个或多个接口。例如,I/O接口单元806可以被配置为与用于网络连接(例如,以太网等等)和用于外部总线接口(例如,PCIe)的引脚或互连件对接。在一些实施方案中,I/O接口单元806可以包括I/O多路复用器用于选择一个或多个输入/输出信号。在一些实施方案中,I/O多路复用器可以包括用于I/O的SERDES(序列化-反序列化)接口。
图9示出了服务器I/O子系统318的一些部件。服务器I/O子系统318可以包括总线接口单元902、网络接口单元904和外围单元906。
总线接口单元902可以包括用于与内部部件或外部部件通信的一个或多个总线接口。在一些实施方案中,总线接口单元902可以包括用于与主机系统112连接的第一接口,例如,通过在并未使用网络计算子系统104时由构架网桥202将第一接口映射到主机接口114。例如,在一些实施方案中,当网络计算子系统104和服务器计算子系统108都起作用时,服务器计算子系统108可经由网络计算子系统104与主机系统112通信。总线接口单元902还可包括用于与网络计算子系统104连接的第二接口,例如,接口320。在一些实施方案中,第一接口和第二接口可以是PCIe接口。例如,总线接口单元902可以包括一个或多个PCIe端口以连接到其它PCIe端口。总线接口单元902可以包括根复合体(RC)端口和端点端口(EP)。返回参考图3,服务器计算子系统308可使用接口320经由服务器I/O子系统318中的PCIe端口和网络I/O子系统312中的PCIe端口与网络计算子系统104进行通信。类似地,服务器计算子系统108可使用接口114经由服务器I/O子系统318中的PCIe端口和主机系统112中的PCIe端口与主机系统112进行通信。在一些实施方案中,总线接口单元902还可包括用于连接到外部大容量存储设备(诸如硬盘驱动器、光学驱动器等等)的接口。例如,接口可以基于串行高级技术附件(其还称为串行ATA或SATA)。
网络接口单元904可以包括用于连接到网络的第三接口,例如,通过在并未使用网络计算子系统104时由构架网桥202将第三接口映射到网络接口218。例如,当网络计算子系统104和服务器计算子系统108都起作用时,服务器计算子系统108可经由网络计算子系统104与网络通信。在一些实施方案中,网络接口单元904可以包括一个或多个以太网MAC(例如,10/25/40/50Gb/秒)以连接到以太网网络。在一些情况下,以太网MAC可以提供以太网端口以对接到PHY(物理层)设备来连接到网络。返回参考图3,一个或多个以太网MAC可连接到服务器计算子系统相干互连网络320。
外围单元906可以包括一个或多个外围单元用于引导管理。例如,外围单元906可以包括通用输入/输出、低速引导外围设备等等。
图10示出了共享资源子系统204的一些部件。在本技术的实施方案中,共享资源子系统204可以包括可不包括进程状态的部件。共享资源子系统204可以包括存储器模块1002、随机发生器模块1004、通信邮箱1006和便笺式存储器模块1008。
存储器模块1002可以包括非易失性存储器存储装置,诸如闪存存储器。例如,存储器模块1002可以包括嵌入式多媒体控制器(eMMC)或安全数字(SD)以提供低级闪存存储器管理。在一些实施方案中,存储器模块1002可以用于存储控制代码,例如,BIOS(基本输入/输出系统)、引导加载器等等。例如,存储器模块1002可以包括可由两个子系统共享的代码。在一些实施方案中,存储器模块1002可用于在通电时存储各种可配置的资源的默认配置。
随机发生器模块1004可以被配置为生成随机数或符号序列。例如,随机数可以用于加密应用,诸如数据加密或任何此类应用。在一些实施方案中,随机发生器模块1004可以用于生成可由管理计算子系统110用来在通电或重新引导之后启动每个计算子系统前对每个计算子系统进行认证的随机数或序列。
通信邮箱1006可以用于促成在与两个子系统相关联的不同进程间进行通信。例如,通信邮箱1006可以用作用于交换数据以实现各种功能(诸如消息传送、同步、共享存储器和远程过程调用(RPC))的进程间通信模块。
便笺式存储器模块1008可以用于暂时存储可由两个子系统使用的数据。在一些实施方案中,便笺式存储器模块1008可以包括高速存储器(例如,2MB SRAM)以存储少量数据(例如,指令或中间值)来实现快速检索。
图11示出了根据本技术的一个或多个方面的流程图1100。过程1100的一些或全部(或者本文中描述的任何其它过程,或其变化和/或组合)可以在一个或多个计算机系统控制下执行,所述一个或多个计算机系统被配置为具有可执行指令,并且可实现为共同在一个或多个处理器上执行的代码(例如,硬件、可执行指令、一个或多个计算机程序或一个或多个应用)、或者通过硬件或其组合来执行。代码可以存储在计算机可读存储介质上,例如,呈可包括一个或多个处理器可执行的多个指令的计算机程序的形式。计算机可读存储介质可为非暂时的。
在步骤1102处,可以配置多个处理核心,其中至少一个处理核心可重新配置为用作网络计算子系统的部分或用作服务器计算子系统的部分,其中服务器计算子系统被配置为用于提供计算服务,并且网络计算子系统被配置为用于至少管理主机系统和服务器计算子系统的网络流量。例如,返回参考图2,可重新配置的处理核心206中的至少一个处理核心可由管理计算子系统204来配置为用作网络计算子系统104或服务器计算子系统108的部分。管理计算子系统110可以以默认配置在通电时配置可重新配置的处理核心206。在本技术的实施方案中,管理计算子系统110可能能够在网络计算子系统104与服务器计算子系统108之间动态重新划分可重新配置的处理核心206,例如,这取决于工作负载需求。返回参考图4,在一个实施方案中,可重新配置的处理核心206在网络计算子系统104与服务器计算子系统108之间被分别划分为网络计算子系统处理核心402和服务器计算子系统处理核心408。返回参考图5,在另一实施方案中,可重新配置的处理核心206仅为服务器计算子系统108配置,因为网络计算子系统104并未使用。
在步骤1104处,可以配置多个存储器资源(例如,L1高速缓存、L2高速缓存、存储器控制器等等),其中存储器资源的至少一部分可重新配置为用作网络计算子系统的部分或用作服务器计算子系统的部分。例如,返回参考图2,可重新配置的存储器资源208可由管理计算子系统204来配置为用作网络计算子系统104或服务器计算子系统108的部分。管理计算子系统110可以以默认配置在通电时配置可重新配置的存储器资源208。例如,管理计算子系统110可以配置每个计算子系统的高速缓存层级(例如,L1、L2和L3高速缓存)和存储器控制器。在本技术的实施方案中,管理计算子系统110可能能够在网络计算子系统104与服务器计算子系统108之间动态重新划分可重新配置的存储器资源208,例如,这取决于工作负载需求。返回参考图4,在一个实施方案中,可重新配置的存储器资源208在网络计算子系统104与服务器计算子系统108之间进行划分。返回参考图5,在另一实施方案中,可重新配置的存储器资源208仅为服务器计算子系统108配置,因为网络计算子系统104并未使用。
在步骤1106处,可以配置多个I/O资源,其中I/O资源的至少一部分可重新配置为用作网络计算子系统的部分或用作服务器计算子系统的部分。例如,返回参考图2,可重新配置的I/O资源210可由管理计算子系统204来配置为用作网络计算子系统104或服务器计算子系统108的部分。管理计算子系统110可以以默认配置在通电时配置可重新配置的I/O资源210。例如,管理计算子系统110可以配置每个计算子系统的总线和网络接口。在本技术的实施方案中,管理计算子系统110可以在网络计算子系统104与服务器计算子系统108之间动态重新划分可重新配置的I/O资源210,例如,这取决于工作负载需求。在一种情况下,返回参考图4,可重新配置的I/O资源210在网络计算子系统104与服务器计算子系统108之间进行划分。例如,服务器计算子系统108可以使用接口320经由网络I/O子系统312的主机接口和网络接口与主机系统112和网络通信。在另一情况下,返回参考图5,可重新配置的I/O资源210仅为服务器计算子系统108配置,因为网络计算子系统104并未使用。例如,服务器计算子系统108可以经由服务器I/O子系统318的主机接口和网络接口与主机系统112和网络通信。
在步骤1108处,可以使用构架网桥将已配置的处理核心、存储器资源和I/O资源映射到网络计算子系统的第一物理层构架或映射到服务器计算子系统的第二物理层构架,其中第一物理层构架和第二物理层构架是彼此物理隔离的。例如,返回参考图2,构架网桥202可以将可重新配置的处理核心206、可重新配置的存储器资源208和可重新配置的I/O资源210映射到网络计算子系统104或映射到服务器计算子系统108。例如,在一些实施方案中,构架网桥202可以将所附接到其端口的每个已配置的资源物理连接到网络计算子系统高速缓存相干构架214的端口或连接到服务器计算子系统高速缓存相干构架218。在一些实现方案中,已配置的处理核心、存储器资源和I/O资源可以使用转向单元306而转向到网络计算子系统104或转向到服务器计算子系统108。然而,其它实现方案是可能的。
所公开的技术的实施方案可以提供在SoC上的不同的计算子系统间对各种计算资源的细粒动态划分的灵活性。对每个资源进行动态重新配置的能力可以允许对资源的有效利用,从而满足工作负载需求而不折损性能。
图12示出了根据至少一个示例性的实施方案的包括经由一个或多个网络而连接的一个或多个服务提供商计算机和/或用户设备的本文中描述的特征和系统的示例性的架构。图1-11中讨论的设备可以使用图12中描述的计算设备的一个或多个部件,或者可以表示图12中描述的一个或多个计算设备。在架构1200中,一个或多个用户1202可以利用用户计算设备1204(1)-(N)(统称用户设备1204)经由一个或多个网络1208访问应用1206(例如,web浏览器或移动设备应用)。在一些方面中,应用1206可以由计算资源服务或服务提供商托管、管理和/或提供。一个或多个服务提供商计算机1210可以提供本机应用,本机应用被配置为在用户(1202)可与之交互的用户设备1204上运行。在一些实例中,服务提供商计算机1210可以提供计算资源,诸如但不限于客户端实体、低延时数据存储装置、持久性数据存储装置、数据访问、管理、虚拟化、基于云的软件解决方案、电子内容性能管理等等。服务提供商计算机1210还可操作以向用户1202提供web托管、计算机应用开发和/或实现平台、前述项的组合等等。在一些实例中,服务提供商计算机1210可与一个或多个第三方计算机1212通信。
在一些实例中,网络1208可以包括许多不同类型网络中的任一种或组合,诸如电缆网络、因特网、无线网络、蜂窝网络,以及其它专用和/或公共网络。虽然所示出的实例表示用户1202通过网络1208来访问应用1206,但是所描述的技术同样可适用于用户1202经由用户设备1204通过固定电话、通过信息亭(kiosk)或以任何其它方式与服务提供商计算机1210交互的情况。还要注意,所描述的技术可适用于其它客户端/服务器布置(例如,机顶盒等等),以及非客户端/服务器布置(例如,本地存储的应用等等)。
如上文简要描述的,应用1206可允许用户1202与服务提供商计算机1210交互,诸如访问web内容(例如,网页、音乐、视频等等)。有可能布置在服务器群集或服务器群中的服务提供商计算机1210可以托管应用1206和/或基于云的软件服务。其它服务器架构还可用于托管应用1206。应用1206可能能够处理来自许多用户1202的请求,并且作为响应而服务于各种项目网页。应用1206可以提供任何类型的支持用户交互的网站,包括社交联网站点、在线零售商、信息站点、博客站点、搜索引擎站点、新闻和娱乐站点等等。如上文讨论的,所描述的技术可类似地在应用1206外实现,诸如就像正在用户设备1404上运行的其它应用。
用户设备1204可以是任何类型的计算设备,诸如但不限于移动电话、智能电话、个人数字助理(PDA)、膝上型计算机、台式计算机、瘦客户端设备、平板PC、电子书(e-book)阅读器等等。在一些实例中,用户设备1204可以经由网络1208或经由其它网络连接与服务提供商计算机1210通信。另外,用户设备1204可以是分布式系统的部分,其由服务提供商计算机1210管理、控制或以其它方式是其部分(例如,与服务提供商计算机1210集成的控制台设备)。
在一个说明性的配置中,用户设备1204可以包括至少一个存储器1214和一个或多个处理单元(或处理器)1216。在适当时,处理器1216可实现为硬件、计算机可执行指令、固件或其组合。处理器1216的计算机可执行指令或固件实现方案可以包括以任何合适编程语言编写用来执行所描述的各种功能的计算机可执行或机器可执行指令。用户设备1204还可包括用于提供和/或记录与用户设备1204相关联的地理位置信息的地理位置设备(例如,全球定位系统(GPS)设备等等)。
存储器1214可以存储在处理器1216上可加载和可执行的程序指令,以及在执行这些程序期间生成的数据。根据用户设备1204的配置和类型,存储器1214可以是易失性(诸如随机存取存储器(RAM))和/或非易失性(诸如只读存储器(ROM)、闪存存储器等等)的。用户设备1204还可包括额外可移动存储装置和/或不可移动存储装置,包括但不限于磁性存储装置、光盘和/或磁带存储装置。磁盘驱动器和它们的相关联的计算机可读介质可以提供计算设备的计算机可读指令、数据结构、程序模块和其它数据的非易失性存储装置。在一些实现方案中,存储器1214可以包括多种不同类型的存储器,诸如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或ROM。
转至存储器1214的内容了解更多细节,存储器1214可以包括操作系统,以及用于诸如经由浏览器应用1206或专用应用(例如,智能电话应用、平板应用等等)实现本文中公开的特征(包括至少由用户提供的输入要素或电子服务网页)的一个或多个应用程序或服务。浏览器应用1206可以被配置为接收、存储和/或显示用于与服务提供商计算机1210进行交互的网站或其它接口。另外,存储器1214可以存储访问凭据和/或其它用户信息,诸如但不限于用户ID、密码和/或其它用户信息。在一些实例中,用户信息可以包括用于对帐户访问请求进行认证的信息,诸如但不限于设备ID、cookie、IP地址、位置等等。另外,用户信息可以包括由用户提供的对用户设备1204获得的安全问题或地理位置的响应。
在一些方面中,服务提供商计算机1210同样可以是任何类型的计算设备,诸如但不限于移动电话、智能电话、个人数字助理(PDA)、膝上型计算机、台式计算机、服务器计算机、瘦客户端设备、平板PC等等。另外,应当注意,在一些实施方案中,服务提供商计算机1210由实现于被托管的计算环境中的一个或多个虚拟机执行。被托管的计算环境可以包括一个或多个快速提供和释放的计算资源,所述计算资源可以包括计算、联网和/或存储设备。被托管的计算环境还可称为云计算环境。在一些实例中,服务提供商计算机1210可以经由网络1208或经由其它网络连接与用户设备1204和/或其它服务提供商通信。服务提供商计算机1210可以包括有可能布置在群集中的一个或多个服务器,作为服务器群,或者作为不与彼此相关联的单独的服务器。这些服务器可以被配置为将本文中描述的关键字分类和评级特征服务实现为集成的分布式计算环境的一部分。
在一个说明性的配置中,服务提供商计算机1210可以包括至少一个存储器1218和一个或多个处理单元(或处理器)1220。在适当时,处理器1220可实现为硬件、计算机可执行指令、固件或其组合。处理器1220的计算机可执行指令或固件实现方案可以包括以任何合适编程语言编写用来执行所描述的各种功能的计算机可执行或机器可执行指令。
在一些情况下,硬件处理器1220可以是单核心处理器或多核心处理器。多核心处理器可以包括位于相同的处理器内的多个处理单元。在一些实施方案中,多核心处理器可以共享某些资源,诸如在多个核心之间的总线和第二级高速缓存或第三级高速缓存。在一些情况下,单核心处理器或多核心处理器中的每个核心还可包括多个执行逻辑处理器(或线程)。在这种核心(支持多个逻辑处理器)中,还可共享执行流水线的若干阶段且还有较低级高速缓存。
存储器1218可以存储在处理器1220上可加载和可执行的程序指令,以及在执行这些程序期间生成的数据。根据服务提供商计算机1210的配置和类型,存储器1218可以是易失性(诸如RAM)和/或非易失性(诸如ROM、闪存存储器等等)的。服务提供商计算机1210或服务器还可包括额外存储装置1222,所述额外存储装置可以包括可移动存储装置和/或不可移动存储装置。额外存储装置1222可以包括但不限于磁性存储装置、光盘和/或磁带存储装置。磁盘驱动器和它们的相关联的计算机可读介质可以提供计算设备的计算机可读指令、数据结构、程序模块和其它数据的非易失性存储装置。在一些实现方案中,存储器1218可以包括多种不同类型的存储器,诸如SRAM、DRAM或ROM。
存储器1218、额外存储装置1222(无论是可移动还是不可移动的)全都是计算机可读存储介质的实例。例如,计算机可读存储介质可以包括在用于信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的存储的任何方法或技术中实现的易失性或非易失性、可移动或不可移动介质。存储器1218和额外存储装置1222全都是计算机存储介质的实例。可存在于服务提供商计算机1210中的额外类型的计算机存储介质可以包括但不限于PRAM、SRAM、DRAM、RAM、ROM、EEPROM、闪存存储器或其它存储器技术、CD-ROM、DVD或其它光学存储装置、盒式磁带、磁带、磁盘存储装置或其它磁性存储设备,或者可用于存储所需信息并且可由服务提供商计算机1210访问的任何其它介质。前述项的任何项的组合也应包括在计算机可读介质的范围内。
或者,计算机可读通信介质可以包括计算机可读指令、程序模块或在数据信号(诸如载波或其它传输手段)内传输的其它数据。然而,如本文使用的,计算机可读存储介质并不包括计算机可读通信介质。
服务提供商计算机1210还可包含通信连接1224,所述通信连接允许服务提供商计算机1210与存储的数据库、另一计算设备或服务器、用户终端和/或网络1208上的其它设备进行通信。服务提供商计算机1210还可包括I/O设备1226,诸如键盘、鼠标、触笔、语音输入设备、触摸输入设备、显示器、扬声器、打印机等等。
存储器1218可以包括操作系统1228、一个或多个数据存储区1230和/或用于实现本文中公开的特征的一个或多个应用程序或服务(任选地,包括可重新配置的资源模块1232和多计算子系统模块1240)。本文中描述的模块可以是软件模块、硬件模块或其合适组合。如果模块是软件模块,那么模块可以实施在非暂时计算机可读介质上并由本文中描述的任何计算机系统中的处理器处理。应当注意,所描述的过程和架构可以在任何用户交互前以实时或异步模式执行。模块可以图12中表明的方式配置,和/或本文中描述的功能可由作为单独模块而存在的一个或多个模块提供,和/或本文中描述的模块功能可以分布在多个模块上。
图13示出了根据各种实施方案的用于实现各个方面的示例环境1300的方面。如将了解,虽然为了解释目的使用基于Web的环境,但是在适当时,可使用不同环境来实现各种实施方案。环境包括电子客户端设备1302,所述电子客户端设备可以包括可操作以通过适当网络1304发送和接收请求、消息或信息并且将信息传送回该设备的用户的任何适当设备。此类客户端设备的实例包括个人计算机、蜂窝电话、手持消息发送设备、膝上型计算机、机顶盒、个人数据助理、电子书阅读器等等。网络可以包括任何适当网络,包括内联网、因特网、蜂窝网络、局域网或任何其它此类网络或其组合。用于这样的系统的部件可至少部分地取决于所选择的网络和/或环境的类型。用于经由这种网络进行通信的协议和部件是众所周知的,并且将不在此详细讨论。可通过有线连接或无线连接和其组合来实现通过网络而进行的通信。在这个实例中,网络包括因特网,因为环境包括用于接收请求和响应于此而服务于内容的Web服务器1306,但是对于其它网络,可以使用服务于类似目的的替代设备,如对于本领域的普通技术人员来说将明显。
说明性的环境包括至少一个应用服务器1308和数据存储区1310。应当理解,可以存在可链接或以其它方式配置的若干应用服务器、层、或者其它元件、过程或部件,它们可交互以执行诸如从适当数据存储区获得数据的任务。如本文使用的,术语“数据存储区”是指能够存储、访问和检索数据的任何设备或设备的组合,这可包括任何标准、分布式或群集环境中的任何组合和数量的数据服务器、数据库、数据存储设备和数据存储介质。应用服务器可以包括用于根据需要与数据存储区集成以执行客户端设备的一个或多个应用的方面、处理应用的数据访问和业务逻辑的大部分的任何适当的硬件和软件。应用服务器与数据存储区协作来提供访问控制服务,并且能够生成将要传送给用户的内容,诸如文本、图形、音频和/或视频,在这个实例中,所述内容可由Web服务器以超文本标记语言(“HTML”)、可扩展标记语言(“XML”)或另一适当结构化语言的形式来提供给用户。对所有的请求和响应的处理以及在客户端设备1302与应用服务器1308之间对内容的传递可由Web服务器处理。应当理解,Web服务器和应用服务器并不是必需的,而仅仅是示例部件,因为本文中讨论的结构化代码可以在任何适当设备或主机机器上执行,如本文其它地方讨论的。
数据存储区1310可以包括若干单独的数据表、数据库或用于存储与特定方面相关的数据的其它数据存储机制和介质。例如,所示出的数据存储区包括用于存储生产数据1312和用户信息1316的机制,其可用于为生产侧提供内容。数据存储区还示出为包括用于存储日志数据1314的机制,其可用于报告、分析或其它此类目的。应当理解,可以存在可需要存储在数据存储区中的许多其它方面,诸如针对页面图像信息和访问权限信息的方面,这些其它方面在适当时存储在上文所列出的机制中的任何一者中或存储在数据存储区1310中的额外机制中。数据存储区1310可通过与其相关联的逻辑来操作以从应用服务器1308接收指令并响应于此而获得、更新或以其它方式处理数据。在一个实例中,用户可以提交针对某个类型的项目的搜索请求。在这种情况下,数据存储区可访问用户信息以验证用户身份,并且可以访问目录详细信息以获得关于该类型的项目的信息。然后,信息可以被返回给用户,诸如在用户能够经由用户设备1302上的浏览器而查看的网页上的结果列表中。可以在浏览器的专用页面或专用窗口中查看感兴趣的特定项目的信息。
每个服务器将典型地包括提供用于该服务器的一般管理和操作的可执行程序指令的操作系统,并且通常将会包括计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等等),所述计算机可读存储介质存储当由服务器的处理器执行时允许服务器执行其预期功能的指令。用于操作系统和服务器的一般功能的合适实现方案是已知或可商购的,并且易于由本领域的普通技术人员尤其根据本文中的公开内容来实现。
一个实施方案中的环境是利用使用一个或多个计算机网络或直接连接的经由通信链路而互连的若干计算机系统和部件的分布式计算环境。然而,本领域的普通技术人员将会了解,这种系统可以在具有比图13中示出的数量更少或更多的部件的系统中同样良好操作。因此,对图13中的系统1300的描绘应当被视为是在本质上说明性的,而非限制本公开的范围。
各种实施方案还可在各种各样操作环境中实现,在一些情况下,这可包括可用于操作多个应用中的任何一者的一个或多个用户计算机、计算设备或处理设备。用户或客户端设备可以包括多个通用个人计算机中的任何一者,诸如运行标准操作系统的台式或膝上型计算机,以及运行移动软件并且能够支持多个联网和消息发送协议的蜂窝、无线和手持设备。这种系统还可包括运行各种可商购的操作系统和其它已知应用中的任何一者以用于诸如开发和数据库管理的目的的多个工作站。这些设备还可包括其它电子设备,诸如虚设终端、瘦客户端、游戏系统和能够经由网络来通信的其它设备。
大多数的实施方案利用本领域的技术人员本来就熟悉的至少一个网络使用各种可商购的协议(诸如传输控制协议/因特网协议(“TCP/IP”)、开放系统互连(“OSI”)、文件传输协议(“FTP”)、通用即插即用(“UpnP”)、网络文件系统(“NFS”)、公共因特网文件系统(“CIFS”)和AppleTalk)中的任何一者支持通信。网络可以例如是局域网、广域网、虚拟专用网络、因特网、内联网、外联网、公共交换电话网络、红外网络、无线网络和其任何组合。
在利用Web服务器的实施方案中,Web服务器可以运行各种服务器或中间层应用中的任何一者,包括超文本传输协议(“HTTP”)服务器、FTP服务器、公共网关接口(“CGI”)服务器、数据服务器、Java服务器和业务应用服务器。服务器还能够响应于来自用户设备的请求而执行程序或脚本,诸如通过执行一个或多个Web应用,所述一个或多个Web应用可实现为以任何编程语言(诸如
Figure BDA0002388833550000391
C、C#或C++)或任何脚本语言(诸如Perl、Python或TCL)、以及它们组合编写的一个或多个脚本或程序。服务器还可包括数据库服务器,包括但不限于从
Figure BDA0002388833550000392
Figure BDA0002388833550000393
商购的那些。
环境可以包括如上文讨论的各种数据存储区,以及其它存储器和存储介质。这些可以驻留在各种位置中,诸如在位于一个或多个计算机本地(和/或驻留在一个或多个计算机中)或远离跨网络的任何或所有的计算机的存储介质上。在一组特定实施方案中,信息可以驻留在本领域的技术人员所熟悉的存储区域网络(“SAN”)中。类似地,在适当时,用于执行归因于计算机、服务器或其它网络设备的功能的任何必要文件可以本地和/或远程存储。在系统包括计算机化设备情况下,每个此类设备可以包括可经由总线来电耦合的硬件元件,所述元件包括例如至少一个中央处理单元(“CPU”)、至少一个输入设备(例如,鼠标、键盘、控制器、触摸屏或小键盘)和至少一个输出设备(例如,显示设备、打印机或扬声器)。这种系统还可包括一个或多个存储设备,诸如磁盘驱动器、光学存储设备和固态存储设备(诸如随机存取存储器(“RAM”)或只读存储器(“ROM”)),以及可移动介质设备、存储卡,闪存卡等等。
此类设备还可包括计算机可读存储介质读取器、通信设备(例如,调制解调器、网卡(无线或有线的)、红外通信设备等等)和工作存储器,如上文描述的。计算机可读存储介质读取器可与计算机可读存储介质连接,或配置为接收计算机可读存储介质,所述计算机可读存储介质表示远程、本地、固定和/或可移动存储设备,以及用于暂时和/或更永久地包含、存储、传输和检索计算机可读信息的存储介质。系统和各种设备还典型地将会包括位于至少一个工作存储器设备内的多个软件应用、模块、服务或其它元件,包括操作系统和应用,诸如客户端应用或Web浏览器。应当了解,替代实施方案可以具有与上文描述不同的许多变化。例如,还可使用定制硬件和/或可将特定元件实现在硬件、软件(包括便携软件,诸如小应用)或两者中。另外,可以采用与其它计算设备(诸如网络输入/输出设备)的连接。
用于包含代码或代码的部分的存储介质和计算机可读介质可以包括本领域已知或使用的任何适当介质,包括存储介质和通信介质,诸如但不限于在用于信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的存储和/或传输的任何方法或技术中实现的易失性和非易失性、可移动和不可移动介质,包括RAM、ROM、电可擦除可编程只读存储器(“EEPROM”)、闪存存储器或其它存储器技术、压缩盘只读存储器(“CD-ROM”)、数字通用光盘(DVD)或其它光学存储装置、盒式磁带、磁带、磁盘存储装置或其它磁性存储设备,或者可用于存储所需信息并且可由系统设备访问的任何其它介质。基于本文中提供的公开内容和教导内容,本领域的普通技术人员将会了解实现各种实施方案的其它方式和/或方法。
本说明书和附图因此被视为是说明性的而非限制性的意义。然而,将会清楚,在不背离如权利要求中阐述的本公开的更广的精神和范围的情况下,可以对其做出各种的修改和改变。
本公开的实施方案根据以下条款进行描述:
条款1.一种被配置为与主机系统通信的片上系统(SoC),所述SoC包括:
多个处理核心,其中所述多个处理核心中的至少一者可重新配置为用作所述SoC的网络计算子系统的部分或用作所述SoC的服务器计算子系统的部分,其中所述服务器计算子系统被配置为用于提供计算服务,并且所述网络计算子系统被配置为用于管理所述主机系统和所述服务器计算子系统的网络流量,所述网络计算子系统被配置为经由I/O子系统与所述主机系统和所述服务器计算子系统通信;
可重新配置的存储器资源,其中所述存储器资源的至少一部分可重新配置为用作所述网络计算子系统的部分或用作所述服务器计算子系统的部分;
第一物理层构架和第二物理层构架,所述第一物理层构架被配置为用作所述网络计算子系统的部分,所述第二物理层构架被配置为用作所述服务器计算子系统的部分,其中所述第一物理层构架和所述第二物理层构架是彼此物理隔离的;
管理计算子系统,所述管理计算子系统用于至少配置用于所述服务器计算子系统和所述网络计算子系统的所述处理核心、存储器资源和所述I/O资源;以及
构架网桥,所述构架网桥用于将所述已配置的处理核心、存储器资源和所述I/O资源映射到所述第一物理层构架或映射到所述第二物理层构架。
条款2.如条款1所述的SoC,其还包括:可重新配置的末级高速缓存(LLC)资源,其中所述末级高速缓存资源的至少一部分可重新配置为用作所述网络计算子系统的部分或用作所述服务器计算子系统的部分。
条款3.如条款2所述的SoC,其中所述末级高速缓存资源的所述部分是由所述管理计算子系统配置并且由所述构架网桥映射到所述第一物理层构架或映射到所述第二物理层构架。
条款4.如任一前述条款所述的SoC,其还包括:可重新配置的I/O资源,其中所述I/O资源的至少一部分可重新配置为用作所述网络计算子系统的部分或用作所述服务器计算子系统的部分。
条款5.一种被配置为与主机系统通信的片上系统(SoC),所述SoC包括:
多个处理核心,其中每个处理核心可重新配置为用作所述SoC的网络计算子系统的部分或用作所述SoC的服务器计算子系统的部分,其中所述服务器计算子系统被配置为用于提供计算服务,并且所述网络计算子系统被配置为用于管理所述主机系统和所述服务器计算子系统的网络流量;以及
管理计算子系统,所述管理计算子系统用于管理用于所述服务器计算子系统和用于所述网络计算子系统的资源。
条款6.如条款5所述的SoC,其还包括:
可重新配置的存储器资源,其中所述存储器资源的至少一部分可重新配置为用作所述网络计算子系统的部分或用作所述服务器计算子系统的部分。
条款7.如条款5或6所述的SoC,其还包括:
可重新配置的I/O资源,其中所述I/O资源的至少一部分可重新配置为用作所述网络计算子系统的部分或用作所述服务器计算子系统的部分。
条款8.如条款5-7中任一项所述的SoC,其还包括:可重新配置的末级高速缓存(LLC)资源,其中所述末级高速缓存资源的至少一部分可重新配置为用作所述网络计算子系统的部分或用作所述服务器计算子系统的部分。
条款9.如条款8所述的SoC,其中所述管理计算子系统被配置为配置用于所述服务器计算子系统和所述网络计算子系统的所述处理核心、存储器资源、I/O资源和所述末级高速缓存资源。
条款10.如条款9所述的SoC,其还包括:构架网桥,所述构架网桥用于将所述已配置的处理核心、存储器资源、I/O资源和所述末级高速缓存资源映射到所述网络计算子系统的第一物理层构架或映射到所述服务器计算子系统的第二物理层构架,其中所述第一物理层构架和所述第二物理层构架是彼此物理隔离的。
条款11.如条款10所述的SoC,其中所述处理核心、存储器资源、I/O资源和所述末级高速缓存资源被映射到所述服务器计算子系统,并且被耦合到服务器计算子系统高速缓存相干构架。
条款12.如条款10或11所述的SoC,其中所述处理核心、存储器资源、I/O资源和所述末级高速缓存资源被映射到所述网络计算子系统,并且被耦合到网络计算子系统高速缓存相干构架。
条款13.如条款5-12中任一项所述的SoC,其中所述可重新配置的存储器资源包括一个或多个存储器控制器。
条款14.如条款13所述的SoC,所述SoC还包括:
转向单元,所述转向单元用于将所述存储器控制器的至少一部分转向到所述网络计算子系统或转向到所述服务器计算子系统。
条款15.如条款5-7中任一项所述的SoC,其中所述I/O资源包括用于与所述主机系统通信的第一接口、用于与所述服务器计算子系统通信的第二接口、用于与所述网络计算子系统通信的第三接口和用于与所述网络通信的第四接口。
条款16.如条款5-15中任一项所述的SoC,其还包括:
用于所述服务器计算子系统的一个或多个专用处理核心和存储器资源;以及
用于所述网络计算子系统的一个或多个专用处理核心和存储器资源。
条款17.一种用于配置片上系统(SoC)的方法,所述方法包括:
配置多个处理核心,其中至少一个处理核心可重新配置为用作所述SoC的服务器计算子系统的部分或用作所述SoC的网络计算子系统的部分,其中所述服务器计算子系统被配置为用于提供计算服务,并且所述网络计算子系统被配置为用于管理主机系统和所述服务器计算子系统的网络流量;
配置多个存储器资源,其中所述存储器资源的至少一部分可重新配置为用作所述网络计算子系统的部分或用作所述服务器计算子系统的部分;以及
配置多个I/O资源,其中所述I/O资源的至少一部分可重新配置为用作所述网络计算子系统的部分或用作所述服务器计算子系统的部分,
其中使用构架网桥将所述已配置的处理核心、存储器资源和所述I/O资源映射到所述网络计算子系统的第一物理层构架或映射到所述服务器计算子系统的第二物理层构架,其中所述第一物理层构架和所述第二物理层构架是彼此物理隔离的。
条款18.如条款17所述的方法,其中所述存储器资源包括一个或多个存储器控制器,所述方法还包括:
将所述一个或多个存储器控制器设定为用作所述网络计算子系统的部分或用作所述服务器计算子系统的部分。
条款19.如条款17或18所述的方法,其还包括:
将一个或多个专用处理核心和存储器资源分配给所述服务器计算子系统;以及
将一个多个专用处理核心和存储器资源分配给所述网络计算子系统。
条款20.如条款17-19中任一项所述的方法,其中所述配置所述多个处理核心、所述配置所述多个存储器资源和所述配置所述多个I/O资源是由所述SoC的管理计算子系统动态执行。
其它变化在本公开的精神内。因此,虽然所公开的技术易于进行各种修改和替代的构造,但是在附图中示出并且在上文中已详细描述了本公开的某些所示出的实施方案。然而,应当理解,不意图将本公开限制为一个所公开的特定形式或多个所公开的特定形式,相反,意图涵盖落在如随附权利要求中限定的本公开的精神和范围内的所有修改、替代构造和等效内容。
在描述所公开的实施方案的上下文中(尤其在随附权利要求的上下文中)中使用术语“一(a)”和“一(an)”和“所述”以及类似指称应理解为涵盖单数和复数两者,除非本文另外指明或明显与上下文矛盾。术语“包括”、“具有”、“包括”和“含有”将理解为开放性的术语(即,表示“包括但不限于”),除非另外指明。术语“被连接的”将理解为部分或全部地包含在内、被附接到、或被接合在一起,即使存在某种中介。在本文中对值的范围的叙述仅仅意图用作单独提及落在该范围内的每个单独的值的简要方法,除非本文另外指明,并且每个单独的值并入到本说明书中,如同在本文中单独叙述一样。所有本文所描述的方法可以任何合适顺序执行,除非本文另外指明或明显与上下文矛盾。本文中提供的任何和所有的示例、或示例性的语言(例如,“诸如”)的使用仅仅意图以更好的方式说明本公开的实施方案,而并非对本公开的范围构成限制,除非另外指明。本说明书中的语言不应被理解为指示任何未要求保护的要素对于本公开的实践是必要的。
除非另外明确说明,析取语言诸如短语“X、Y或Z中的至少一个”意图如通常使用的在上下文内将理解为表示项目、项等等可以是X、Y或Z或其任何组合(例如,X、Y和/或Z)。因此,这种析取语言通常并不意图并且也不应当暗示某些实施方案要求存在X中的至少一个、Y中的至少一个、或Z中的至少一个每个存在。
本文中描述了本公开的优选实施方案,包括本发明人所已知的用于实施本公开的最佳模式。在阅读前述描述后,对这些优选实施方案的变化对于本领域的普通技术人员来说可以变得明显。本发明人期望本领域的技术人员在适当时采用此类变化,并且本发明人意图以不同于本文具体描述的方式来实践本公开。因此,本公开包括了如适用法律允许的本公开随附的权利要求中叙述的主题的所有修改和等效内容。此外,除非本文另有说明或以其它方式明确地与上下文相抵触,在本公开的所有可能变化中的上述要素的任何组合都涵盖在本公开中。

Claims (5)

1.一种片上系统(SoC),所述SoC被配置成与主机系统通信,所述SoC包括:
多个处理核心,其中所述多个处理核心中的至少一个可重新配置成用作所述SoC的网络计算子系统的部分或用作所述SoC的服务器计算子系统的部分,其中,所述服务器计算子系统被配置用于为所述主机系统提供计算服务,所述计算服务是由客户端向所述主机系统请求并通过网络被传递给所述客户端,并且其中所述网络计算子系统被配置用于通过所述网络管理所述主机系统和所述服务器计算子系统的网络流量,所述主机系统包括处理器;
可重新配置的存储器资源,其中所述存储器资源的至少一部分可重新配置成用作所述网络计算子系统的部分或用作所述服务器计算子系统的部分;
第一物理层构架和第二物理层构架,所述第一物理层构架被配置成用作所述网络计算子系统的部分,所述第二物理层构架被配置成用作所述服务器计算子系统的部分,其中所述第一物理层构架和所述第二物理层构架彼此物理隔离;
管理计算子系统,所述管理计算子系统被耦合到所述服务器计算子系统以及耦合到所述网络计算子系统耦合,所述管理计算子系统被配置用于至少配置所述处理核心和所述存储器资源用于所述服务器计算子系统和所述网络计算子系统;以及
构架网桥,所述构架网桥用于将已配置的处理核心和存储器资源映射到所述第一物理层构架或映射到所述第二物理层构架,所述映射包括根据由所述管理计算子系统执行的配置来将所述处理核心和所述存储器资源单独路由到所述网络计算子系统和所述服务器计算子系统。
2.如权利要求1所述的SoC,进一步包括可重新配置的末级高速缓存(LLC)资源,其中,所述末级高速缓存资源的至少一部分可重新配置成用作所述网络计算子系统的部分或用作所述服务器计算子系统的部分。
3.如权利要求2所述的SoC,其特征在于,所述末级高速缓存资源的所述部分是由所述管理计算子系统配置,并且由所述构架网桥映射到所述第一物理层构架或映射到所述第二物理层构架。
4.如权利要求1所述的SoC,进一步包括可重新配置的I/O资源,其中,所述I/O资源的至少一部分可重新配置成用作所述网络计算子系统的部分或用作所述服务器计算子系统的部分。
5.如权利要求1所述的SoC,其特征在于,所述网络计算子系统包括网络接口控制器(NIC)的功能,所述主机系统包括x86处理器,并且所述多个处理核心中的一个包括
Figure FDA0002388833540000021
处理器。
CN202010107375.3A 2014-12-19 2015-12-21 包括用于多个计算子系统的可重新配置的资源的片上系统 Active CN111352875B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/578,010 2014-12-19
US14/578,010 US10394731B2 (en) 2014-12-19 2014-12-19 System on a chip comprising reconfigurable resources for multiple compute sub-systems
CN201580068917.8A CN107111579B (zh) 2014-12-19 2015-12-21 包括用于多个计算子系统的可重新配置的资源的片上系统

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201580068917.8A Division CN107111579B (zh) 2014-12-19 2015-12-21 包括用于多个计算子系统的可重新配置的资源的片上系统

Publications (2)

Publication Number Publication Date
CN111352875A true CN111352875A (zh) 2020-06-30
CN111352875B CN111352875B (zh) 2021-06-29

Family

ID=55085945

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201580068917.8A Active CN107111579B (zh) 2014-12-19 2015-12-21 包括用于多个计算子系统的可重新配置的资源的片上系统
CN202010107375.3A Active CN111352875B (zh) 2014-12-19 2015-12-21 包括用于多个计算子系统的可重新配置的资源的片上系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201580068917.8A Active CN107111579B (zh) 2014-12-19 2015-12-21 包括用于多个计算子系统的可重新配置的资源的片上系统

Country Status (5)

Country Link
US (1) US10394731B2 (zh)
EP (1) EP3234797B1 (zh)
JP (1) JP6426846B2 (zh)
CN (2) CN107111579B (zh)
WO (1) WO2016100979A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10523585B2 (en) 2014-12-19 2019-12-31 Amazon Technologies, Inc. System on a chip comprising multiple compute sub-systems
US11200192B2 (en) 2015-02-13 2021-12-14 Amazon Technologies. lac. Multi-mode system on a chip
CN106383793B (zh) * 2016-09-05 2019-10-18 邦彦技术股份有限公司 外部设备的访问方法及片上系统
US11099894B2 (en) 2016-09-28 2021-08-24 Amazon Technologies, Inc. Intermediate host integrated circuit between virtual machine instance and customer programmable logic
US10338135B2 (en) 2016-09-28 2019-07-02 Amazon Technologies, Inc. Extracting debug information from FPGAs in multi-tenant environments
US10282330B2 (en) * 2016-09-29 2019-05-07 Amazon Technologies, Inc. Configurable logic platform with multiple reconfigurable regions
US10250572B2 (en) 2016-09-29 2019-04-02 Amazon Technologies, Inc. Logic repository service using encrypted configuration data
US10162921B2 (en) 2016-09-29 2018-12-25 Amazon Technologies, Inc. Logic repository service
US10642492B2 (en) 2016-09-30 2020-05-05 Amazon Technologies, Inc. Controlling access to previously-stored logic in a reconfigurable logic device
US11115293B2 (en) 2016-11-17 2021-09-07 Amazon Technologies, Inc. Networked programmable logic service provider
US11249779B2 (en) * 2017-09-01 2022-02-15 Intel Corporation Accelerator interconnect assignments for virtual environments
US10853134B2 (en) * 2018-04-18 2020-12-01 Xilinx, Inc. Software defined multi-domain creation and isolation for a heterogeneous System-on-Chip
US10994718B2 (en) * 2018-06-27 2021-05-04 Hyundai Autron Co., Ltd. Multi-master system, power controller and operating method of the multi-master system
CN109274647B (zh) * 2018-08-27 2021-08-10 杭州创谐信息技术股份有限公司 分布式可信内存交换方法及系统
US20200366476A1 (en) * 2019-05-17 2020-11-19 Panasonic Avionics Corporation Transient key negotiation for passenger accessible peripherals
KR20210046348A (ko) * 2019-10-18 2021-04-28 삼성전자주식회사 복수의 프로세서들에 유연하게 메모리를 할당하기 위한 메모리 시스템 및 그것의 동작 방법
US11087801B1 (en) * 2020-02-06 2021-08-10 Micron Technology, Inc. Configuring a host interface of a memory device based on mode of operation
US11243896B2 (en) 2020-03-25 2022-02-08 Micron Technology, Inc. Multiple pin configurations of memory devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1968203A (zh) * 2006-08-31 2007-05-23 孙利 一种基于AoE协议的网络存储设备及其数据处理方法
US20090228684A1 (en) * 2008-03-05 2009-09-10 The Boeing Company Intelligent Fabric System on a Chip
US20140254388A1 (en) * 2013-03-11 2014-09-11 Netspeed Systems Reconfigurable noc for customizing traffic and optimizing performance after noc synthesis

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3365581B2 (ja) * 1994-07-29 2003-01-14 富士通株式会社 自己修復機能付き情報処理装置
JP2001290510A (ja) 2001-02-05 2001-10-19 Hitachi Ltd 自動車用制御ユニット
US6691192B2 (en) 2001-08-24 2004-02-10 Intel Corporation Enhanced general input/output architecture and related methods for establishing virtual channels therein
US8412915B2 (en) 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
JP2003316752A (ja) 2002-04-25 2003-11-07 Nec Corp マルチプロセッサシステムおよびリソース割り当て方法
US7162279B2 (en) 2002-12-20 2007-01-09 Intel Corporation Portable communication device having dynamic power management control and method therefor
US7412588B2 (en) 2003-07-25 2008-08-12 International Business Machines Corporation Network processor system on chip with bridge coupling protocol converting multiprocessor macro core local bus to peripheral interfaces coupled system bus
US7353362B2 (en) 2003-07-25 2008-04-01 International Business Machines Corporation Multiprocessor subsystem in SoC with bridge between processor clusters interconnetion and SoC system bus
WO2005022380A1 (ja) 2003-08-29 2005-03-10 Ipflex Inc. データ処理装置
US20050144223A1 (en) 2003-10-20 2005-06-30 Rhode Island Board Of Governors For Higher Education Bottom-up cache structure for storage servers
US9264384B1 (en) 2004-07-22 2016-02-16 Oracle International Corporation Resource virtualization mechanism including virtual host bus adapters
US7979862B2 (en) * 2004-12-21 2011-07-12 Hewlett-Packard Development Company, L.P. System and method for replacing an inoperable master workload management process
JP4856983B2 (ja) 2006-03-02 2012-01-18 株式会社日立製作所 ストレージシステム及びスケジューリング方法
JP4786248B2 (ja) 2005-08-09 2011-10-05 株式会社日立製作所 ストレージシステムの構成管理装置及び構成管理方法
US8566479B2 (en) 2005-10-20 2013-10-22 International Business Machines Corporation Method and system to allow logical partitions to access resources
FR2898753B1 (fr) 2006-03-16 2008-04-18 Commissariat Energie Atomique Systeme sur puce a controle semi-distribue
US7783788B1 (en) 2006-04-28 2010-08-24 Huawei Technologies Co., Ltd. Virtual input/output server
JP2008044581A (ja) 2006-08-21 2008-02-28 Land Works:Kk ルーフキャリア
US7464448B2 (en) 2006-10-12 2008-12-16 Illinois Tool Works Inc. Side-release buckle assembly
US8082547B1 (en) 2006-10-31 2011-12-20 Hewlett-Packard Development Company, L.P. Reallocating hardware resources among workloads in accordance with license rights
US7797509B2 (en) 2007-01-11 2010-09-14 Netlogic Microsystems, Inc. Systems and methods for utilizing an extended translation look-aside buffer having a hybrid memory structure
US8407451B2 (en) * 2007-02-06 2013-03-26 International Business Machines Corporation Method and apparatus for enabling resource allocation identification at the instruction level in a processor system
US9973446B2 (en) * 2009-08-20 2018-05-15 Oracle International Corporation Remote shared server peripherals over an Ethernet network for resource virtualization
US9465771B2 (en) 2009-09-24 2016-10-11 Iii Holdings 2, Llc Server on a chip and node cards comprising one or more of same
US8726047B2 (en) 2010-05-07 2014-05-13 Samsung Electronics Co., Ltd. System on chip, devices having the same, and method for power control of the SOC
US9075764B2 (en) 2010-08-11 2015-07-07 Apple Inc. Multiprocessor system-on-a-chip for machine vision algorithms
US8904115B2 (en) 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
JP5939740B2 (ja) * 2011-04-11 2016-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 動的にリソースを割り当てる方法、システム及びプログラム
KR101949382B1 (ko) 2012-04-04 2019-02-18 삼성전자주식회사 서비스 품질의 향상을 위한 시스템 온 칩 및 시스템 온 칩의 제어 방법
US8990455B1 (en) * 2012-06-21 2015-03-24 Cypress Semiconductor Corporation Offloading tasks from a central processing unit to peripheral function engines
US8959402B2 (en) 2012-10-04 2015-02-17 Qualcomm Incorporated Method for preemptively restarting software in a multi-subsystem mobile communication device to increase mean time between failures
US20140100837A1 (en) 2012-10-08 2014-04-10 Stefan Heinen Integration verification system
US8959266B1 (en) 2013-08-02 2015-02-17 Intel Corporation Dynamic priority control based on latency tolerance
JP5715670B2 (ja) 2013-10-10 2015-05-13 キヤノン株式会社 通信装置
US9684597B1 (en) * 2014-08-07 2017-06-20 Chelsio Communications, Inc. Distributed cache coherent shared memory controller integrated with a protocol offload network interface card

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1968203A (zh) * 2006-08-31 2007-05-23 孙利 一种基于AoE协议的网络存储设备及其数据处理方法
US20090228684A1 (en) * 2008-03-05 2009-09-10 The Boeing Company Intelligent Fabric System on a Chip
US20140254388A1 (en) * 2013-03-11 2014-09-11 Netspeed Systems Reconfigurable noc for customizing traffic and optimizing performance after noc synthesis

Also Published As

Publication number Publication date
EP3234797A1 (en) 2017-10-25
EP3234797B1 (en) 2019-07-31
JP2018502383A (ja) 2018-01-25
CN111352875B (zh) 2021-06-29
US10394731B2 (en) 2019-08-27
JP6426846B2 (ja) 2018-11-21
US20160179717A1 (en) 2016-06-23
CN107111579A (zh) 2017-08-29
CN107111579B (zh) 2020-03-06
WO2016100979A1 (en) 2016-06-23

Similar Documents

Publication Publication Date Title
CN111352875B (zh) 包括用于多个计算子系统的可重新配置的资源的片上系统
CN107111585B (zh) 包括多个计算子系统的片上系统
CN110063051B (zh) 用于重新配置服务器的系统和方法以及服务器
CN107251002B (zh) 多模式片上系统
JP7200078B2 (ja) I/oステアリングエンジンを備えるシステムオンチップ
US9459897B2 (en) System and method for providing data analysis service in cloud environment
US10248607B1 (en) Dynamic interface port assignment for communication transaction
US10915486B1 (en) Ingress data placement
US9864701B1 (en) Resource mapping for an input/output device
US11388164B2 (en) Distributed application programming interface whitelisting
US10970118B2 (en) Shareable FPGA compute engine
US10917362B1 (en) Assisted sideband traffic management
US9910813B1 (en) Single function using multiple ports
US9836421B1 (en) Standardized interface for network using an input/output (I/O) adapter device
US20230342496A1 (en) Trust brokering and secure information container migration

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant