交叉引用
本申請是國際申請,并且要求于2105年2月13日提交的標題為“multi-modesystemonachip”的美國申請序列號14/622,661的優先權,所述申請的公開內容全部以引用方式并入本文。
背景技術:
許多組織和公司通過多個通信網絡提供計算服務。例如,計算服務可包括諸如web存儲的web服務或虛擬服務器,其可通過互聯網提供給不同的客戶端。
一般來說,系統可包括一個或多個子系統來執行若干不同的功能。然而,一旦系統被制成,每個子系統即可被限制為執行特定功能。在一些情況下,可以更多的硅為代價來提供額外的功能。因此,在大多數情況下,客戶端可被限制為使用特定功能,所述特定功能由每個子系統基于該子系統的預定配置來提供。
附圖簡述
將參考附圖描述根據本公開的各種實施方案,在附圖中:
圖1示出了根據所公開技術的一些實施方案的系統的框圖。
圖2示出了根據本技術的某些實施方案的片上系統(soc)的詳細框圖。
圖3a示出了根據所公開技術的一個實施方案的第一模式下的soc配置。
圖3b示出了根據所公開技術的一個實施方案的第二模式下的soc配置。
圖3c示出了根據所公開技術的一個實施方案的第三模式下的soc配置。
圖4a示出了根據所公開技術的一個實施方案的第一模式下的soc配置,其中服務器計算子系統被重新利用為網絡計算子系統。
圖4b示出了根據所公開技術的一個實施方案的第二模式下的soc配置,其中網絡計算子系統被重新利用為服務器計算子系統。
圖5示出了根據所公開技術的一個實施方案的具有靈活的資源池的soc的框圖。
圖6a示出了根據所公開技術的一些實施方案的soc,其被配置來在包括靈活的資源的第一模式下操作。
圖6b示出了根據所公開技術的一些實施方案的soc,其被配置來在第二模式下操作。
圖7a示出了根據本技術的一個實施方案的第一soc與第二soc通信,所述第一soc被配置來在第二模式下操作,所述第二soc被配置來在第一模式下操作。
圖7b示出了根據本技術的一個實施方案的第一soc與第二soc通信,所述第一soc被配置來在第二模式下操作,所述第二soc被配置來在第二模式下操作。
圖7c示出了根據本技術的一個實施方案的第一soc與第二soc通信,所述第一soc被配置來在第二模式下操作,所述第二soc被配置來在第三模式下操作。
圖8示出了根據本技術的一個實施方案的包括多個soc的系統。
圖9示出了根據本技術的某些實施方案的管理計算子系統的框圖。
圖10示出了根據本技術的某些實施方案的網絡i/o子系統的框圖。
圖11示出了根據本技術的某些實施方案的服務器i/o子系統的框圖。
圖12示出了根據本技術的某些實施方案的共享資源子系統的框圖。
圖13示出了根據至少一個示例性實施方案的本文描述的特征和系統的示例性架構,其包括通過一個或多個網絡連接的一個或多個服務提供商計算機和/或用戶設備;以及
圖14示出了可實現各種實施方案的環境。
詳細描述
在以下描述中,將描述各種實施方案。出于解釋的目的,將闡述具體的配置和細節,以便提供對實施方案的透徹理解。然而,對本領域的技術人員也將明顯的是,在沒有具體細節的情況下也可實踐實施方案。此外,為了不使所描述的實施方案晦澀,可省略或簡化眾所周知的特征。
一般來說,計算系統可包括一個或多個計算子系統來執行若干不同的功能。在大多數情況下,一旦計算系統被制成,每個計算子系統即可被限制為執行特定功能。在一些情況下,可以更多的硅為代價來提供額外的功能。例如,計算系統可能需要額外的芯片來提供額外的功能。因此,在大多數情況下,客戶端可被限制為使用特定功能,所述特定功能由每個子系統基于該子系統的預定配置來提供。
本技術的實施方案可提供用于操作片上系統(soc)的各種配置和模式。例如,soc可通信地耦合到主機系統(例如,x86服務器),以提供諸如網絡流量監測、網絡流量整形、計算等的各種服務。根據某些實施方案,soc可包括用于至少管理主機系統的網絡流量的網絡計算子系統和用于提供計算服務的服務器計算子系統。在所公開技術的一些實施方案中,soc可在第一模式下操作以僅提供聯網服務(例如,當服務器計算子系統被去配置或停用時),在第二模式下操作以僅提供計算服務(例如,當網絡計算子系統被去配置或停用時)或者在第三模式下操作以同時提供聯網和計算兩種服務(例如,當網絡計算子系統和服務器計算子系統都被激活或起作用時)。
計算機網絡通常可包括多個服務器,所述多個服務器可托管數據并向多個客戶端或組織提供服務。例如,服務器可向潛在更大數量的的客戶端計算機提供服務,諸如云計算、分析、web服務、存儲、數據庫、應用、部署服務等。客戶端或組織可使用這些服務或數據來支持輔助各種各樣的工作負載,諸如存儲、數據處理和倉儲、web和移動應用、存檔和許多其他任務。通常,客戶端請求來自服務器的服務或數據,并且服務器通過執行服務于請求的某些任務來進行響應和/或通過網絡提供數據。網絡流量可根據多個因素(諸如在特定時間請求服務的客戶端的數量、服務器的容量等)而發生變化。
在一些情況下,網絡系統可監測網絡流量以調節流量并使帶寬擁塞減少到最低限度。例如,網絡系統可通信地耦合到主機系統(例如,x86服務器),所述主機系統向不同的客戶端提供web服務。網絡系統可包括一個或多個處理器核、高速緩存、網絡加速邏輯、存儲器控制器和i/o子系統等。在一些實施方案中,網絡系統還可執行與由服務器(例如,主機系統)提供的web服務相關聯的其他功能,諸如流量整形、網絡存儲處理等。在一些情況下,網絡系統的功能可被實現為可通信地耦合到主機系統的片上系統(soc)上的計算子系統。例如,可使用插入卡將soc耦合到主機系統(例如,一個或多個服務器),或者可將soc焊接到主機系統的主板。
在一些實施方案中,除了網絡計算子系統之外,soc還可包括服務器計算子系統和管理計算子系統。例如,服務器計算子系統可被配置來提供計算服務,并且管理計算子系統可被配置來管理網絡計算子系統和服務器計算子系統的資源。在一些情況下,網絡計算子系統和服務器計算子系統可包括專用資源。例如,資源可包括處理器核、1級(l1)高速緩存、2級(l2)高速緩存、3級(l3)或末級高速緩存、存儲器控制器、存儲器通道、i/o控制器、各種i/o接口等。
在大多數情況下,一旦soc被制成,那么soc可被限制為基于具體配置僅提供某些類型的服務。例如,可以第一配置來制造soc以提供一組功能,或者以第二配置來制造soc以提供另一組功能。此外,一旦以某種配置制成soc,就可固定每個計算子系統的處理和存儲器資源的數量和類型。因此,每個soc可被限制為基于預定的配置提供某一類型和級別的服務。
所公開技術的實施方案可提供用于操作片上系統(soc)的各種配置和模式。soc可通信地耦合到主機系統(例如,x86服務器),以提供諸如流量監測、流量整形、計算等的各種服務。在技術的一些實施方案中,soc可包括多個子系統,諸如提供計算服務的服務器計算子系統、至少管理網絡流量的網絡計算子系統以及管理網絡計算子系統和服務器計算子系統的管理計算子系統。
在所公開技術的實施方案中,soc可被配置來在多種模式中的一種模式下操作。例如,在不同的實施方案中,soc可在第一模式下操作以僅提供聯網服務,在第二模式下操作以僅提供計算服務或者在第三模式下操作以同時提供聯網和計算服務。此外,每個模式可使用不同的技術來實現。例如,在一個實施方案中,每個計算子系統可具有固定的資源分配。在另一個實施方案中,與去配置或停用的計算子系統相關聯的資源可被重新分配給激活的計算子系統。在另一個實施方案中,soc可包括可重新配置的資源,所述可重新配置的資源可被轉向到激活的計算子系統。在一些實施方案中,管理計算子系統可基于硬件配置(例如,一個或多個引腳、跳線或熔絲)、軟件配置(例如,軟件寄存器的數據字段)或策略來確定soc在加電時的配置。例如,策略可由外部實體或操作者通過網絡連接來提供。
在一個實施方案中,管理計算子系統可將soc配置成在第一模式下操作,例如,soc可僅提供與網絡相關的服務。例如,服務器計算子系統可被斷電或去配置。在一個實施方案中,soc可被配置來在主機系統中的外圍部件高速互連(pcie)設備上操作為網絡計算子系統。在一些實施方案中,管理計算子系統還可以第一模式配置soc來禁用服務器計算子系統并將與服務器計算子系統相關聯的處理和存儲器資源重新配置,以作為網絡計算子系統的資源來操作。在另一個實施方案中,管理計算子系統還可以第一模式配置soc以將服務器計算子系統重新利用為第二網絡計算子系統。例如,網絡計算子系統可用作第一網絡計算子系統,并且服務器計算子系統可用作第二網絡計算子系統。在一些實施方案中,在第一模式下,可重新配置的資源的至少一部分可被轉向到網絡計算子系統。因此,所公開技術的一些實施方案可使soc能夠在第一模式下(例如,使用與服務器計算子系統相關聯的資源或可重新配置的資源)提供高性能的聯網服務。
在一個實施方案中,管理計算子系統可將soc配置成在第二模式下操作,例如,soc可僅提供與計算相關的服務。例如,網絡計算子系統可被斷電或去配置。在一個實施方案中,soc可被配置來在主機系統中的外圍部件高速互連(pcie)設備上操作為服務器計算子系統。在一些實施方案中,管理計算子系統108還可以第二模式配置soc來禁用網絡計算子系統并將與網絡計算子系統相關聯的處理和存儲器資源重新配置,以作為服務器計算子系統的資源來操作。在另一個實施方案中,管理計算子系統還可以第二模式配置soc以將網絡計算子系統重新利用為第二服務器計算子系統。例如,服務器計算子系統可用作第一服務器計算子系統,并且網絡計算子系統可用作第二服務器計算子系統。在一些實施方案中,在第二模式下,可重新配置的資源的至少一部分可被轉向到服務器計算子系統。因此,所公開技術的一些實施方案可使soc能夠在第二模式下(例如,使用與網絡計算子系統相關聯的資源或可重新配置的資源)提供高性能的計算服務。
在一個實施方案中,管理計算子系統可將soc配置成在第三模式下操作,例如,網絡計算子系統和服務器計算子系統都可被啟用,并且soc可同時提供與網絡相關的服務和與計算相關的服務。在第三模式下,網絡計算子系統和服務器計算子系統中的每一個可利用其專用處理和存儲器資源。在一些實施方案中,在第三模式下,服務器計算子系統可被配置為主機系統,并且網絡計算子系統可被配置來管理被配置為主機系統的服務器計算子系統的網絡流量。
在所公開技術的一些實施方案中,系統可包括多個soc,其中多個soc中的第一soc可被配置來在多種模式中的一種模式下操作,并且多個soc中的第二soc可被配置來在多種模式中的一種模式下操作。在一個實施方案中,系統中的多個soc可使用諸如外圍部件高速互連(pcie)接口的標準接口來彼此通信。例如,在一個實施方案中,被配置來在第二模式下操作以僅提供計算服務的第一soc可作為主機系統中的通用處理器來操作,并且可與配置成處于多種模式中的一種模式下的一個或多個其他soc通信。在另一個實施方案中,被配置來在第一模式下操作以僅提供網絡服務的第一soc可作為一個或多個服務器(例如,被配置成處于第二模式下的soc或第三方soc)的網絡處理器來操作。
典型的soc可包括集成到單個芯片中的系統的功能。例如,soc可包括多個處理器核、易失性和非易失性存儲器模塊、存儲器控制器、一個或多個內部總線、標準接口、外圍設備、電壓調節器、功率管理電路、諸如振蕩器和鎖相環的定時資源等。在單個芯片上實現多個芯片的功能可降低制造和組裝成本。此外,soc通常具有較小的覆蓋區和空間要求。因此,與實現相同功能的多芯片系統相比,soc實現方式通常消耗更少的功率并且具有更高性價比。
盡管所公開技術的實施方案被描述和示出為將soc配置成在三種模式中的一種模式下操作,但是所公開技術的方面不限于將soc配置成在三種模式中的一種模式下操作。例如,在一些實現方式中,多個計算子系統可被包括在soc中,并且soc可被配置成作為計算子系統中的一個來操作,或者作為多于兩個的計算子系統同時操作,而不偏離所公開技術的范圍。
圖1示出了根據本文所述的技術的某些實施方案的示例性系統100。在某些實施方案中,片上系統(soc)102可被配置來在多種模式中的一種模式下操作。
soc102可包括網絡計算子系統104、服務器計算子系統106和管理計算子系統108。soc102可被配置來與主機系統110通信。可使用接口112(諸如外圍部件高速互連(pcie)接口或任何其他合適的接口)來執行soc102與主機系統110之間的通信。
在一些情況下,主機系統110可向多個客戶端提供多租戶平臺。例如,主機系統110可向不同的客戶端提供服務,諸如云計算、云存儲、分析、web服務、數據庫、應用、部署服務等。主機系統110可包括服務器(例如,x86服務器)。在一些實施方案中,主機系統110中的一個或多個處理器可連接到soc102上的套接字。在一些實現方式中,可使用插入卡將soc102耦合到主機系統110,或者可將soc102焊接在主機系統110的主板上。
網絡計算子系統104可被配置來提供網絡相關功能,諸如網絡流量整形、網絡加速、網絡存儲處理等。在一些實施方案中,網絡計算子系統104可包括網絡接口控制器(nic)或網絡協處理器的至少一些功能。在某些實施方案中,網絡計算子系統104可包括與由主機系統110提供的web服務相關的一些功能,例如,計費、速率、流量整形、加密、阻塞等。網絡計算子系統104可包括處理和存儲器資源,諸如處理核、高速緩存、存儲器控制器、i/o控制器等。
服務器計算子系統106可被配置來向客戶端計算機提供計算服務(例如,虛擬或物理資源)。例如,計算服務可包括啟動各種大小的虛擬機示例,根據需要將存儲卷關聯到虛擬機,通過租用虛擬機、數據處理、存儲設備等給客戶端計算機提供資源以運行應用。服務器計算子系統106可包括處理和存儲器資源,諸如處理核、高速緩存、存儲器控制器、i/o控制器等。
在一些實施方案中,服務器計算子系統106可用于卸載主機系統110的一些工作負載。在一些情況下,主機系統110連同服務器計算子系統106可提供高性能的計算服務。例如,主機系統110可集中處理快速周轉服務,并且可將任何低性能的工作負載卸載到服務器計算子系統106,從而增加系統的吞吐量。
在所公開技術的實施方案中,soc102可被配置來在多種模式中的一種模式下操作。例如,在第一模式下,soc102可被配置來操作網絡計算子系統104以至少管理網絡流量。例如,在一些實施方案中,soc102可被配置來(例如,通過接口112)在主機系統110中的pcie設備上操作網絡計算子系統104,(例如)以管理主機系統110的網絡流量。在第二模式下,soc102可被配置來操作服務器計算子系統106以提供計算服務。例如,在一些實施方案中,soc102可被配置來(例如,通過接口112)在主機系統110中的pcie設備上操作服務器計算子系統106。在第三模式下,soc102可被配置來同時操作網絡計算子系統104和服務器計算子系統106。在一些實施方案中,服務器計算子系統106可被配置為主機系統,并且網絡計算子系統104可管理被配置為主機系統的服務器計算子系統106的網絡流量。在一些實施方案中,soc102可由管理計算子系統108配置成處于多種模式中的一種模式下。
在一些實施方案中,當soc102在第一模式下操作時,服務器計算子系統106可被去配置或停用。例如,在一些情況下,可關閉服務器計算子系統106。在一些其他實施方案中,當soc102在第一模式下操作時,服務器計算子系統106可被重新利用為第二網絡計算子系統。例如,在一些情況下,soc102可被配置來通過利用兩個網絡計算子系統來提供高性能的聯網服務。在一些實施方案中,在第一模式下,soc102可被配置來禁用服務器計算子系統106并且重新配置與服務器計算子系統106相關聯的處理和存儲器資源,以作為網絡計算子系統104的資源來操作,從而提供高性能的聯網服務。在一些實施方案中,在第一模式下,soc102可被配置成作為一個或多個服務器的網絡處理器來操作。
在一些實施方案中,當soc102在第二模式下操作時,網絡計算子系統104可被去配置或停用。例如,在一些情況下,可關閉網絡計算子系統104。在一個實施方案中,在第二模式下,soc102可被配置成作為主機系統110中的通用處理器來操作。例如,在一些實施方案中,通用處理器可能能夠在任何平臺(例如,任何操作系統)上運行。在一些實施方案中,通用處理器可能能夠執行計算機的中央處理單元的大部分功能(諸如通用計算),并且可能能夠支持多個聯網和消息傳輸協議。在一些其他實施方案中,當soc102在第二模式下操作時,網絡計算子系統104可被重新利用為第二服務器計算子系統。例如,在一些情況下,soc102可被配置來通過利用兩個服務器計算子系統來提供高性能的計算服務。在一些實施方案中,在第二模式下,soc102可被配置來禁用網絡計算子系統104并且重新配置與網絡計算子系統104相關聯的處理和存儲器資源,以作為服務器計算子系統106的資源來操作,從而提供高性能的計算服務。
在一些實施方案中,管理計算子系統108可被配置來將soc102配置在多種模式中的一種模式(例如,第一模式、第二模式或第三模式)下操作。管理計算子系統108還可被配置來管理soc102的各種子系統。例如,管理計算子系統108可被配置來提供不同子系統的引導管理、復位和功率管理以及與soc管理相關的任何其他功能。例如,在一些實施方案中,管理計算子系統108可被配置來在不影響其他計算子系統的情況下將每個計算子系統斷電,例如,網絡計算子系統104和服務器計算子系統106可獨立地加電或斷電。管理計算子系統108還可被配置來管理與不同子系統相關聯的資源。在一些實施方案中,管理計算子系統108可包括其自身的處理資源(諸如一個或多個處理器核)。
因此,所公開技術的實施方案可通過使用相同的硅提供不同的功能來允許soc102在多種模式中的一種模式下操作。例如,同一個soc102可在不同的配置下作為網絡計算子系統操作,作為服務器計算子系統操作或者作為網絡計算子系統和服務器計算子系統同時操作,這具有最小的成本并且不需要任何額外的硅。
圖2示出了根據所公開技術的一些實施方案的soc102的詳細框圖。
soc102可包括網絡計算子系統104、服務器計算子系統106、管理計算子系統108和共享資源子系統230。管理計算子系統108可使用內部總線232與諸如網絡計算子系統104、服務器計算子系統106和共享資源子系統230的其他子系統通信。
網絡計算子系統104可包括網絡計算子系統多核處理器202、l1/l2高速緩存204、網絡計算子系統高速緩存一致結構206、l3高速緩存208、網絡i/o子系統210、網絡計算子系統存儲器控制器212和加速度單元214。在一些實施方案中,網絡計算子系統104的處理和存儲器資源的分配可被固定。例如,網絡計算子系統多核處理器202中的多核處理器的數量、網絡計算子系統存儲器控制器212中的存儲器控制器的數量以及l1/l2高速緩存204、l3高速緩存208的大小可在上電復位后被固定。
服務器計算子系統106可包括服務器計算子系統多核處理器216、l1/l2高速緩存218、服務器計算子系統高速緩存一致結構220、l3高速緩存222、服務器i/o子系統224、服務器計算子系統存儲器控制器226和引導外圍設備228。在一些實施方案中,服務器計算子系統106的處理和存儲器資源的分配可被固定。例如,服務器計算子系統多核處理器216中的多核處理器的數量、服務器計算子系統存儲器控制器226中的存儲器控制器的數量以及l1/l2高速緩存218、l3高速緩存222的大小可在上電復位后被固定。
網絡計算子系統多核處理器202可包括同一處理器內的多個多核處理器或處理單元。例如,在一種情況下,網絡計算子系統多核處理器202可包括十二個2核處理器。網絡計算子系統多核處理器202可被配置來在處理器核的一個或多個處理器上共同地執行多個指令。指令可(例如)以計算機程序的形式存儲在計算機可讀存儲介質上。計算機可讀存儲介質可以是非暫時性的。在一些實施方案中,多核處理器可共享某些資源,諸如多核之間的總線以及1級(l1)高速緩存和/或2級(l2)高速緩存。例如,在一些情況下,單核或多核處理器中的每個核還可包括多個執行中的邏輯處理器(或線程)。在這種(支持多個邏輯處理器的)核中,還可共享執行流水線的若干級以及還有較低級的高速緩存(例如,l1或l2)。多核處理器的一些非限制性示例可包括arm的cortexa57、mips、amdphenom、intelatom等。
在一些實施方案中,l1/l2高速緩存204可在網絡計算子系統多核處理器202的多個核之間共享。例如,l1高速緩存可用作主高速緩存,并且l2高速緩存可用作次高速緩存。在一些實施方案中,l1/l2高速緩存204可被內置到網絡計算子系統多核處理器202中。例如,一個l1/l2高速緩存可與一個多核處理器集成。在一些實施方案中,可將網絡計算子系統多核處理器202和l1/l2高速緩存204重新配置以作為服務器計算子系統106的計算資源來操作。例如,當soc102被配置來在第二模式下操作時,網絡計算子系統104可被去配置以禁用由soc102提供的與網絡相關的功能。
網絡i/o子系統210可包括一個或多個接口,所述一個或多個接口用于與各種內部和外部部件通信。例如,網絡i/o子系統210可包括接口236,所述接口236用于與主機系統110通信。網絡i/o子系統210可包括內部接口(例如,接口234),所述內部接口用于與服務器計算子系統106通信。在一些實施方案中,當服務器計算子系統106被禁用時,可不利用與服務器計算子系統106通信的接口234。在一些實施方案中,服務器計算子系統106可(例如)通過接口234經由網絡i/o子系統210與主機系統110和網絡通信。在一些實施方案中,與主機系統110和服務器計算子系統106通信的接口可以基于諸如pcie的標準接口。網絡i/o子系統210還可包括與網絡(例如,互聯網、內聯網)等通信的接口。例如,接口可以基于標準(諸如以太網、令牌環、wi-fi、atm(異步傳輸模式)等)。在一些實施方案中,網絡i/o子系統210還可包括外圍設備,諸如一個或多個sata控制器、以太網mac、pcie設備、serdes(串行化-解串行化)i/o多路復用器、uart(通用異步接收器/發送器)、i2c(集成電路互連)、gpio(通用輸入/輸出)以及用于soc功能的任何其他合適的i/o設備。在一些實施方案中,網絡i/o子系統210還可包括接口(例如,sata),所述接口用于連接到外部大容量存儲設備(諸如硬盤驅動器、光驅等)。
網絡計算子系統存儲器控制器212可包括多個存儲器控制器,諸如ddr(雙倍數據速率)控制器、ddr2控制器或任何合適的存儲器控制器。網絡計算子系統存儲器控制器212可用于管理對外部存儲器(例如,系統存儲器)的訪問。例如,外部系統存儲器可包括ddr同步動態隨機存取存儲器(dram)、ddr2dram、dram等。在一些實施方案中,網絡計算子系統存儲器控制器212中的存儲器控制器的數量可以基于處理器核的數量、高速緩存的大小等。
加速度單元214可包括一個或多個加速器(諸如網絡加速器)。在一些實施方案中,加速度單元214可包括各種硬件和軟件技術的組合,以(例如)使用硬件加速器、各種流水線、高速緩存、壓縮等來提供帶寬優化或網絡加速。加速度單元214還可支持rdma(遠程直接存儲器訪問)、加密引擎等。例如,在一些情況下,加密引擎可在硬件中執行加密功能,從而減少軟件開銷并加速執行與聯網相關的解密、加密和認證功能。
l3高速緩存208可包括末級高速緩存。在一些實施方案中,l3高速緩存208可被網絡計算子系統多核處理器202的多個核共享。在本說明書中,術語末級高速緩存和l3高速緩存可以互換地使用,然而,在一些系統中,末級高速緩存在不偏離技術的范圍的情況下可以是2級高速緩存或4級高速緩存或任何其他級高速緩存。在一些實施方案中,可將l3高速緩存208和網絡計算子系統存儲器控制器212重新配置以作為服務器計算子系統106的計算資源來操作。例如,當soc102被配置來在第二模式下操作時,網絡計算子系統104可被去配置以禁用由soc102提供的與網絡相關的功能。
網絡計算子系統高速緩存一致結構206可表示物理層結構,所述物理層結構可連接到分配給網絡計算子系統104的所有資源。在所公開技術的一些實施方案中,網絡計算子系統高速緩存一致結構206可通過允許針對分配給網絡計算子系統104的所有資源的專用硬件路徑來提供硬件安全和性能/抖動隔離。在一些實施方案中,網絡計算子系統高速緩存一致結構206可被配置來在網絡計算子系統104的不同部件(例如,網絡計算子系統多核處理器202、l1/l2高速緩存204、l3高速緩存208、網絡i/o子系統210、網絡計算子系統存儲器控制器212、加速度單元214和共享資源子系統230)之間保持一致性。在一些情況下,網絡計算子系統高速緩存一致結構206可表示網絡計算子系統104的通信骨干。在一些實施方案中,網絡計算子系統高速緩存一致結構206可被配置來確保所有共享數據在網絡計算子系統104中是一致的。例如,如果某些共享數據存儲在兩個或更多個位置(例如,多個處理器、處理器的多個核、高速緩存等)中,那么網絡計算子系統高速緩存一致結構206可操作來保持不同位置中的共享數據的一致性。在一些實施方案中,網絡計算子系統高速緩存一致結構206可包括一致性控制器和一致性目錄,以保持網絡計算子系統104的不同部件之間的一致性。
服務器計算子系統多核處理器216可包括同一處理器內的多個多核處理器或處理單元。例如,在一種情況下,服務器計算子系統多核處理器216可包括十二個2核處理器。服務器計算子系統多核處理器216可被配置來在處理器核的一個或多個處理器上共同地執行多個指令。指令可(例如)以計算機程序的形式存儲在計算機可讀存儲介質上。計算機可讀存儲介質可以是非暫時性的。
在一些實施方案中,l1/l2高速緩存218可在服務器計算子系統多核處理器216的多個核之間共享。例如,l1高速緩存可用作主高速緩存,并且l2高速緩存可用作次高速緩存。在一些實施方案中,l1/l2高速緩存218可被內置到服務器計算子系統多核處理器216中。在一些實施方案中,可將服務器計算子系統多核處理器216和l1/l2高速緩存218重新配置以作為網絡計算子系統104的計算資源來操作。例如,當soc102被配置來在第一模式下操作時,服務器計算子系統106可被去配置以禁用由soc102提供的與計算相關的功能。
服務器計算子系統存儲器控制器226可包括多個存儲器控制器,諸如ddr控制器、ddr2控制器或任何合適的存儲器控制器。服務器計算子系統存儲器控制器226可用于管理對外部存儲器的訪問。在一些實施方案中,服務器計算子系統存儲器控制器226中的存儲器控制器的數量可以基于處理器核的數量、高速緩存的大小等。
服務器i/o子系統224可包括一個或多個接口,所述一個或多個接口用于與各種內部和外部部件通信。例如,服務器i/o子系統224可包括接口238,所述接口238用于與主機系統110通信。服務器i/o子系統224可包括內部接口(例如,接口234),所述內部接口用于與網絡計算子系統104通信。在一些實施方案中,當網絡計算子系統104被禁用時,可不利用與網絡計算子系統104通信的接口234。在一些實施方案中,服務器計算子系統106可(例如)通過接口234經由網絡i/o子系統210與主機系統110和網絡通信。在一些實施方案中,與主機系統110和網絡計算子系統104通信的接口可以基于諸如pcie的標準接口。服務器i/o子系統224還可包括與網絡(例如,互聯網、內聯網)等通信的接口。例如,接口可以基于標準(諸如以太網、令牌環、wi-fi、atm(異步傳輸模式)等)。在一些實施方案中,服務器i/o子系統224還可包括外圍設備,諸如一個或多個sata控制器、以太網mac、pcie設備、serdes(串行化-解串行化)i/o多路復用器、uart、i2c、gpio以及用于soc功能的任何其他合適的i/o設備。在一些實施方案中,服務器i/o子系統224還可包括接口(例如,sata),所述接口用于連接到外部大容量存儲設備(諸如硬盤驅動器、光驅等)。
l3高速緩存222可包括末級高速緩存。在一些實施方案中,l3高速緩存222可被服務器計算子系統多核處理器216的多個核共享。在一些實施方案中,可將l3高速緩存222和服務器計算子系統存儲器控制器226重新配置以作為網絡計算子系統104的存儲器資源來操作。例如,當soc102被配置來在第一模式下操作時,服務器計算子系統106可被去配置以禁用由soc102提供的與計算相關的功能。
引導外圍設備228可包括服務器計算子系統106的一個或多個外圍設備。例如,引導外圍設備228可包括引導rom、eeprom或閃存。在一些實施方案中,引導外圍設備228中的一個可包括bios軟件,所述bios軟件用于引導服務器計算子系統106的操作系統。
服務器計算子系統高速緩存一致結構220可表示物理層結構,所述物理層結構可連接到分配給服務器計算子系統106的所有資源。在所公開技術的實施方案中,服務器計算子系統高速緩存一致結構220可通過允許針對分配給服務器計算子系統106的所有資源的專用硬件路徑來提供硬件安全和性能/抖動隔離。在一些實施方案中,服務器計算子系統高速緩存一致結構220可被配置來在服務器計算子系統106的不同部件(例如,服務器計算子系統多核處理器216、l1/l2高速緩存218、服務器計算子系統存儲器控制器226、l3高速緩存222、服務器i/o子系統224和共享資源子系統230)之間保持一致性。在一些情況下,服務器計算子系統高速緩存一致結構220可表示服務器計算子系統106的通信骨干。在一些實施方案中,服務器計算子系統高速緩存一致結構220可被配置來確保所有共享數據在服務器計算子系統106中是一致的。例如,如果某些共享數據存儲在兩個或更多個位置(例如,多個處理器、處理器的多個核、高速緩存等)中,那么服務器計算子系統高速緩存一致結構220可操作來保持不同位置中的共享數據的一致性。在一些實施方案中,服務器計算子系統高速緩存一致結構220可包括一致性控制器和一致性目錄,以保持服務器計算子系統106的不同部件之間的一致性。
共享資源子系統230可包括一個或多個資源,所述一個或多個資源可在網絡計算子系統104與服務器計算子系統106之間共享。在一些實施方案中,共享資源子系統230可包括一個或多個外圍設備,所述一個或多個外圍設備可在不引起任何抖動或安全問題的情況下在網絡計算子系統104與服務器計算子系統106之間安全地共享。例如,共享資源子系統230可包括隨機數生成器、通信郵箱、高速暫存存儲器、閃存等。
管理計算子系統108可被配置來將soc102配置成在多種模式中的一種模式下操作。在一些實施方案中,管理計算子系統108可基于硬件配置(例如,一個或多個引腳、跳線或熔絲)、軟件配置(例如,軟件寄存器的數據字段)或策略來確定soc102在加電時的配置。例如,策略可由外部實體或操作者通過網絡連接來提供。在一些實施方案中,管理計算子系統108可在運行時間期間動態地確定soc102的配置。
在一個實施方案中,管理計算子系統108可將soc102配置成在第一模式下操作,例如,soc102可僅提供與網絡相關的服務。例如,服務器計算子系統106可被斷電或去配置。在一些實施方案中,管理計算子系統108還可以第一模式配置soc102來禁用服務器計算子系統106并將與服務器計算子系統106相關聯的處理和存儲器資源重新配置,以作為網絡計算子系統104的資源來操作。在一個實施方案中,管理計算子系統108可將服務器計算子系統多核處理器216、l1/l2高速緩存218、l3高速緩存222、服務器計算子系統存儲器控制器226和服務器i/o子系統224重新配置,以作為網絡計算子系統104的資源來操作。在另一個實施方案中,管理計算子系統108還可以第一模式配置soc102以將服務器計算子系統106重新利用為第二網絡計算子系統。例如,網絡計算子系統104可用作第一網絡計算子系統,并且服務器計算子系統106可用作第二網絡計算子系統。因此,所公開技術的一些實施方案可使soc102能夠在第一模式下提供高性能的聯網服務。
在一個實施方案中,管理計算子系統108可將soc102配置成在第二模式下操作,例如,soc102可僅提供與計算相關的服務。例如,網絡計算子系統104可被斷電或去配置。在一些實施方案中,管理計算子系統108還可以第二模式配置soc102來禁用網絡計算子系統104并將與網絡計算子系統104相關聯的處理和存儲器資源重新配置,以作為服務器計算子系統106的資源來操作。在一個實施方案中,管理計算子系統108可將網絡計算子系統多核處理器202、l1/l2高速緩存204、l3高速緩存208、網絡計算子系統存儲器控制器212和網絡i/o子系統210重新配置,以作為服務器計算子系統106的資源來操作。在另一個實施方案中,管理計算子系統108還可以第二模式配置soc102以將網絡計算子系統104重新利用為第二服務器計算子系統106。例如,服務器計算子系統106可用作第一服務器計算子系統,并且網絡計算子系統104可用作第二服務器計算子系統。因此,所公開技術的一些實施方案可使soc102能夠在第二模式下提供高性能的計算服務。
在一個實施方案中,管理計算子系統108可將soc102配置成在第三模式下操作,例如,網絡計算子系統104和服務器計算子系統106都可被啟用,并且soc102可同時提供與網絡相關的服務和與計算相關的服務。在第三模式下,網絡計算子系統104和服務器計算子系統106中的每一個可利用其專用處理和存儲器資源。
圖3a示出了根據所公開技術的實施方案的第一模式下的soc配置。
在第一模式下,soc102可作為網絡計算子系統來操作,以用于至少管理主機系統110的網絡流量。在一個實施方案中,soc102可被配置來(例如,使用接口236)在主機系統110中的pcie設備上操作網絡計算子系統104。例如,在一些情況下,soc可用于僅提供與網絡相關的功能(諸如網絡流量整形、網絡加速、網絡存儲處理等)并且可不被用來提供與計算相關的服務。在一些實施方案中,如圖3a中所示,在第一模式下,只有網絡計算子系統104可以是激活的或被配置來至少管理主機系統110的網絡流量。服務器計算子系統106可以是停用的或被去配置。在一些實施方案中,可關閉服務器計算子系統106的至少一部分。管理計算子系統108可以是激活的并且被配置來管理網絡計算子系統104和服務器計算子系統106的資源。例如,在一些實施方案中,管理計算子系統108還可配置soc102來將與服務器計算子系統106相關聯的處理和存儲器資源重新配置,以作為網絡計算子系統104的資源來操作。重新參照圖2,管理計算子系統108可將服務器計算子系統多核處理器216、l1/l2高速緩存218、l3高速緩存222、服務器計算子系統存儲器控制器226和服務器i/o子系統224重新配置,以作為網絡計算子系統104的資源來操作。因此,所公開技術的一些實施方案可使soc102能夠通過利用來自兩個計算子系統的資源來提供高性能的聯網服務。
圖3b示出了根據所公開技術的實施方案的第二模式下的soc配置。
在第二模式下,soc102可作為服務器計算子系統來操作,以用于提供計算服務。在一個實施方案中,soc102可被配置來(例如,使用接口238)在主機系統110中的pcie設備上操作服務器計算子系統106。例如,在一些情況下,soc102可用于僅提供與服務器相關的功能(諸如計算、數據處理或提供其他虛擬或物理的資源)并且可不被用來提供與網絡相關的服務。在一些實施方案中,如圖3b中所示,在第二模式下,只有服務器計算子系統106可以是激活的或被配置來提供計算服務。網絡計算子系統104可以是停用的或被去配置。在一些實施方案中,可關閉網絡計算子系統104的至少一部分。管理計算子系統108可以是激活的并且被配置來管理網絡計算子系統104和服務器計算子系統106的資源。例如,在一些實施方案中,管理計算子系統108還可配置soc102來將與網絡計算子系統104相關聯的處理和存儲器資源重新配置,以作為服務器計算子系統106的資源來操作。重新參照圖2,管理計算子系統108可將網絡計算子系統多核處理器202、l1/l2高速緩存204、l3高速緩存208、網絡計算子系統存儲器控制器212和網絡i/o子系統210重新配置,以作為服務器計算子系統106的資源來操作。因此,所公開技術的一些實施方案可使soc102能夠通過利用來自兩個計算子系統的資源來提供高性能的計算服務。
圖3c示出了根據所公開技術的一個實施方案的第三模式下的soc配置。
在第三模式下,soc102可作為網絡計算子系統104和服務器計算子系統106來同時操作。例如,網絡計算子系統104和服務器計算子系統106都可以是激活的。在一些實施方案中,網絡計算子系統104可用于提供與網絡相關的服務(諸如網絡流量整形、網絡加速、網絡存儲處理等),并且服務器計算子系統106可用于提供計算服務(諸如計算、數據處理或提供其他虛擬或物理的資源)。在一些實施方案中,在第三模式下,soc102還可被配置成將服務器計算子系統106作為主機系統來操作,并且操作網絡計算子系統104以管理服務器計算子系統106的網絡流量。例如,在一些實施方案中,soc102可用作主機系統,所述主機系統可提供計算服務和網絡服務。管理計算子系統108可以是激活的并且被配置來管理網絡計算子系統104和服務器計算子系統106的資源。因此,所公開技術的一些實施方案可使soc102能夠通過利用兩個計算子系統來同時提供網絡服務和計算服務。
圖4a示出了根據所公開技術的一個實施方案的第一模式下的soc配置,其中服務器計算子系統被重新利用為網絡計算子系統。
在一些實施方案中,在第一模式下,soc402可被配置來將服務器計算子系統重新利用為第二網絡計算子系統406。例如,重新參照圖3a,服務器計算子系統106在第一模式下可以是停用的或被去配置。soc402還可包括可類似于網絡計算子系統104的第一網絡計算子系統404以及可類似于管理計算子系統108的管理計算子系統408,如先前參考圖2和圖3a所論述的。在一些實施方案中,將服務器計算子系統重新利用為網絡計算子系統可包括利用與服務器計算子系統相關聯的一個或多個資源以執行與網絡相關的功能而不是與計算服務器相關的功能。例如,重新參照圖2,服務器i/o子系統238可用于網絡流量監測,并且服務器計算子系統多核處理器216、l1/l2高速緩存218、l3高速緩存222和服務器計算子系統存儲器控制器226可用于執行網絡存儲處理。在一些實施方案中,soc402可作為網絡處理器來操作。因此,所公開技術的一些實施方案可允許有效地利用資源以提供高性能的聯網服務。
圖4b示出了根據所公開技術的實施方案的第二模式下的soc配置,其中網絡計算子系統被重新利用為服務器計算子系統。
在一些實施方案中,在第二模式下,soc410可被配置來將網絡計算子系統104重新利用為第二服務器計算子系統414。例如,重新參照圖3b,網絡計算子系統104在第二模式下可以是停用的或被去配置。soc410還可包括管理計算子系統408以及可類似于服務器計算子系統106的第一服務器計算子系統412,如先前參考圖2和圖3b所論述的。在一些實施方案中,將網絡計算子系統重新利用為第二服務器計算子系統可包括利用與網絡計算子系統相關聯的一個或多個資源以執行與計算服務器相關的功能而不是與網絡相關的功能。例如,重新參照圖2,網絡i/o子系統210可用于與主機系統110通信,并且網絡計算子系統多核處理器202、l1/l2高速緩存204、l3高速緩存208和網絡計算子系統存儲器控制器212可用于執行數據處理。在一些實施方案中,soc410可作為通用處理器來操作。因此,所公開技術的一些實施方案可允許有效地利用資源以提供高性能的計算服務。
圖5示出了根據所公開技術的一個實施方案的具有可重新配置的處理和存儲器資源的soc502的框圖。通常,soc502可包括可重新配置的處理和存儲器資源,根據模式,其可被配置來用作網絡計算子系統的一部分或用作服務器計算子系統的一部分。網絡計算子系統和服務器計算子系統也可各自包括其自身的專用處理和存儲器資源。
soc502可類似于先前參考圖2所論述的soc102。在一個實施方案中,除了網絡計算子系統104、服務器計算子系統106、管理計算子系統108和共享資源子系統230之外,soc502還可包括可重新配置的處理核504、l1/l2高速緩存506、轉向單元508、結構橋接器512和可重新配置的存儲器控制器510,如參考圖2所論述的。網絡計算子系統104可包括網絡計算子系統多核處理器202、l1/l2高速緩存204、網絡計算子系統高速緩存一致結構206、l3高速緩存208、網絡i/o子系統210、網絡計算子系統存儲器控制器212和加速度單元214,如參考圖2所論述的。服務器計算子系統106可包括服務器計算子系統多核處理器216、l1/l2高速緩存218、服務器計算子系統高速緩存一致結構220、l3高速緩存222、服務器計算子系統存儲器控制器226、引導外圍設備228和服務器i/o子系統224。
可重新配置的處理核504可包括多個處理核,所述多個處理核可被配置來用作網絡計算子系統104的一部分或用作服務器計算子系統106的一部分。l1/l2高速緩存506可包括多個l1/l2高速緩存,所述多個l1/l2高速緩存可被配置來用作網絡計算子系統104的一部分或用作服務器計算子系統106的一部分。在一些實施方案中,l1/l2高速緩存506中的每一個可被一個或多個處理核共享。
在一個實施方案中,管理計算子系統108可配置soc502以將可重新配置的處理核504和l1/l2高速緩存506中的一個或多個分配給網絡計算子系統104。例如,在第一模式下,soc502可作為網絡計算子系統來操作,以用于至少管理主機系統110的網絡流量。例如,在一些情況下,soc502可用于僅提供與網絡相關的功能(諸如網絡流量整形、網絡加速、網絡存儲處理等)并且可不被用來提供與計算相關的服務。在一些實施方案中,可將可重新配置的處理核504和l1/l2高速緩存506中的至少一些重新配置以作為網絡計算子系統104的資源來操作。在一些實施方案中,soc502還可包括可重新配置的l3或末級高速緩存,所述可重新配置的l3或末級高速緩存可被配置來用作網絡計算子系統104的一部分或用作服務器計算子系統106的一部分。因此,soc502可利用與網絡計算子系統104相關聯的專用資源和被轉向到網絡計算子系統104的可重新配置的資源來提供高性能的聯網服務。
在一個實施方案中,管理計算子系統108可配置soc502以將可重新配置的處理核504和l1/l2高速緩存506中的一個或多個分配給服務器計算子系統106。例如,在第二模式下,soc502可作為服務器計算子系統來操作,以用于提供計算服務。例如,在一些情況下,soc502可用于僅提供與服務器相關的功能(諸如計算、數據處理或提供其他虛擬或物理的資源)并且可不被用來提供與網絡相關的服務。在一些實施方案中,可將可重新配置的處理核504和l1/l2高速緩存506中的至少一些重新配置以作為服務器計算子系統106的資源來操作。因此,soc502可利用與服務器計算子系統106相關聯的專用資源和被轉向到服務器計算子系統106的可重新配置的資源來提供高性能的計算服務。
轉向單元508可被配置來將可重新配置的存儲器控制器510中的一個或多個存儲器控制器轉向到網絡計算子系統104或服務器計算子系統106。例如,管理計算子系統108可根據soc502的模式將可重新配置的存儲器控制器510配置來用作網絡計算子系統104的一部分或用作服務器計算子系統106的一部分。在一些實施方案中,管理計算子系統108可被配置來向轉向單元508提供控制信號,以在第一模式下將可重新配置的存儲器控制器510轉向到網絡計算子系統104,或者在第二模式下將可重新配置的存儲器控制器510轉向到服務器計算子系統106。
在一些實施方案中,轉向單元508還可用于將重新配置的處理核504和l1/l2高速緩存506(例如,通過網絡計算子系統高速緩存一致結構206)轉向到網絡計算子系統104或(例如,通過服務器計算子系統高速緩存一致結構220)轉向到服務器計算子系統106。
結構橋接器506可表示路由結構,所述路由結構用于將每個資源映射到物理層。例如,結構橋接器512可將可重新配置的處理核504和l1/l2高速緩存506映射到物理層結構,所述物理層結構可與網絡計算子系統104或服務器計算子系統106相關聯。在一些實施方案中,可使用結構橋接器512將可重新配置的存儲器控制器510映射到網絡計算子系統104或服務器計算子系統106。在本技術的一些實施方案中,可存在多個物理層,其中每個物理層可與子系統的一致結構相關聯。例如,網絡計算子系統高速緩存一致結構206可表示網絡計算子系統104的第一物理層結構,并且服務器計算子系統高速緩存一致結構220可表示服務器計算子系統106的第二物理層結構。在一些實施方案中,網絡計算子系統高速緩存一致結構206和服務器計算子系統高速緩存一致結構220中的每一個可具有附接到資源的端口。在一些實施方案中,結構橋接器512可具有端口,所述端口用于(例如,通過資源的接口)物理地連接到每個可重新配置的資源。結構橋接器512可被配置來將附接的資源映射到相應的物理層結構的端口。例如,網絡計算子系統高速緩存一致結構206和服務器計算子系高速緩存一致結構220中的每一個可被實現為交叉桿、網格、環或可允許附接資源的任何其他合適的實現方式,所述資源物理地連接到結構橋接器512上的端口。所公開技術的實施方案可允許物理隔離每個計算子系統的物理層結構,這可減少兩個計算子系統的抖動和安全風險。
在一些實施方案中,網絡計算子系統高速緩存一致結構206可通過將網絡計算子系統104的所有配置的資源隔離到第一物理層來提供減少的抖動和安全問題,并且服務器計算子系統高速緩存一致結構220可通過將服務器計算子系統106的所有配置的資源隔離到第二物理層來提供減少的抖動和安全問題。
圖6a示出了根據所公開技術的一些實施方案的soc502,其被配置來在包括可重新配置的資源的第一模式下操作。
如圖6a中所示,soc502可包括網絡計算子系統602、服務器計算子系統106和管理計算子系統108。在一些實施方案中,網絡計算子系統602可包括網絡計算子系統104的專用資源以及如參考圖5所論述的可重新配置的處理和存儲器資源。例如,除了與網絡計算子系統104相關聯的專用處理和存儲器資源之外,網絡計算子系統602可包括重新配置的處理核504、l1/l2高速緩存506以及重新配置的存儲器控制器510。
如先前參考圖3a所論述的,在第一模式下,服務器計算子系統106可以是停用的或被去配置。例如,在一些情況下,可關閉服務器計算子系統106的至少一些部分。在一些實施方案中,在第一模式下,soc502可作為網絡計算子系統602來操作,所述網絡計算子系統602包括:專用資源,其與網絡計算子系統104相關聯;以及可重新配置的處理和存儲器資源,其被配置成作為網絡計算子系統104的資源來操作。這可允許soc502通過利用更多數量的資源來執行高性能的聯網任務。
圖6b示出了根據所公開技術的一些實施方案的soc502,其被配置來在第二模式下操作。
如圖6b中所示,soc502可包括網絡計算子系統104、服務器計算子系統604和管理計算子系統108。在一些實施方案中,服務器計算子系統604可包括服務器計算子系統106的專用資源以及如參考圖5所論述的可重新配置的處理和存儲器資源。例如,除了與服務器計算子系統106相關聯的資源之外,服務器計算子系統604可包括重新配置的處理核504、l1/l2高速緩存506以及重新配置的存儲器控制器510。
如先前參考圖3b所論述的,在第二模式下,網絡計算子系統104可以是停用的或被去配置。例如,在一些情況下,可關閉網絡計算子系統104的至少一些部分。在一些情況下,網絡計算子系統104的一小部分可用于為soc502提供基本的聯網功能。在一些實施方案中,在第二模式下,soc502可作為服務器計算子系統604來操作,所述服務器計算子系統604包括:專用資源,其與服務器計算子系統106相關聯;以及可重新配置的處理和存儲器資源,其被配置成作為服務器計算子系統106的資源來操作。這可允許soc502通過利用更多數量的資源來執行高性能的計算任務。
圖7a-7c示出了可包括第一soc和第二soc的系統700,所述第一soc和第二soc可被配置來通過接口710通信。例如,接口710可以基于諸如pcie的標準接口。第一soc可被配置來與第二soc通信,所述第二soc可被配置成處于多種模式中的一種模式下,例如,在第一模式下操作網絡計算子系統,在第二模式下操作服務器計算子系統或者在第三模式下同時操作網絡計算子系統和服務器計算子系統二者。
圖7a示出了根據本技術的一個實施方案的第一soc與第二soc通信,所述第一soc被配置來在第二模式下操作,所述第二soc被配置來在第一模式下操作。例如,第一soc702可被配置來在第二模式下操作以提供計算服務。應注意,在一些實施方案中,可使用soc502來代替第一soc702或第二soc102。然而,僅出于說明性目的,soc102被示出為第二soc。
如圖7a中所示,第一soc702可類似于被配置成處于第二模式下的soc102,其中網絡計算子系統被重新利用為第二服務器計算子系統。在一些實施方案中,在第二模式下,soc702可被配置成作為主機系統(例如,主機系統110)中的通用處理器來操作。例如,在一些實施方案中,通用處理器可能能夠在任何平臺(例如,任何操作系統)上運行。在一些實施方案中,通用處理器可能能夠執行計算機的中央處理單元的大部分功能(諸如通用計算),并且可能能夠支持多個聯網和消息傳輸協議。soc702可包括第一服務器計算子系統704、第二服務器計算子系統706和管理計算子系統708。第一服務器計算子系統704可類似于服務器計算子系統106,并且第二服務器計算子系統706可類似于如先前參考圖4b所論述的第二服務器計算子系統414。例如,第二服務器計算子系統706可以是重新利用的網絡計算子系統。管理計算子系統708可類似于先前參考圖2所論述的管理計算子系統108。
soc102可在第一模式下操作,如先前參考圖3a所論述的。例如,在一些實施方案中,soc102可被配置來操作網絡計算子系統104以至少管理第一soc702的網絡流量。服務器計算子系統106可以是停用的或被去配置。在一些情況下,可關閉服務器計算子系統106的至少一些部分。在一些實施方案中,在第一模式下,soc102可被配置來在作為主機系統操作的soc702中的pcie設備上操作網絡計算子系統104。例如,pcie設備可以是服務器i/o子系統224的一部分,如參考圖2所論述的。因此,在一些實施方案中,soc102可作為soc702的網絡處理器來操作。
圖7b示出了根據本技術的一個實施方案的第一soc與第二soc通信,所述第一soc被配置來在第二模式下操作,所述第二soc被配置來在第二模式下操作。例如,第一soc702可被配置來在第二模式下操作以提供計算服務,如先前參考圖7a所論述的。在一些實施方案中,在第二模式下,soc702可被配置成作為主機系統(例如,主機系統110)中的通用處理器來操作。
如圖7b中所示,soc102可在第二模式下操作,如先前參考圖3b所論述的。例如,soc102可被配置來操作服務器計算子系統106以提供計算服務。網絡計算子系統104可以是停用的或被去配置。在一些情況下,可關閉網絡計算子系統104的至少一些部分。在一些實施方案中,在第二模式下,soc102可被配置來在作為主機系統操作的soc702中的pcie設備上操作服務器計算子系統106。例如,pcie設備可以是服務器i/o子系統224的一部分,如參考圖2所論述的。因此,soc702可作為通用處理器來操作,所述通用處理器可通過pcie接口與服務器計算子系統106通信。例如,在一些實施方案中,服務器計算子系統106可用于卸載第一soc702的一些工作負載。在一些情況下,被配置成處于第二模式下的第一soc702連同服務器計算子系統106可提供高性能的計算服務。例如,第一soc702可集中處理快速周轉服務,并且可將低性能的工作負載卸載到服務器計算子系統106,從而增加系統的吞吐量。
圖7c示出了根據本技術的一個實施方案的第一soc與第二soc通信,所述第一soc被配置來在第二模式下操作,所述第二soc被配置來在第三模式下操作。例如,第一soc702可被配置來在第二模式下操作以提供計算服務,如先前參考圖7a所論述的。在一些實施方案中,在第二模式下,soc702可被配置成作為主機系統(例如,主機系統110)中的通用處理器來操作。
如圖7c中所示,soc102可在第三模式下操作,如先前參考圖3c所論述的。例如,soc102可被配置來同時操作網絡計算子系統104和服務器計算子系統106。因此,soc702可作為通用處理器來操作,所述通用處理器可通過pcie接口與網絡計算子系統104和服務器計算子系統106通信。在一些實施方案中,soc702可通過網絡i/o子系統210(例如,接口236)與網絡計算子系統104通信以及通過服務器i/o子系統224(例如,接口238)與服務器計算子系統106通信,如先前參考圖2所論述的。
圖8示出了根據本技術的一個實施方案的包括多個soc的系統800。根據本技術的一個實施方案,第一soc可被配置成作為網絡計算子系統來操作,所述網絡計算子系統可被配置來使用pcie接口與一個或多個soc通信。在一些實施方案中,第一soc可被配置來與第二soc通信,所述第二soc可以是第三方soc(例如,包括通用處理器的soc)。
soc802可被配置成處于第一模式下,以操作網絡計算子系統來至少管理網絡流量。例如,soc802可包括如先前參考圖4a所論述的第一網絡計算子系統804和第二網絡計算子系統806。第一網絡計算子系統804可類似于第一網絡計算子系統404,并且可被配置用于至少管理網絡流量。第二網絡計算子系統806可以是重新利用的服務器計算子系統(例如,服務器計算子系統106)。soc802可被配置來通過利用與第一網絡計算子系統804和第二網絡計算子系統806相關聯的資源來提供高性能的聯網服務。
在一些實施方案中,soc802可作為一個或多個服務器的網絡處理器來操作。例如,soc802可被配置來與被配置為服務器子系統的一個或多個soc(例如,soc808、soc820和soc832)通信。例如,soc808、820和832中的每一個可被配置來在第二模式下操作以作為用于提供計算服務的服務器計算子系統來操作。soc808可包括第一服務器計算子系統810和第二服務器計算子系統812。例如,第二服務器計算子系統812可以是重新利用的網絡計算子系統,如先前參考4b所論述的。soc820可包括第一服務器計算子系統822和第二服務器計算子系統824,其中第二服務器計算子系統824可以是重新利用的網絡計算子系統。soc832可包括第一服務器計算子系統834和第二服務器計算子系統836,其中第二服務器計算子系統836可以是重新利用的網絡計算子系統。應注意,soc808、820和832可包括相同或不同配置的處理和存儲器資源。此外,在一些實施方案中,soc808、820和832中的任何一個可僅包括一個服務器計算子系統(例如,其他服務器計算子系統可以是停用的)。在一些實施方案中,soc808、820和832中的一個或多個可類似于soc502,如參考圖6b所論述的。
soc808可包括第一服務器計算子系統810與soc802之間的接口816以及第二服務器計算子系統818與soc802之間的接口818。在一些實施方案中,接口816和818可以是pcie或以太網接口。soc808還可包括諸如固態驅動器、dram等的外部存儲器(未示出)的接口814。在一些實施方案中,接口814可以是pcie接口。soc808還可包括諸如sata控制器、gpio、i2c等的其他i/o設備的接口。soc820可包括接口826、828和830,并且soc832可包括接口838、840和842。soc820和soc832的接口可類似于soc808的相應的接口。在一些實施方案中,soc808、820和832可以是同一個soc的示例,或者可以是不同的soc。
在一些實施方案中,soc802可被配置來與由第三方提供的soc(例如,諸如基于
管理計算子系統108可包括多核處理器902、l1/l2高速緩存904、網絡接口單元906、專用存儲器908、外圍設備910和計算機可讀存儲介質912。
多核處理器902可包括兩個或更多個處理器核,諸如
網絡接口單元906可允許管理計算子系統108連接到網絡。例如,網絡接口單元906可包括以太網mac(媒體訪問控制),所述以太網mac(媒體訪問控制)能夠使管理計算子系統108連接到諸如以太網的網絡。在一些情況下,以太網mac可提供以太網端口以對接到用于連接到網絡的phy(物理層)設備。在一些實施方案中,管理計算子系統108可通過網絡與外部實體或系統通信,以確定用于配置soc的模式。
專用存儲器908可包括專門供管理計算子系統108使用的存儲器。專用存儲器908可包括諸如隨機存取存儲器(例如,sram或dram)的易失性存儲器。例如,管理計算子系統108可使用專用存儲器908來臨時存儲數據。
外圍設備910可包括管理計算子系統108的專用外圍設備。在一些實施方案中,專用外圍設備910中的一些可包括用于對soc102的不同子系統進行重新引導和功率管理的設備。例如,外圍設備910可包括可信管理模塊,所述可信管理模塊包括引導固件,所述引導固件可在上電時執行以在開啟其他子系統之前建立信任根。在一些實施方案中,可通過電壓操縱、時鐘操縱或任何其他合適的方法來提供功率管理。
在一些實施方案中,管理計算子系統108可被配置成基于模式來將網絡計算子系統104或服務器計算子系統106的至少一些部分斷電。例如,在一個實施方案中,在第一模式下,soc102可操作網絡計算子系統104,并且因此可將服務器計算子系統106的至少一些部分(例如,可能不被利用的計算密集型邏輯)斷電。類似地,在另一個實施方案中,在第二模式下,soc102可操作服務器計算子系統106,并且因此可將網絡計算子系統104的至少一些部分(例如,可能不被利用的網絡密集型邏輯)斷電。
在一些實施方案中,管理計算子系統108可被配置為在整個soc202冷上電時首先運行。在一些情況下,管理計算子系統108可首先上電,以在其他子系統上電之前為其建立信任根。例如,網絡計算子系統104和服務器計算子系統106的引導進程可在管理計算子系統108的核心引導下被分層地考慮。在一些實施方案中,隨后將在網絡計算子系統104和服務器計算子系統106上運行的軟件可被管理計算子系統108認證為已使用與主機系統114或由主機系統114提供的具體服務相關聯的專用密鑰進行了簽名。這可允許網絡計算子系統104和服務器計算子系統106兩個進程通過可信和獨立的引導裝載程序進行引導。
在一些實施方案中,管理計算子系統108可用單獨的復位線來進行復位/重新引導,而不影響網絡計算子系統104和服務器計算子系統106二者的有效操作。
網絡i/o子系統210可包括總線接口單元1002、網絡接口單元1004和i/o外圍設備單元1006。
總線接口單元1002可包括用于與內部或外部部件通信的一個或多個總線接口。例如,總線接口單元1002可包括與主機系統110通信的第一接口,例如,接口236。在一些實施方案中,第一接口可以是pcie接口。例如,總線接口單元1002可包括一個或多個pcie端口以連接到其他pcie端口。總線接口單元1002可包括根復合體(rc)端口和端點端口(ep)。在一些實施方案中,網絡計算子系統104可使用接口236通過網絡i/o子系統210中的pcie端口和主機系統110中的pcie端口與主機系統110通信。在一些實施方案中,在第一模式下,soc102被配置來在主機系統110中的pcie設備上操作為網絡計算子系統104。總線接口單元1002可包括連接服務器計算子系統106的第二接口,例如,接口234。例如,接口234可以是pcie接口,并且總線接口單元1002可通過pcie接口連接到服務器i/o子系統224中的pcie端口。
網絡接口單元1004可包括連接到網絡的第三接口。在一些實施方案中,網絡接口單元1004可包括一個或多個以太網mac(例如,10/25/40/50gb/s)以連接到以太網網絡。在一些情況下,以太網mac可提供以太網端口,所述以太網端口用于對接到phy(物理層)設備以連接到網絡。
i/o外圍設備單元1006可包括一個或多個外圍設備。例如,i/o外圍設備單元1006可包括一個或多個外圍設備,諸如uart、i2c、gpio、sata控制器、serdes(串行化-解串行化)接口等。
服務器i/o子系統224可包括總線接口單元1102、網絡接口單元1104和i/o外圍設備單元1106。
總線接口單元1102可包括用于與內部或外部部件通信的一個或多個總線接口。例如,總線接口單元1102可包括與主機系統110通信的第一接口,例如,接口238。在一些實施方案中,第一接口可以是pcie接口。例如,總線接口單元1102可包括一個或多個pcie端口以連接到其他pcie端口。總線接口單元1102可包括根復合體(rc)端口和端點端口(ep)。在一些實施方案中,服務器計算子系統106可使用接口238通過服務器i/o子系統224中的pcie端口和主機系統110中的pcie端口與主機系統110通信。在一些實施方案中,在第二模式下,soc102被配置來在主機系統110中的pcie設備上操作服務器計算子系統106。總線接口單元1102可包括連接網絡計算子系統104的第二接口,例如,接口234。例如,總線接口單元1102可通過pcie接口連接到網絡i/o子系統210中的pcie端口。
網絡接口單元1104可包括連接到網絡的第三接口。在一些實施方案中,網絡接口單元1104可包括一個或多個以太網mac(例如,10/25/40/50gb/s)以連接到以太網網絡。在一些情況下,以太網mac可提供以太網端口,所述以太網端口用于對接到phy(物理層)設備以連接到網絡。
i/o外圍設備單元1106可包括一個或多個外圍設備。例如,i/o外圍設備單元1106可包括一個或多個外圍設備,諸如uart、i2c、gpio、sata控制器、serdes(串行化-解串行化)接口等。在一些實施方案中,i/o外圍設備單元906可包括與參考圖10所論述的i/o外圍設備單元1006不同類型和數量的i/o設備。例如,在一些情況下,與i/o外圍設備單元1006相比,i/o外圍設備單元1106可包括更多數量的sata控制器。在一些情況下,僅i/o外圍設備單元1106可包括gpio,并且僅i/o外圍設備單元1006可包括uart。
在本技術的實施方案中,共享資源子系統230可包括部件,所述部件可不包括進程狀態。共享資源子系統230可包括存儲器模塊1202、隨機生成器模塊1204、通信郵箱1206和高速暫存存儲器模塊1208。
存儲器模塊1202可包括諸如閃存的非易失性存儲器存儲設備。例如,存儲器模塊1202可包括嵌入式多媒體控制器(emmc)或安全數字(sd)以提供低級閃存管理。在一些實施方案中,存儲器模塊1202可用于存儲控制代碼,例如,bios(基本輸入/輸出系統)、引導裝載程序等。例如,存儲器模塊1202可包括可被兩個計算子系統共享的代碼。
隨機生成器模塊1204可被配置來生成隨機數或符號的序列。例如,隨機數可用于加密應用,諸如數據加密或任何此類應用。在一些實施方案中,隨機生成器模塊1204可用于生成隨機數或序列,所述隨機數或序列可由管理計算子系統108在上電或重新引導之后使用,以在將每個計算子系統加電之前對每個計算子系統進行認證。
通信郵箱1206可用于促進與兩個子系統相關聯的不同進程之間的通信。例如,通信郵箱1206可用作進程間通信模塊,所述進程間通信模塊用于交換諸如消息傳送、同步、共享存儲器和遠程過程調用(rpc)的各種功能的數據。
高速暫存存儲器模塊1208可用于臨時存儲可由兩個子系統使用的數據。在一些實施方案中,高速暫存存儲器模塊1208可包括高速存儲器(例如,2mbsram),以存儲用于快速檢索的少量數據,例如,指令或中間值。
所公開技術的實施方案可提供用于操作片上系統(soc)的各種配置和模式。在所公開技術的不同實施方案中,soc可在第一模式下操作以僅提供聯網服務,在第二模式下操作以僅提供計算服務或者在第三模式下操作以同時提供聯網和計算服務。在一些實施方案中,第一計算子系統可被重新利用為第二計算子系統以提供高性能的聯網服務或高性能的計算服務。在一些實施方案中,根據soc的操作所處于的模式,可重新配置的處理和存儲器資源可被轉向到第一計算子系統或第二計算子系統。在一些其他實施方案中,可將去配置的計算子系統的處理和存儲器資源重新配置,以作為激活的計算子系統的資源來操作。因此,所公開技術的各種實施方案可允許有效地利用資源以提供高性能的聯網服務或高性能的計算服務。此外,所公開技術的一些實施方案提供了包括多個soc的系統,其中第一soc可在第一模式下被配置為網絡處理器,并且第二soc可在第二模式下被配置為服務器。
圖13示出了根據至少一個示例性實施方案的本文描述的特征和系統的示例性架構,其包括通過一個或多個網絡連接的一個或多個服務提供商計算機和/或用戶設備。圖1-12中所論述的設備可使用圖13中描述的計算設備的一個或多個部件,或者可表示圖13中描述的一個或多個計算設備。在架構1300中,一個或多個用戶1302可通過一個或多個網絡1308利用用戶計算設備1304(1)-(n)(統稱為用戶設備1304)來訪問應用1306(例如,web瀏覽器或移動設備應用)。在一些方面,應用1306可由計算資源服務或服務提供商托管、管理和/或提供。一個或多個服務提供商計算機1310可提供本機應用,所述本機應用被配置來在用戶1302可以與之互動的用戶設備1304上運行。在一些示例中,服務提供商計算機1310可提供計算資源,諸如但不限于:客戶端實體、低延遲數據存儲、持久數據存儲、數據訪問、管理、虛擬化、基于云的軟件解決方案、電子內容性能管理等。服務提供商計算機1310還可操作來向用戶(1302)提供web托管、計算機應用開發和/或實現平臺、前述描述的組合等。在一些示例中,服務提供商計算機1310可與一個或多個第三方計算機1312通信。
在一些示例中,網絡1308可包括許多不同類型的網絡(諸如有線網絡、互聯網、無線網絡、蜂窩網絡和其他專用和/或公共網絡)中的任何一種或組合。盡管所示出的示例表示用戶1302通過網絡1308訪問應用1306,但是所描述的技術可同樣適用于以下情況:其中用戶1302通過固定電話、通過信息亭或以任何其他方式經由用戶設備1304與服務提供商計算機1310進行互動。還應注意,所描述的技術可應用于其他客戶端/服務器布置(例如,機頂盒等)以及非客戶端/服務器布置(例如,本地存儲的應用等)中。
如以上所簡要描述的,應用1306可允許用戶1302與服務提供商計算機1310進行互動,以訪問web內容(例如,網頁、音樂、視頻等)。可能布置在服務器群集中或作為服務器場布置的服務提供商計算機1310可托管應用1306和/或基于云的軟件服務。其他服務器架構也可用于托管應用1306。應用1306可能能夠處理來自許多用戶1302的請求,并且作為響應來服務各種項目網頁。應用1306可提供支持用戶互動的任何類型的網站,包括社交網站、在線零售商、信息站點、博客站點、搜索引擎站點、新聞和娛樂站點等。如上所述,所描述的技術可類似地在應用1306之外得到實現,諸如使用在用戶設備1304上運行的其他應用。
用戶設備1304可以是任何類型的計算設備,諸如但不限于:移動電話、智能手機、個人數字助理(pda)、膝上型計算機、臺式計算機、瘦客戶端設備、平板pc、電子書(e-book)閱讀器等。在一些示例中,用戶設備1304可通過網絡1308或通過其他網絡連接與服務提供商計算機1310通信。此外,用戶設備1304可以是由服務提供商計算機1310管理、控制的分布式系統的一部分,或以其他方式是服務提供商計算機1310的分布式系統的一部分(例如,與服務提供商計算機1310集成的控制臺設備)。
在一個說明性配置中,用戶設備1304可包括至少一個存儲器1314和一個或多個處理單元(或處理器)1316。處理器1316可在硬件、計算機可執行指令、固件或其組合中適當地實現。處理器1316的計算機可執行指令或固件實現方式可包括以任何合適的編程語言編寫的用于執行所描述的各種功能的計算機可執行或機器可執行指令。用戶設備1304還可包括用于提供和/或記錄與用戶設備1304相關聯的地理位置信息的地理定位設備(例如,全球定位系統(gps)設備等)。
存儲器1314可存儲可在處理器1316上加載和執行的程序指令,以及在執行這些程序期間產生的數據。根據用戶設備1304的配置和類型,存儲器1314可以是易失性的(諸如隨機存取存儲器(ram))和/或非易失性的(諸如只讀存儲器(rom)、閃存等)。用戶設備1304還可包括另外的可移除存儲設備和/或不可移除存儲設備,其包括但不限于磁存儲設備、光盤和/或帶存儲設備。磁盤驅動器和其相關聯的計算機可讀介質可提供對計算機可讀指令、數據結構、程序模塊和其他用于計算設備的數據的非易失性存儲。在一些實現方式中,存儲器1314可包括多種不同類型的存儲器,諸如靜態隨機存取存儲器(sram)、動態隨機存取存儲器(dram)或rom。
轉到存儲器1314的更詳細的內容,存儲器1314可包括操作系統和用于實現本文所公開的特征的一個或多個應用程序或服務(至少包括用戶提供的輸入元件或電子服務網頁,諸如通過瀏覽器應用1306或專用應用(例如,智能手機應用、平板應用等))。瀏覽器應用1306可被配置來接收、存儲和/或顯示用于與服務提供商計算機1310進行互動的網站或其他接口。此外,存儲器1314可存儲訪問憑證和/或其他用戶信息(諸如但不限于用戶id、密碼和/或其他用戶信息)。在一些示例中,用戶信息可包括用于認證帳戶訪問請求的信息,諸如但不限于設備id、小型文本文件(cookie)、ip地址、位置等。此外,用戶信息可包括用戶提供的對安全問題的響應或用戶設備1304獲得的地理位置。
在一些方面,服務提供商計算機1310還可以是任何類型的計算設備,諸如但不限于:移動電話、智能手機、個人數字助理(pda)、膝上型計算機、臺式計算機、服務器計算機、瘦客戶端設備、平板pc等。此外,應注意,在一些實施方案中,服務提供商計算機1310由實現在托管的計算環境中的一個或多個虛擬機來執行。托管的計算環境可包括一個或多個快速提供和發布的計算資源,所述計算資源可包括計算、聯網和/或存儲設備。托管的計算環境還可被稱為云計算環境。在一些示例中,服務提供商計算機1310可通過網絡1308或通過其他網絡連接與用戶設備1304和/或其他服務提供商通信。服務提供商計算機1310可包括一個或多個服務器,可能布置在群集中,作為服務器場,或者作為彼此不相關聯的單個服務器。這些服務器可被配置來將本文描述的關鍵字分類和評級特征服務實現為集成的分布式計算環境的一部分。
在一個說明性配置中,服務提供商計算機1310可包括至少一個存儲器1318和一個或多個處理單元(或處理器)1320。處理器1320可在硬件、計算機可執行指令、固件或其組合中適當地實現。處理器1320的計算機可執行指令或固件實現方式可包括以任何合適的編程語言編寫的用于執行所描述的各種功能的計算機可執行或機器可執行指令。
在一些情況下,硬件處理器1320可以是單核處理器或多核處理器。多核處理器可包括同一個處理器內的多個處理單元。在一些實施方案中,多核處理器可共享某些資源,諸如總線和多核之間的第二或第三級高速緩存。在一些情況下,單核或多核處理器中的每個核還可包括多個執行中的邏輯處理器(或線程)。在這種(支持多個邏輯處理器的)核中,還可共享執行流水線的若干級以及還有較低級的高速緩存。
存儲器1318可存儲可在處理器1320上加載和執行的程序指令,以及在執行這些程序期間產生的數據。根據服務提供商計算機1310的配置和類型,存儲器1318可以是易失性的(諸如ram)和/或非易失性的(諸如rom、閃存等)。服務提供商計算機1310或服務器還可包括附加存儲設備1322,所述附加存儲設備1322可包括可移除存儲設備和/或不可移除存儲設備。附加存儲設備1322可包括但不限于磁存儲設備、光盤和/或帶存儲設備。磁盤驅動器和其相關聯的計算機可讀介質可提供對計算機可讀指令、數據結構、程序模塊和其他用于計算設備的數據的非易失性存儲。在一些實現方式中,存儲器1318可包括多種不同類型的存儲器,諸如sram、dram或rom。
可移除和不可移除的存儲器1318、附加存儲設備1322均為計算機可讀存儲介質的示例。例如,計算機可讀存儲介質可包括以任何方法或技術實現的用于存儲諸如計算機可讀指令、數據結構、程序模塊或其他數據的信息的易失性或非易失性的、可移除或不可移除的介質。存儲器1318和附加存儲設備1322均為計算機存儲介質的示例。可存在于服務提供商計算機1310中的另外類型的計算機存儲介質可包括但不限于:pram、sram、dram、ram、rom、eeprom、閃存或其他存儲器技術、cd-rom、dvd或其他光存儲設備、磁帶盒、磁帶、磁盤存儲設備或其他磁存儲設備或者可用來存儲期望的信息并且可由服務提供商計算機1310訪問的任何其他介質。任何上述介質的組合也應包括在計算機可讀介質的范圍內。
替代地,計算機可讀通信介質可包括計算機可讀指令、程序模塊或在諸如載波或其他傳輸的數據信號內傳輸的其他數據。然而,如本文所使用的,計算機可讀存儲介質不包括計算機可讀通信介質。
服務提供商計算機1310還可包含通信連接1324,所述通信連接1324允許服務提供商計算機1310與存儲的數據庫、另一計算設備或服務器、用戶終端和/或網絡1308上的其他設備通信。服務提供商計算機1310還可包括i/o設備1326,諸如鍵盤、鼠標、筆、語音輸入設備、觸摸輸入設備、顯示器、揚聲器、打印機等。
存儲器1318可包括操作系統1328,一個或多個數據存儲區1330和/或用于實現本文所公開的特征的一個或多個應用程序或服務(任選地包括管理計算子系統模塊1332、網絡計算子系統模塊1334和服務器計算子系統模塊1336)。本文描述的模塊可以是軟件模塊、硬件模塊或其合適的組合。如果模塊是軟件模塊,那么模塊可體現在非暫時性計算機可讀介質上,并且由本文描述的任何計算機系統中的處理器進行處理。在一些實施方案中,重新參照圖2,管理計算子系統模塊1332可包括管理計算子系統108的功能,網絡計算子系統模塊1334可包括網絡計算子系統104的功能并且服務器計算子系統模塊1336可包括服務器計算子系統106的功能。應注意,所描述的進程和架構可在任何用戶互動之前以實時或異步模式來執行。模塊可以圖13中所提出的方式進行配置,和/或本文描述的功能可由存在的一個或多個模塊提供,因為本文描述的單獨的模塊和/或模塊功能可遍布在多個模塊上。
圖14示出了根據各種實施方案的用于實現各方面的示例性環境1400的方面。如將了解的,盡管出于解釋目的使用基于web的環境,但是可視情況使用不同環境來實現各種實施方案。環境包括電子客戶端設備1402,所述電子客戶端設備1402可包括可操作來在適當網絡1404上發送和接收請求、消息或信息并且將信息傳送回設備用戶的任何適當設備。此類客戶端設備的示例包括個人計算機、手機、手持式消息傳輸設備、膝上型計算機、機頂盒、個人數據助理、電子書閱讀器等。網絡可包括任何適當的網絡,所述適當的網絡包括內聯網、互聯網、蜂窩網絡、局域網或任何其他此類網絡或其組合。用于這種系統的部件可至少部分地取決于選定的網絡和/或環境的類型。用于通過這種網絡通信的協議和部件是眾所周知的,且本文將不詳細論述。通過網絡進行的通信可通過有線或無線的連接及其組合來實現。在這個示例中,網絡包括互聯網,因為環境包括用于接收請求并且響應于所述請求而服務內容的web服務器1406,然而對于其他網絡來說,可使用服務類似目的替代設備,如本領域普通技術人員所明白的。
說明性環境包括至少一個應用服務器1408和數據存儲區1410。應理解,可存在可鏈接起來或以其他方式來配置的若干應用服務器、層或其他元件、進程或部件,所述應用服務器、層或其他元件、進程或部件可互動來執行諸如從適當的數據存儲區獲得數據的任務。如本文所使用的,術語“數據存儲區”指代能夠存儲、訪問和檢索數據的任何設備或設備組合,所述設備或設備組合可包括任何標準、分布式或集群式環境中的任何組合和任何數目的數據服務器、數據庫、數據存儲設備和數據存儲介質。應用服務器可包括任何適當的硬件和軟件,所述硬件和軟件視執行客戶端設備的一個或多個應用的方面的需要與數據存儲區集成、處理應用的大多數數據訪問和業務邏輯。應用服務器提供與數據存儲區協作的訪問控制服務,并且能夠生成有待于傳送到用戶的諸如文本、圖形、音頻和/或視頻的內容,在這個示例中,所述內容可以超文本標記語言(“html”)、可擴展標記語言(“xml”)或另一種適當結構化語言的形式由web服務器向用戶提供。所有請求和響應的處理以及客戶端設備1402與應用服務器1408之間的內容遞送可由web服務器來處理。應理解,web服務器和應用服務器不是必要的,并且僅僅是示例性部件,因為本文所論述的結構化代碼可在如本文其他地方所論述的任何適當的設備或主機上執行。
數據存儲區1410可包括若干單獨的數據表、數據庫或其他數據存儲機構和介質,以用于存儲與具體方面相關的數據。舉例來說,所示出的數據存儲區包括用于存儲生產數據1412和用戶信息1416的機構,其可用于服務生產側的內容。數據存儲區還被示出為包括用于存儲日志數據1414的機構,其可用于報告、分析或其他此類目的。應理解,可能存在可能需要存儲在數據存儲區中的許多其他方面,諸如頁面圖像信息和訪問權信息,所述方面可視情況存儲在上文所列機構中的任何一個中或存儲在數據存儲區1410中的附加機構中。數據存儲區1410可通過與它相關聯的邏輯來操作,以從應用服務器1408接收指令,并且響應于所述指令而獲得、更新或以其他方式處理數據。在一個示例中,用戶可提交針對某種類型的項目的搜索請求。在這種情況下,數據存儲區可訪問用戶信息以核實用戶的身份,并且可訪問目錄詳細信息以獲得關于所述類型的項目的信息。隨后,可將信息諸如以網頁上的結果列表的形式返回給用戶,用戶能夠通過用戶設備1402上的瀏覽器來查看所述網頁。可在專用瀏覽器頁面或窗口中查看感興趣的具體項目的信息。
每個服務器通常將包括提供用于所述服務器的一般管理和操作的可執行程序指令的操作系統,并且通常將包括存儲指令的計算機可讀存儲介質(例如,硬盤、隨機存取存儲器、只讀存儲器等),所述指令在由服務器的處理器執行時允許服務器執行其預期的功能。操作系統的合適的實現方式和服務器的一般功能是眾所周知的或可商購獲得的,并且易于由本領域普通技術人員實現,尤其是根據本文中的公開內容來實現。
在一個實施方案中,環境是分布式計算環境,所述分布式計算環境利用通過通信鏈路、使用一個或多個計算機網絡或直接連接來互連的若干計算機系統和部件。然而,本領域普通技術人員應了解,這種系統可在具有比圖14中所示的部件更少或更多數量的部件的系統中同樣順利地操作。因此,對圖14中的系統1400的描繪本質上應視為說明性的,并且不限制本公開的范圍。
各種實施方案還可在各種各樣的操作環境中實現,所述操作環境在一些情況下可包括一個或多個用戶計算機、計算設備或者可用于操作多個應用中的任何一個的處理設備。用戶或客戶端設備可包括多個通用個人計算機中的任何一個,諸如運行標準操作系統的臺式計算機或膝上型計算機,以及運行移動軟件并且能夠支持多個聯網協議和消息傳輸協議的蜂窩設備、無線設備和手持式設備。這種系統還可包括多個工作站,所述工作站運行多種可商購獲得的操作系統以及用于諸如開發和數據庫管理目的的其他已知應用中的任一個。這些設備還可包括其他電子設備,諸如虛擬終端、瘦客戶端、游戲系統以及能夠通過網絡通信的其他設備。
大多數實施方案利用本領域技術人員將熟悉的至少一個網絡來使用多種可商購獲得的協議中的任一個來支持通信,諸如傳輸控制協議/互聯網協議(“tcp/ip”)、開放系統互連(“osi”)、文件傳送協議(“ftp”)、通用即插即用(“upnp”)、網絡文件系統(“nfs”)、通用互聯網文件系統(“cifs”)和appletalk。網絡可以是例如局域網、廣域網、虛擬專用網、互聯網、內聯網、外聯網、公共交換電話網、紅外網絡、無線網絡以及上述網絡的任何組合。
在利用web服務器的實施方案中,web服務器可運行多種服務器或中間層級應用中的任何一個,包括超文本傳送協議(“http”)服務器、ftp服務器、公共網關接口(“cgi”)服務器、數據服務器、java服務器和業務應用服務器。服務器還能夠響應來自用戶設備的請求而執行程序或腳本,諸如通過執行可實現為以任何編程語言(諸如
環境可包括如上文論述的多種數據存儲區以及其他存儲器和存儲介質。這些可駐留在多種位置中,諸如在一個或多個計算機本地(和/或駐留在一個或多個計算機中)的存儲介質上,或者遠離網絡上的計算機中的任何一個或所有計算機的存儲介質上。在一組具體實施方案中,信息可駐留在本領域技術人員熟悉的存儲區域網(“san”)中。類似地,用于執行屬于計算機、服務器或其他網絡設備的功能的任何必要的文件可視情況本地和/或遠程存儲。在系統包括計算機化設備的情況下,每個這種設備可包括可通過總線電耦合的硬件元件,所述元件包括例如至少一個中央處理單元(“cpu”)、至少一個輸入設備(例如,鼠標、鍵盤、控制器、觸摸屏或小鍵盤)和至少一個輸出設備(例如,顯示設備、打印機或揚聲器)。這種系統還可包括一個或多個存儲設備,諸如磁盤驅動器、光存儲設備和固態存儲設備(諸如隨機存取存儲器(“ram”)或只讀存儲器(“rom”)),以及可移除介質設備、存儲卡、閃存卡等。
這類設備還可包括計算機可讀存儲介質讀取器、通信設備(例如,調制解調器、網卡(無線或有線)、紅外通信設備等)以及工作存儲器,如上文所描述的。計算機可讀存儲介質讀取器可與計算機可讀存儲介質連接或被配置來接收計算機可讀存儲介質,所述計算機可讀存儲介質表示遠程、本地、固定和/或可移除存儲設備以及用于暫時和/或更永久地包含、存儲、傳輸和檢索計算機可讀信息的存儲介質。系統和各種設備通常也將包括位于至少一個工作存儲器設備內的多個軟件應用、模塊、服務或其他元件,包括操作系統和應用程序,諸如客戶端應用或web瀏覽器。應了解,替代性實施方案可具有上文描述的實施方案的眾多變型。例如,也可使用定制硬件,和/或特定元件可以硬件、軟件(包括可移植軟件,諸如小應用)或兩者來實現。此外,可采用與其他計算設備諸如網絡輸入/輸出設備的連接。
用于包含代碼或部分代碼的存儲介質和計算機可讀介質可包括本領域已知或已使用的任何適當介質,包括存儲介質和通信介質,諸如但不限于以用于存儲和/或傳輸信息(諸如計算機可讀指令、數據結構、程序模塊或其他數據)的任何方法或技術所實現的易失性和非易失性、可移除和不可移除的介質,包括ram、rom、電可擦除可編程只讀存儲器(“eeprom”)、閃存或其他存儲器技術、光盤只讀存儲器(“cd-rom”)、數字通用光盤(dvd)或其他光存儲設備、磁帶盒、磁帶、磁盤存儲設備或其他磁存儲設備或者可用來存儲期望的信息并且可由系統設備訪問的任何其他介質。基于本文所提供的公開內容和教義,本領域普通技術人員將了解實現各種實施方案的其他方式和/或方法。
因此,應以說明性意義而不是限制性意義來理解本說明書和附圖。但是,將明顯的是在不脫離如在權利要求書中闡述的本公開的更寬廣精神和范圍的情況下,可以對其做出各種修改和改變。
本公開的實施方案可鑒于以下條款來進行描述:
條款1.一種片上系統(soc),其包括:
網絡計算子系統,其用于管理主機系統的網絡流量;以及
服務器計算子系統,其用于提供計算服務,
其中所述soc被配置來在多種模式中的一種模式下操作,并且其中
在第一模式下,所述soc被配置來操作所述網絡計算子系統,
在第二模式下,所述soc被配置來操作所述服務器計算子系統,以及
在第三模式下,所述soc被配置來同時操作所述網絡計算子系統和所述服務器計算子系統。
條款2.如條款1所述的soc,其中在所述第一模式下,所述soc還被配置來將所述服務器計算子系統重新利用為第二網絡計算子系統。
條款3.如任一前述條款所述的soc,其中在所述第二模式下,所述soc還被配置來將所述網絡計算子系統重新利用為第二服務器計算子系統。
條款4.如任一前述條款所述的soc,所述soc還包括可重新配置的處理和存儲器資源,其中所述soc還被配置來將所述可重新配置的處理和存儲器資源的至少一部分進行分配,以在所述第二模式下作為所述服務器計算子系統的資源來操作,或者在所述第一模式下作為所述網絡計算子系統的資源來操作。
條款5.一種片上系統(soc),其被配置來:
在多種模式中的一種模式下操作,其中
在第一模式下,所述soc被配置來操作網絡計算子系統以管理網絡流量,
在第二模式下,所述soc被配置來操作服務器計算子系統以提供計算服務,以及
在第三模式下,所述soc被配置來同時操作所述網絡計算子系統和所述服務器計算子系統。
條款6.如條款5所述的soc,其中在所述第一模式下,所述soc被配置來在主機系統中的外圍部件高速互連(pcie)設備上操作所述網絡計算子系統。
條款7.如條款5或6所述的soc,其中在所述第二模式下,所述soc被配置來在主機系統中的外圍部件高速互連(pcie)設備上操作所述服務器計算子系統。
條款8.如條款5-7中的任一項所述的soc,其中在所述第二模式下,所述soc被配置來作為主機系統中的通用處理器來操作。
條款9.如條款5-8中的任一項所述的soc,其中在所述第一模式下,所述soc還被配置來禁用所述服務器計算子系統并將與所述服務器計算子系統相關聯的處理和存儲器資源重新配置,以作為所述網絡計算子系統的資源來操作。
條款10.如條款5-9中的任一項所述的soc,其中在所述第一模式下,所述soc還被配置來將所述服務器計算子系統重新利用為第二網絡計算子系統。
條款11.如條款5-10中的任一項所述的soc,其中在所述第二模式下,所述soc還被配置來禁用所述網絡計算子系統并將與所述網絡計算子系統相關聯的處理和存儲器資源重新配置,以作為所述服務器計算子系統的資源來操作。
條款12.如條款5-11中的任一項所述的soc,其中在所述第二模式下,所述soc還被配置來將所述網絡計算子系統重新利用為第二服務器計算子系統。
條款13.如條款5-12中的任一項所述的soc,所述soc包括可重新配置的處理和存儲器資源,其中所述soc還被配置來在所述第一模式下將所述可重新配置的處理和存儲器資源的至少一部分分配給所述網絡計算子系統。
條款14.如條款5-13中的任一項所述的soc,所述soc包括可重新配置的處理和存儲器資源,其中所述soc還被配置來在所述第二模式下將所述可重新配置的處理和存儲器資源的至少一部分分配給所述服務器計算子系統。
條款15.如條款5-14中的任一項所述的soc,其中在所述第三模式下,所述soc還被配置成將所述服務器計算子系統作為主機系統來操作,并且操作所述網絡計算子系統以管理所述主機系統的網絡流量。
條款16.如條款5-15中的任一項所述的soc,所述soc包括管理計算子系統,所述管理計算子系統被配置來將所述soc配置成處于所述多種模式中的一種模式下。
條款17.一種片上系統(soc)的系統,其包括:
多個soc,所述多個soc包括第一soc和第二soc,所述第二soc通信地耦合到所述第一soc,其中所述第一soc被配置來在多種模式中的一種模式下操作,并且其中
在第一模式下,所述第一soc被配置來操作第一網絡計算子系統,
在第二模式下,所述第一soc被配置來操作第一服務器計算子系統,以及
在第三模式下,所述第一soc被配置來同時操作所述第一網絡計算子系統和所述第一服務器計算子系統。
條款18.如條款17所述的系統,其中所述第二soc也被配置來在所述多種模式中的一種模式下操作,并且其中
在所述第一模式下,所述第二soc被配置來操作第二網絡計算子系統,
在所述第二模式下,所述第二soc被配置來操作第二服務器計算子系統,以及
在所述第三模式下,所述第二soc被配置來同時操作所述第二網絡計算子系統和所述第二服務器計算子系統。
條款19.如條款18所述的系統,其中所述第一soc被配置成處于所述第一模式下,其中所述第一服務器計算子系統被重新利用為第三網絡計算子系統,并且所述第二soc被配置成處于所述第二模式下,其中所述第二網絡計算子系統被重新利用為第三服務器計算子系統。
條款20.如條款17-19中的任一項所述的系統,其中所述第二soc是通用soc。
其他變型在本公開的精神內。因此,雖然所公開技術易受各種修改和替代構造的影響,但在附圖中示出并且在上文詳細描述了其某些說明的實施方案。然而,應理解,并不意圖將本公開限于所公開的一種或多種具體形式,相反地,意圖涵蓋歸屬于本公開的精神和范圍內的所有修改、替代構造和等效物,如所附權利要求書中所限定的。
在描述所公開實施方案的上下文中(尤其是在以下權利要求書的上下文中),術語“一個(a/an)”和“所述”以及類似指稱對象的使用應解釋為涵蓋單數和復數兩者,除非本文另外指示或上下文明顯矛盾。術語“包含(comprising)”、“具有(having)”、“包括(including)”和“含有(containing)”應解釋為開放式的術語(即,意味著“包括但不限于”),除非另外指出。術語“連接(connected)”應解釋為部分地或全部地包含在內、附接到或接合在一起,即使存在介入物也是如此。除非本文另外指示,否則本文中對值范圍的列舉僅僅意圖用作單獨地表示歸屬于所述范圍內的各單獨值的速記方法,并且猶如本文單獨描述地那樣將各單獨值并入到本說明書中。可按任何適合的順序來執行本文所述的全部方法,除非本文另外指明或上下文明顯矛盾。本文所提供的任何以及所有示例或示例性語言(例如,“諸如”)的使用僅意圖更好地說明本公開的實施方案,并且除非另外要求,否則不會對本公開的范圍施加限制。本說明書中的語言不應解釋為將任何非要求保護的要素指示為實踐本公開所必需。
除非另外特別說明,否則諸如短語“x、y或z中的至少一個”的析取語言在上下文中意圖被理解為通常用于描述項目、項等可以是x、y或z或者它們的任何組合(例如,x、y和/或z)。因此,此類析取語言一般并非旨在并且不應該暗示某些實施方案需要x中的至少一個、y中的至少一個或z中的至少一個各自存在。
本文中描述了本公開的優選實施方案,包括發明人已知用于執行本公開的最佳模式。閱讀前述描述后,那些優選實施方案的變型對于本領域普通技術人員來說可變得明顯。發明人希望技術人員視情況采用此類變體,并且發明人意圖以不同于本文所特別描述的方式的其他方式來實踐本公開。因此,本公開包括在所附的適用法律允許的權利要求書中敘述的主題的所有修改和等效物。此外,除非本文另有指示或以其他方式與上下文明顯矛盾,否則本公開涵蓋其所有可行變型中的上述元素的任何組合。