背景技術(shù):
許多組織和公司通過多個通信網(wǎng)絡(luò)提供計算服務(wù)。例如,計算服務(wù)可包括諸如web存儲的web服務(wù)或虛擬服務(wù)器,其可通過互聯(lián)網(wǎng)提供給不同的客戶端。在一些情況下,可在需要的基礎(chǔ)上將虛擬服務(wù)器出租給客戶端。
一般來說,系統(tǒng)可包括多個子系統(tǒng)來執(zhí)行各種不同的功能。在大多數(shù)情況下,每個子系統(tǒng)可利用固定的計算和i/o資源來執(zhí)行預(yù)期的功能。因此,每個子系統(tǒng)的i/o帶寬可受到分配到的i/o資源的限制。因此,每個子系統(tǒng)可被限制為基于分配到的計算和i/o資源來提供一定級別的性能。
附圖簡述
將參考附圖描述根據(jù)本公開的各種實施方案,在附圖中:
圖1示出了根據(jù)所公開技術(shù)的一些實施方案的包括多個計算子系統(tǒng)的系統(tǒng)的框圖。
圖2示出了根據(jù)技術(shù)的一些實施方案的系統(tǒng)的框圖。
圖3示出了根據(jù)技術(shù)的某些實施方案的片上系統(tǒng)(soc)的高級別框圖。
圖4a示出了根據(jù)技術(shù)的某些實施方案的包括soc的示例性系統(tǒng),所述soc被配置來包括將加速器轉(zhuǎn)向到兩個計算子系統(tǒng)。
圖4b示出了根據(jù)技術(shù)的某些實施方案的包括soc的示例性系統(tǒng),所述soc被配置來包括將加速器僅轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)。
圖4c示出了根據(jù)技術(shù)的某些實施方案的包括soc的示例性系統(tǒng),所述soc被配置來包括將加速器僅轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)。
圖5示出了根據(jù)技術(shù)的某些實施方案的具有soc的示例性系統(tǒng),所述soc被配置來僅包括服務(wù)器計算子系統(tǒng)。
圖6示出了根據(jù)技術(shù)的某些實施方案的具有soc的示例性系統(tǒng),所述soc被配置來僅包括網(wǎng)絡(luò)計算子系統(tǒng)。
圖7示出了根據(jù)技術(shù)的某些實施方案的i/o子系統(tǒng)的框圖。
圖8示出了根據(jù)技術(shù)的某些實施方案的i/o轉(zhuǎn)向引擎的框圖。
圖9示出了根據(jù)技術(shù)的某些實施方案的管理計算子系統(tǒng)的框圖。
圖10示出了根據(jù)所公開技術(shù)的一些實施方案的加速器子系統(tǒng)的框圖。
圖11示出了根據(jù)技術(shù)的某些實施方案的第一i/o子系統(tǒng)的框圖。
圖12示出了根據(jù)技術(shù)的某些實施方案的第二i/o子系統(tǒng)的框圖。
圖13示出了根據(jù)技術(shù)的某些實施方案的共享資源子系統(tǒng)的框圖。
圖14示出了根據(jù)技術(shù)的某些實施方案的流程圖。
圖15示出了根據(jù)至少一個示例性實施方案的本文描述的特征和系統(tǒng)的示例性架構(gòu),其包括通過一個或多個網(wǎng)絡(luò)連接的一個或多個服務(wù)提供商計算機和/或用戶設(shè)備;以及
圖16示出了可實現(xiàn)各種實施方案的環(huán)境。
詳細描述
在以下描述中,將描述各種實施方案。出于解釋的目的,將闡述具體的配置和細節(jié),以便提供對實施方案的透徹理解。然而,對本領(lǐng)域的技術(shù)人員也將明顯的是,在沒有具體細節(jié)的情況下也可實踐實施方案。此外,為了不使所描述的實施方案晦澀,可省略或簡化眾所周知的特征。
一般來說,計算系統(tǒng)可包括一個或多個計算子系統(tǒng)來執(zhí)行若干不同的功能。在一些情況下,系統(tǒng)可能正在運行多個虛擬服務(wù)器實例,所述虛擬服務(wù)器實例可能需要更多網(wǎng)絡(luò)帶寬以容納多個應(yīng)用。然而,在大多數(shù)情況下,每個計算子系統(tǒng)可包括固定數(shù)量的計算和i/o資源。因此,每個計算子系統(tǒng)可被限制為基于分配到的i/o資源來提供一定級別的性能。在一些情況下,系統(tǒng)上的i/o資源可能未被有效地利用。例如,如果計算子系統(tǒng)不起作用,那么分配給該計算子系統(tǒng)的i/o資源可能不會被其他計算子系統(tǒng)使用。這可能導(dǎo)致系統(tǒng)級的i/o資源未能得到充分利用。
所公開技術(shù)的實施方案可提供在片上系統(tǒng)(soc)上將一個或多個i/o資源轉(zhuǎn)向到多于一個計算子系統(tǒng)。例如,soc可通信地耦合到主機系統(tǒng)(例如,x86服務(wù)器),以提供諸如流量監(jiān)測、流量整形、計算等的各種服務(wù)。在一些實施方案中,soc可包括多個計算子系統(tǒng)來執(zhí)行各種功能。例如,根據(jù)某些實施方案,soc可包括提供計算服務(wù)的服務(wù)器計算子系統(tǒng)以及至少管理主機系統(tǒng)和服務(wù)器子系統(tǒng)的網(wǎng)絡(luò)流量的網(wǎng)絡(luò)計算子系統(tǒng)。soc可包括:第一i/o子系統(tǒng),其包括多個第一i/o資源;和第二i/o子系統(tǒng),其包括多個第二i/o資源。在所公開技術(shù)的實施方案中,轉(zhuǎn)向引擎可被配置來將第一i/o資源中的至少一個轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)或服務(wù)器計算子系統(tǒng),并且將第二i/o資源中的至少一個轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)或服務(wù)器計算子系統(tǒng)。例如,soc可配置有一系列配置,以執(zhí)行可能需要重新配置不同計算子系統(tǒng)的不同功能(例如,高性能聯(lián)網(wǎng)、高性能計算等)。所公開技術(shù)的實施方案可將i/o資源相應(yīng)地轉(zhuǎn)向到不同的子系統(tǒng),以匹配每個配置所需的i/o資源,從而允許更有效地使用每個計算子系統(tǒng)的i/o資源并增加系統(tǒng)的吞吐量。
計算機網(wǎng)絡(luò)通常可包括多個服務(wù)器,所述多個服務(wù)器可托管數(shù)據(jù)并向多個客戶端或組織提供服務(wù)。例如,服務(wù)器可向潛在更大數(shù)量的客戶端計算機提供服務(wù),諸如云計算、分析、web服務(wù)、存儲、數(shù)據(jù)庫、應(yīng)用、部署服務(wù)等。客戶端或組織可使用這些服務(wù)或數(shù)據(jù)來支持輔助各種各樣的工作負(fù)載,諸如存儲、數(shù)據(jù)處理和倉儲、web和移動應(yīng)用、存檔和許多其他任務(wù)。一般來說,客戶端請求來自服務(wù)器的服務(wù)或數(shù)據(jù),并且服務(wù)器通過執(zhí)行服務(wù)于請求的某些任務(wù)來進行響應(yīng)和/或通過網(wǎng)絡(luò)提供數(shù)據(jù)。網(wǎng)絡(luò)流量可根據(jù)多個因素(諸如在特定時間請求服務(wù)的客戶端的數(shù)量、服務(wù)器的容量等)而發(fā)生變化。
在一些情況下,網(wǎng)絡(luò)系統(tǒng)可監(jiān)測網(wǎng)絡(luò)流量以調(diào)節(jié)流量并使帶寬擁塞減少到最低限度。例如,網(wǎng)絡(luò)系統(tǒng)可通信地耦合到主機系統(tǒng)(例如,x86服務(wù)器),所述主機系統(tǒng)向不同的客戶端提供web服務(wù)。網(wǎng)絡(luò)系統(tǒng)可包括一個或多個處理器核、高速緩存、網(wǎng)絡(luò)加速邏輯、存儲器控制器和i/o子系統(tǒng)等。在一些實施方案中,網(wǎng)絡(luò)系統(tǒng)還可執(zhí)行與由服務(wù)器(例如,主機系統(tǒng))提供的web服務(wù)相關(guān)聯(lián)的其他功能,諸如流量整形、網(wǎng)絡(luò)存儲處理等。在一些情況下,網(wǎng)絡(luò)系統(tǒng)的功能可被實現(xiàn)為可通信地耦合到主機系統(tǒng)的片上系統(tǒng)(soc)上的網(wǎng)絡(luò)計算子系統(tǒng)。例如,可使用插入卡或者通過焊接到主機系統(tǒng)的主板上來將soc耦合到主機系統(tǒng)(例如,一個或多個服務(wù)器)。
在一些實施方案中,除了網(wǎng)絡(luò)計算子系統(tǒng)之外,soc還可包括服務(wù)器計算子系統(tǒng)和管理計算子系統(tǒng)。例如,服務(wù)器計算子系統(tǒng)可被配置來提供計算服務(wù),并且管理計算子系統(tǒng)可被配置來管理網(wǎng)絡(luò)計算子系統(tǒng)和服務(wù)器計算子系統(tǒng)的資源。在一些情況下,網(wǎng)絡(luò)計算子系統(tǒng)和服務(wù)器計算子系統(tǒng)可包括固定資源。例如,資源可包括處理資源(例如,處理器核)、存儲器資源(例如,(例如,1級(l1)高速緩存、2級(l2)高速緩存、3級(l3)或末級高速緩存、存儲器控制器、存儲器通道等)以及i/o資源(例如,外圍設(shè)備、網(wǎng)絡(luò)和總線接口)。
一般來說,soc上的每個計算子系統(tǒng)可被設(shè)計有固定數(shù)量的處理和存儲器資源。在大多數(shù)情況下,固定數(shù)量的i/o資源可通過硬件設(shè)計分配給每個計算子系統(tǒng)。在某些情況下,當(dāng)soc被配置來包括不對稱的計算子系統(tǒng)(例如,一個計算子系統(tǒng)具有比其他計算子系統(tǒng)更多的處理和存儲器資源)時,每個計算子系統(tǒng)可受到其分配到的i/o資源的限制。因此,由soc提供的網(wǎng)絡(luò)帶寬和服務(wù)器帶寬可受到每個計算子系統(tǒng)的固定i/o帶寬的限制。
此外,在一些情況下,根據(jù)soc的配置,可導(dǎo)致一些i/o資源未能得到充分利用。例如,如果soc被配置來僅提供服務(wù)器計算服務(wù),那么可能不會利用網(wǎng)絡(luò)i/o資源。類似地,如果soc被配置來僅提供網(wǎng)絡(luò)計算服務(wù),那么可能不會利用服務(wù)器i/o資源。因此,可能未能有效地利用soc的i/o帶寬,從而減少了系統(tǒng)的吞吐量。
所公開技術(shù)的實施方案可提供在片上系統(tǒng)(soc)上將i/o資源轉(zhuǎn)向到多于一個計算子系統(tǒng)。在一些實施方案中,計算子系統(tǒng)可包括具有一個或多個處理核的子系統(tǒng)。soc可通信地耦合到主機系統(tǒng)(例如,x86服務(wù)器),以提供諸如流量監(jiān)測、流量整形、計算等的各種服務(wù)。在技術(shù)的一些實施方案中,soc可包括多個子系統(tǒng),諸如提供計算服務(wù)的服務(wù)器計算子系統(tǒng)、至少管理主機系統(tǒng)和服務(wù)器計算子系統(tǒng)的網(wǎng)絡(luò)流量的網(wǎng)絡(luò)計算子系統(tǒng)、管理資源的管理計算子系統(tǒng)、具有多個第一i/o資源的第一i/o子系統(tǒng)、具有多個第二i/o資源的第二i/o子系統(tǒng)以及包括多個加速器的加速器子系統(tǒng)。在某些實施方案中,可使用單個i/o子系統(tǒng)來管理網(wǎng)絡(luò)計算子系統(tǒng)和服務(wù)器計算子系統(tǒng)的i/o請求。
在技術(shù)的某些實施方案中,i/o轉(zhuǎn)向引擎可被配置來將多個第一i/o資源中的至少一個轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)或網(wǎng)絡(luò)計算子系統(tǒng),并且將多個第二i/o資源中的至少一個轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)或網(wǎng)絡(luò)計算子系統(tǒng)。在一些實施方案中,i/o轉(zhuǎn)向引擎可基于管理計算子系統(tǒng)提供的轉(zhuǎn)向配置使i/o資源轉(zhuǎn)向。在一些實施方案中,管理計算子系統(tǒng)可將轉(zhuǎn)向配置提供給i/o轉(zhuǎn)向引擎,以在加電時或在運行時動態(tài)地使一個或多個i/o資源轉(zhuǎn)向。i/o轉(zhuǎn)向引擎可耦合到第一i/o子系統(tǒng)、第二i/o子系統(tǒng)、網(wǎng)絡(luò)計算子系統(tǒng)和服務(wù)器計算子系統(tǒng)。在某些情況下,當(dāng)soc被配置來包括不對稱的計算子系統(tǒng)(例如,一個計算子系統(tǒng)具有比其他計算子系統(tǒng)更多的處理和存儲器資源)時,i/o轉(zhuǎn)向引擎可提供將適當(dāng)?shù)膇/o資源轉(zhuǎn)向到每個計算子系統(tǒng)的靈活性。在一些其他情況下,當(dāng)soc被配置來僅提供聯(lián)網(wǎng)服務(wù)時,i/o轉(zhuǎn)向引擎可將第一和第二i/o資源轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng),并且當(dāng)soc被配置來僅提供服務(wù)器計算服務(wù)時,i/o轉(zhuǎn)向引擎可將第一和第二i/o資源轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)。在技術(shù)的某些實施方案中,i/o轉(zhuǎn)向引擎還可被配置來將加速器中的至少一個轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)或網(wǎng)絡(luò)計算子系統(tǒng)。例如,在一些情況下,當(dāng)soc被配置來僅提供聯(lián)網(wǎng)服務(wù)時,i/o轉(zhuǎn)向引擎可將所有i/o資源和加速器轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)。
根據(jù)所公開技術(shù)的某些實施方案,管理計算子系統(tǒng)可將轉(zhuǎn)向配置提供給i/o轉(zhuǎn)向引擎,以將i/o資源和加速器轉(zhuǎn)向到適當(dāng)?shù)挠嬎阕酉到y(tǒng)。在一些實施方案中,管理計算子系統(tǒng)可確定網(wǎng)絡(luò)計算子系統(tǒng)和服務(wù)器計算子系統(tǒng)都可起作用,并且可將轉(zhuǎn)向配置提供給i/o轉(zhuǎn)向引擎,以將第一i/o資源轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)并將第二i/o資源轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)。在一些實施方案中,管理計算子系統(tǒng)可基于對兩個計算子系統(tǒng)進行的處理和存儲器資源的分配來將轉(zhuǎn)向配置提供給兩個計算子系統(tǒng)。在某些實施方案中,管理計算子系統(tǒng)可確定服務(wù)器計算子系統(tǒng)不能起作用,并且可將轉(zhuǎn)向配置提供給i/o轉(zhuǎn)向引擎,以將第一i/o資源和第二i/o資源轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)。在某些實施方案中,管理計算子系統(tǒng)可確定網(wǎng)絡(luò)計算子系統(tǒng)不能起作用,并且可將轉(zhuǎn)向配置提供給i/o轉(zhuǎn)向引擎,以將第一i/o資源和第二i/o資源轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)。在一些實施方案中,第一i/o資源和第二i/o資源的轉(zhuǎn)向配置可以基于默認(rèn)配置。在一些實施方案中,管理計算子系統(tǒng)可基于硬件配置(例如,引腳或熔絲)或軟件配置(例如,軟件寄存器的數(shù)據(jù)字段)來在加電時確定第一i/o資源和第二i/o資源的轉(zhuǎn)向配置。在一些實施方案中,管理計算子系統(tǒng)可動態(tài)地確定轉(zhuǎn)向配置,并在運行時將其提供給i/o轉(zhuǎn)向引擎。例如,管理計算子系統(tǒng)可確定:與服務(wù)器計算子系統(tǒng)相比,網(wǎng)絡(luò)計算子系統(tǒng)在特定時間處利用更多的計算資源。因此,在一些實現(xiàn)方式中,管理計算子系統(tǒng)可動態(tài)地更新轉(zhuǎn)向配置,以將適當(dāng)?shù)膇/o資源轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng),以與網(wǎng)絡(luò)計算子系統(tǒng)利用的計算資源相匹配。高速緩存一致結(jié)構(gòu)橋接器可將每個配置的i/o資源映射到可與計算子系統(tǒng)相關(guān)聯(lián)的物理層。
典型的soc可包括集成到單個芯片中的系統(tǒng)的功能。例如,soc可包括多個處理器核、易失性和非易失性存儲器模塊、存儲器控制器、一個或多個內(nèi)部總線、標(biāo)準(zhǔn)接口、外圍設(shè)備、電壓調(diào)節(jié)器、功率管理電路、諸如振蕩器和鎖相環(huán)的定時資源等。在單個芯片上實現(xiàn)多個芯片的功能可降低制造和組裝成本。此外,soc通常具有較小的覆蓋區(qū)和空間要求。因此,與實現(xiàn)相同功能的多芯片系統(tǒng)相比,soc實現(xiàn)方式通常消耗更少的功率并且具有更高性價比。
所公開技術(shù)的實施方案可提供將i/o資源轉(zhuǎn)向到soc上的多于一個計算子系統(tǒng)的靈活性。更好地利用soc上的i/o資源的能力可使得主機系統(tǒng)為各種計算服務(wù)提供改進的網(wǎng)絡(luò)和存儲帶寬。
盡管所公開技術(shù)的實施方案被描述并示出為使i/o資源在soc上的兩個計算子系統(tǒng)之間轉(zhuǎn)向,但是所公開技術(shù)的方面不限于使i/o資源僅在兩個計算子系統(tǒng)之間轉(zhuǎn)向。例如,在一些實現(xiàn)方式中,可使i/o資源在soc上的多個計算子系統(tǒng)(例如,多于兩個)之間轉(zhuǎn)向,而不偏離所公開技術(shù)的范圍。
圖1示出了可用于執(zhí)行本文描述的實施方案的示例性系統(tǒng)100。一般來說,soc可包括i/o子系統(tǒng),所述i/o子系統(tǒng)包括多個i/o資源。可使用i/o轉(zhuǎn)向引擎將多個i/o資源中的一個或多個轉(zhuǎn)向到多個計算子系統(tǒng)。
圖1示出了被配置來與主機系統(tǒng)104進行通信的soc102。在一些情況下,主機系統(tǒng)104可向多個客戶端提供多租戶平臺。例如,主機系統(tǒng)104可向不同的客戶端提供服務(wù),諸如云計算、云存儲、分析、web服務(wù)、數(shù)據(jù)庫、應(yīng)用、部署服務(wù)、網(wǎng)站托管等。主機系統(tǒng)104可包括服務(wù)器(例如,x86服務(wù)器)。在一些實施方案中,主機系統(tǒng)104中的一個或多個處理器可連接到soc102上的套接字。
soc102可包括多個計算子系統(tǒng),諸如第一計算子系統(tǒng)106、第二計算子系統(tǒng)108和第n計算子系統(tǒng)110。例如,在一些情況下,多個計算子系統(tǒng)可包括兩個或更多個計算子系統(tǒng)。soc102還可包括i/o子系統(tǒng)114和i/o轉(zhuǎn)向引擎112。i/o子系統(tǒng)114可使用接口116與主機系統(tǒng)104進行通信。接口116可以基于諸如外圍部件高速互連(pcie)的標(biāo)準(zhǔn)接口。
在一些實施方案中,第一計算子系統(tǒng)106可被配置為網(wǎng)絡(luò)計算子系統(tǒng),并且第二計算子系統(tǒng)108可被配置為服務(wù)器計算子系統(tǒng)。例如,第一計算子系統(tǒng)106可被配置用于至少管理主機系統(tǒng)104的網(wǎng)絡(luò)流量。在一些實施方案中,第一計算子系統(tǒng)106可執(zhí)行與網(wǎng)絡(luò)相關(guān)的功能,諸如網(wǎng)絡(luò)流量整形、網(wǎng)絡(luò)加速、網(wǎng)絡(luò)存儲處理等。在一些實施方案中,第二計算子系統(tǒng)108可被配置來提供計算服務(wù)。例如,計算服務(wù)可包括啟動各種大小的虛擬機實例、將存儲卷關(guān)聯(lián)到虛擬機、數(shù)據(jù)處理等。
i/o子系統(tǒng)114可包括多個i/o資源。在一些實施方案中,多個i/o資源可包括i/o設(shè)備和用于內(nèi)部和外部通信的各種i/o接口。例如,i/o子系統(tǒng)114可包括一個或多個以太網(wǎng)mac(介質(zhì)訪問控制)、pcie設(shè)備、uart(通用異步接收器/發(fā)送器)、i2c(集成電路互聯(lián))、gpio(通用輸入/輸出)、sata(串行ata)控制器、spi(串行外圍接口)端口和任何其他合適的設(shè)備。
i/o轉(zhuǎn)向引擎112可被配置來將多個i/o資源中的至少一個轉(zhuǎn)向或引導(dǎo)到多個計算子系統(tǒng)中的一個或多個計算子系統(tǒng)。例如,在一些實施方案中,i/o轉(zhuǎn)向引擎112可被配置來將i/o資源中的一個或多個轉(zhuǎn)向到第一計算子系統(tǒng)106、第二計算子系統(tǒng)108或第一計算子系統(tǒng)106和第二計算子系統(tǒng)108二者。在一些實施方案中,i/o轉(zhuǎn)向引擎可包括轉(zhuǎn)向基體、交叉開關(guān)、網(wǎng)格、多路復(fù)用器、解復(fù)用器等。然而,可能存在i/o轉(zhuǎn)向引擎的其他實現(xiàn)方式。
圖2示出了可用于執(zhí)行本文描述的實施方案的示例性系統(tǒng)200。一般來說,soc可包括i/o子系統(tǒng),所述i/o子系統(tǒng)包括多個i/o資源,可使用i/o轉(zhuǎn)向引擎將所述多個i/o資源轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)或服務(wù)器計算子系統(tǒng)。
圖2示出了被配置來通過接口116與主機系統(tǒng)104進行通信的soc102,如參考圖1所論述的。soc102可包括網(wǎng)絡(luò)計算子系統(tǒng)202、服務(wù)器計算子系統(tǒng)204、i/o子系統(tǒng)114、i/o轉(zhuǎn)向引擎112和管理計算子系統(tǒng)206。在一些實施方案中,網(wǎng)絡(luò)計算子系統(tǒng)202可以是第一計算子系統(tǒng)106,并且服務(wù)器計算子系統(tǒng)204可以是第二計算子系統(tǒng)108,如參考圖1所論述的。
網(wǎng)絡(luò)計算子系統(tǒng)202可被配置來提供與網(wǎng)絡(luò)相關(guān)的功能,諸如網(wǎng)絡(luò)流量整形、網(wǎng)絡(luò)加速、網(wǎng)絡(luò)存儲處理等。在一些實施方案中,網(wǎng)絡(luò)計算子系統(tǒng)202可包括網(wǎng)絡(luò)接口控制器(nic)或網(wǎng)絡(luò)協(xié)處理器的至少一些功能。在某些實施方案中,網(wǎng)絡(luò)計算子系統(tǒng)202可包括與由主機系統(tǒng)104提供的web服務(wù)相關(guān)的一些功能,例如,計費、速率、流量整形、加密、阻塞等。
服務(wù)器計算子系統(tǒng)204可被配置來提供計算服務(wù)(例如,主機系統(tǒng)104的虛擬或物理資源)。例如,計算服務(wù)可包括根據(jù)需要啟動各種大小的虛擬機實例、將存儲卷關(guān)聯(lián)到虛擬機等。在一些實施方案中,服務(wù)器計算子系統(tǒng)204可用于卸載主機系統(tǒng)104的一些工作負(fù)載。在一些情況下,主機系統(tǒng)104連同服務(wù)器計算子系統(tǒng)204可提供高性能計算服務(wù)。例如,主機系統(tǒng)104可集中處理快速周轉(zhuǎn)服務(wù),并且可將低性能工作負(fù)載卸載到服務(wù)器計算子系統(tǒng)204,從而增加系統(tǒng)的吞吐量。
i/o子系統(tǒng)114可包括多個i/o資源。在所公開技術(shù)的實施方案中,多個i/o資源可被網(wǎng)絡(luò)計算子系統(tǒng)202或服務(wù)器計算子系統(tǒng)204使用以匹配系統(tǒng)的吞吐量要求。在一些實施方案中,多個i/o資源可包括外圍設(shè)備和用于內(nèi)部和外部通信的各種i/o接口。例如,i/o子系統(tǒng)114可包括與主機系統(tǒng)104進行通信的第一接口(例如,接口116)、與i/o轉(zhuǎn)向引擎112進行通信的第二接口和與網(wǎng)絡(luò)(例如,互聯(lián)網(wǎng)、內(nèi)聯(lián)網(wǎng))進行通信的第三接口。在一些實施方案中,i/o子系統(tǒng)114還可包括一個或多個i/o設(shè)備,諸如以太網(wǎng)mac(介質(zhì)訪問控制)、pcie設(shè)備、uart(通用異步接收器/發(fā)送器)、i2c(集成電路互聯(lián))、gpio(通用輸入/輸出)、sata(串行ata)控制器、spi(串行外圍接口)端口和任何其他合適的外圍設(shè)備。
在一些實施方案中,i/o子系統(tǒng)114可包括i/o資源池(諸如一個或多個sata控制器、以太網(wǎng)mac、pcie設(shè)備、serdesi/o多路復(fù)用器、gpio、uart等),所述i/o資源池可被轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202或服務(wù)器計算子系統(tǒng)204。在一個實施方案中,i/o子系統(tǒng)114中的所有資源可被轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202或服務(wù)器計算子系統(tǒng)204。在另一個實施方案中,轉(zhuǎn)向可基于逐個設(shè)備來執(zhí)行。例如,第一i/o設(shè)備組可被轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202,第二i/o設(shè)備組可被轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204,并且第三i/o設(shè)備組可被轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202和服務(wù)器計算子系統(tǒng)204。在一些實施方案中,相較于服務(wù)器計算子系統(tǒng)204,可將更多數(shù)量的i/o資源轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202,或者反之亦然。例如,根據(jù)soc102的配置(例如,高性能聯(lián)網(wǎng)或高性能計算服務(wù)器),計算子系統(tǒng)可利用更多數(shù)量的i/o資源以與該計算子系統(tǒng)利用的計算資源相匹配。
在一些實施方案中,i/o子系統(tǒng)114可包括第一i/o子系統(tǒng)和第二i/o子系統(tǒng),如將參考圖3論述的。例如,第一i/o子系統(tǒng)可包括用于網(wǎng)絡(luò)計算子系統(tǒng)202的多個第一i/o資源,并且第二i/o子系統(tǒng)可包括用于服務(wù)器計算子系統(tǒng)204的多個第二i/o資源。在一些實施方案中,相較于第二i/o子系統(tǒng),第一i/o子系統(tǒng)可包括更多的i/o資源,或者反之亦然。例如,在一種情況下,與第二i/o子系統(tǒng)相比,第一i/o子系統(tǒng)可包括更多數(shù)量的以太網(wǎng)mac和uart。
i/o轉(zhuǎn)向引擎112可被配置來將多個i/o資源中的至少一個轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202或服務(wù)器計算子系統(tǒng)204。在一些實施方案中,i/o轉(zhuǎn)向引擎可包括轉(zhuǎn)向基體、交叉開關(guān)、網(wǎng)格、多路復(fù)用器、解復(fù)用器等。然而,可能存在i/o轉(zhuǎn)向引擎的其他實現(xiàn)方式。在一些實施方案中,i/o轉(zhuǎn)向引擎112可基于管理計算子系統(tǒng)206提供的轉(zhuǎn)向配置使i/o資源轉(zhuǎn)向。在一些實施方案中,由i/o轉(zhuǎn)向引擎112轉(zhuǎn)向到一個或多個計算子系統(tǒng)的i/o資源的數(shù)量可動態(tài)地發(fā)生變化。在某些情況下,當(dāng)soc102被配置來包括不對稱的計算子系統(tǒng)(例如,一個計算子系統(tǒng)具有比其他計算子系統(tǒng)更多的處理和存儲器資源)時,i/o轉(zhuǎn)向引擎112可提供將適當(dāng)數(shù)量的i/o資源轉(zhuǎn)向到每個計算子系統(tǒng)的靈活性。例如,如果網(wǎng)絡(luò)計算子系統(tǒng)202具有更多的處理和存儲器資源(例如,soc102被配置來提供高性能聯(lián)網(wǎng)服務(wù)),那么i/o轉(zhuǎn)向引擎112可使適當(dāng)數(shù)量的i/o資源轉(zhuǎn)向以匹配網(wǎng)絡(luò)計算子系統(tǒng)202的吞吐量要求所需的i/o資源。類似地,如果服務(wù)器計算子系統(tǒng)204具有更多的處理和存儲器資源(例如,soc102被配置來提供高性能服務(wù)器計算服務(wù)),那么i/o轉(zhuǎn)向引擎112可使適當(dāng)數(shù)量的i/o資源轉(zhuǎn)向以匹配服務(wù)器計算子系統(tǒng)204的吞吐量要求所需的i/o資源。在一些情況下,當(dāng)soc102被配置來僅提供聯(lián)網(wǎng)服務(wù)時,i/o轉(zhuǎn)向引擎112可將所有i/o資源轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202,并且當(dāng)soc102被配置來僅提供服務(wù)器計算服務(wù)時,i/o轉(zhuǎn)向引擎112可將所有i/o資源轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204。
在一些實施方案中,管理計算子系統(tǒng)206可被配置為在整個soc102冷上電時首先運行。在一些實施方案中,管理計算子系統(tǒng)206可在加電時確定soc102的配置。例如,在一些實施方案中,soc102的配置可包括計算子系統(tǒng)的配置以及每個計算子系統(tǒng)的處理和存儲器資源的配置。在一些實施方案中,管理計算子系統(tǒng)206可被配置來基于soc102的配置確定轉(zhuǎn)向配置,并將轉(zhuǎn)向配置提供給i/o轉(zhuǎn)向引擎112,以將適當(dāng)?shù)膇/o資源轉(zhuǎn)向到一個或兩個計算子系統(tǒng)。例如,管理計算子系統(tǒng)206可確定網(wǎng)絡(luò)計算子系統(tǒng)202和服務(wù)器計算子系統(tǒng)204都可起作用,并且可將轉(zhuǎn)向配置提供給i/o轉(zhuǎn)向引擎112,以將i/o子系統(tǒng)114中適當(dāng)數(shù)量的i/o資源轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202并將i/o子系統(tǒng)114中適當(dāng)數(shù)量的i/o資源轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204。在一些情況下,管理計算子系統(tǒng)206可確定服務(wù)器計算子系統(tǒng)204不能起作用,并且可將轉(zhuǎn)向配置提供給i/o轉(zhuǎn)向引擎112,以將多個i/o資源中的至少一個從i/o子系統(tǒng)114轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202。在一些情況下,管理計算子系統(tǒng)206可確定網(wǎng)絡(luò)計算子系統(tǒng)202不能起作用,并且可將轉(zhuǎn)向配置提供給i/o轉(zhuǎn)向引擎112,以將多個i/o資源中的至少一個從i/o子系統(tǒng)114轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204。soc102的配置可基于由外部實體(例如,通過網(wǎng)絡(luò)連接)提供的策略、基于硬件配置(例如,一個或多個引腳或熔絲)或基于軟件配置(例如,軟件寄存器的數(shù)據(jù)字段)。在一些實施方案中,soc102可在加電時具有默認(rèn)配置。在一些實施方案中,管理計算子系統(tǒng)206可基于soc的配置來確定轉(zhuǎn)向配置以將不同的i/o資源轉(zhuǎn)向到不同的計算子系統(tǒng)。在一些實施方案中,例如,當(dāng)soc被配置來通過每個計算子系統(tǒng)使用不對稱計算資源來提供計算服務(wù)時,管理計算子系統(tǒng)206可確定轉(zhuǎn)向配置以將不對稱數(shù)量的i/o資源轉(zhuǎn)向到每個計算子系統(tǒng)。在一些實施方案中,管理計算子系統(tǒng)206可例如基于運行時每個計算子系統(tǒng)對計算資源的利用來動態(tài)地更新轉(zhuǎn)向配置。
圖3用根據(jù)所公開技術(shù)的一些實施方案的soc102的詳細示意圖示出了系統(tǒng)300。
soc102可包括網(wǎng)絡(luò)計算子系統(tǒng)202、服務(wù)器計算子系統(tǒng)204、第一i/o子系統(tǒng)302、第二i/o子系統(tǒng)304、加速器子系統(tǒng)306、i/o轉(zhuǎn)向引擎112、管理計算子系統(tǒng)206和共享資源子系統(tǒng)308。應(yīng)理解,為了簡單起見,圖3示出了被轉(zhuǎn)向到兩個計算子系統(tǒng)的兩個i/o子系統(tǒng)。例如,在一些實現(xiàn)方式中,可使來自多于兩個i/o子系統(tǒng)的多個i/o資源在soc上的多個計算子系統(tǒng)(例如,多于兩個)之間轉(zhuǎn)向,而不偏離所公開技術(shù)的范圍。
網(wǎng)絡(luò)計算子系統(tǒng)202可包括網(wǎng)絡(luò)計算子系統(tǒng)多核處理器310、l1/l2高速緩存312、網(wǎng)絡(luò)計算子系統(tǒng)高速緩存一致結(jié)構(gòu)314、l3高速緩存316、專用外圍設(shè)備320和網(wǎng)絡(luò)計算子系統(tǒng)存儲器控制器318。
服務(wù)器計算子系統(tǒng)204可包括服務(wù)器計算子系統(tǒng)多核處理器322、l1/l2高速緩存324、服務(wù)器計算子系統(tǒng)高速緩存一致結(jié)構(gòu)326、l3高速緩存328和網(wǎng)絡(luò)計算子系統(tǒng)存儲器控制器330。
網(wǎng)絡(luò)計算子系統(tǒng)多核處理器310可包括同一處理器內(nèi)的多個多處理器核或處理單元。例如,在一種情況下,網(wǎng)絡(luò)計算子系統(tǒng)多核處理器310可包括十二個2核處理器。網(wǎng)絡(luò)計算子系統(tǒng)多核處理器310可被配置來在處理器核的一個或多個處理器上共同地執(zhí)行多個指令。指令可(例如)以計算機程序的形式存儲在計算機可讀存儲介質(zhì)上。計算機可讀存儲介質(zhì)可以是非暫時性的。在一些實施方案中,多核處理器可共享某些資源,諸如多核之間的總線以及1級(l1)高速緩存和/或2級(l2)高速緩存。例如,在一些情況下,單核或多核處理器中的每個核還可包括多個執(zhí)行中的邏輯處理器(或線程)。在這種(支持多個邏輯處理器的)核中,還可共享執(zhí)行流水線的若干級以及還有較低級的高速緩存(例如,l1或l2)。多核處理器的一些非限制性示例可包括arm的cortexa57、mips、amdphenom、intelatom等。
在一些實施方案中,l1/l2高速緩存312可在網(wǎng)絡(luò)計算子系統(tǒng)多核處理器310的多個核之間共享。例如,l1高速緩存可用作主高速緩存,并且l2高速緩存可用作次高速緩存。在一些實施方案中,l1/l2高速緩存312可被內(nèi)置到網(wǎng)絡(luò)計算子系統(tǒng)多核處理器310中。例如,一個l1/l2高速緩存可與一個多核處理器集成。
網(wǎng)絡(luò)計算子系統(tǒng)存儲器控制器318可包括多個存儲器控制器,諸如ddr(雙倍數(shù)據(jù)速率)控制器、ddr2控制器或任何合適的存儲器控制器。網(wǎng)絡(luò)計算子系統(tǒng)存儲器控制器318可用于管理對外部存儲器(例如,系統(tǒng)存儲器)的訪問。例如,外部系統(tǒng)存儲器可包括ddr同步動態(tài)隨機存取存儲器(dram)、ddr2dram、dram等。在一些實施方案中,網(wǎng)絡(luò)計算子系統(tǒng)存儲器控制器318中的存儲器控制器的數(shù)量可以基于處理器核的數(shù)量、高速緩存的大小等。
專用外圍設(shè)備320可包括專用于網(wǎng)絡(luò)計算子系統(tǒng)202的一個或多個外圍設(shè)備,所述一個或多個外圍設(shè)備不可被服務(wù)器計算子系統(tǒng)204共享。例如,在一些實施方案中,專用外圍設(shè)備320可包括諸如引導(dǎo)rom的可信外圍設(shè)備。
l3高速緩存316可包括末級高速緩存。在一些實施方案中,l3高速緩存316可被網(wǎng)絡(luò)計算子系統(tǒng)多核處理器310的多個核共享。在本說明書中,術(shù)語末級高速緩存和l3高速緩存可以互換地使用,然而,在一些系統(tǒng)中,末級高速緩存在不偏離技術(shù)的范圍的情況下可以是2級高速緩存或4級高速緩存或任何其他級高速緩存。
網(wǎng)絡(luò)計算子系統(tǒng)高速緩存一致結(jié)構(gòu)314可表示物理層結(jié)構(gòu),所述物理層結(jié)構(gòu)可連接到分配給網(wǎng)絡(luò)計算子系統(tǒng)202的所有資源。在所公開技術(shù)的實施方案中,網(wǎng)絡(luò)計算子系統(tǒng)高速緩存一致結(jié)構(gòu)314可通過允許針對分配給網(wǎng)絡(luò)計算子系統(tǒng)202的所有資源的專用硬件路徑來提供硬件安全和性能/抖動隔離。在一些實施方案中,網(wǎng)絡(luò)計算子系統(tǒng)高速緩存一致結(jié)構(gòu)314可被配置來在網(wǎng)絡(luò)計算子系統(tǒng)202的不同部件(例如,網(wǎng)絡(luò)計算子系統(tǒng)多核處理器310、l1/l2高速緩存312、網(wǎng)絡(luò)計算子系統(tǒng)存儲器控制器318、l3高速緩存316和共享資源子系統(tǒng)308)之間保持一致性。在一些情況下,網(wǎng)絡(luò)計算子系統(tǒng)高速緩存一致結(jié)構(gòu)314可表示網(wǎng)絡(luò)計算子系統(tǒng)202的通信骨干。在一些實施方案中,網(wǎng)絡(luò)計算子系統(tǒng)高速緩存一致結(jié)構(gòu)314可被配置來確保所有共享數(shù)據(jù)在網(wǎng)絡(luò)計算子系統(tǒng)202中是一致的。例如,如果某些共享數(shù)據(jù)存儲在兩個或更多個位置(例如,多個處理器、處理器的多個核、高速緩存等)中,那么網(wǎng)絡(luò)計算子系統(tǒng)高速緩存一致結(jié)構(gòu)314可操作來保持不同位置中的共享數(shù)據(jù)的一致性。在一些實施方案中,網(wǎng)絡(luò)計算子系統(tǒng)高速緩存一致結(jié)構(gòu)314可包括一致性控制器和一致性目錄,以保持網(wǎng)絡(luò)計算子系統(tǒng)202的不同部件之間的一致性。
服務(wù)器計算子系統(tǒng)多核處理器322可包括同一處理器內(nèi)的多個多處理器核或處理單元。例如,在一種情況下,服務(wù)器計算子系統(tǒng)多核處理器322可包括十二個2核處理器。服務(wù)器計算子系統(tǒng)多核處理器322可被配置來在處理器核的一個或多個處理器上共同地執(zhí)行多個指令。指令可(例如)以計算機程序的形式存儲在計算機可讀存儲介質(zhì)上。計算機可讀存儲介質(zhì)可以是非暫時性的。
在一些實施方案中,l1/l2高速緩存324可在服務(wù)器計算子系統(tǒng)多核處理器322的多個核之間共享。例如,l1高速緩存可用作主高速緩存,并且l2高速緩存可用作次高速緩存。在一些實施方案中,l1/l2高速緩存324可被內(nèi)置到服務(wù)器計算子系統(tǒng)多核處理器322中。
服務(wù)器計算子系統(tǒng)存儲器控制器330可包括多個存儲器控制器,諸如ddr控制器、ddr2控制器或任何合適的存儲器控制器。服務(wù)器計算子系統(tǒng)存儲器控制器330可用于管理對外部存儲器的訪問。在一些實施方案中,服務(wù)器計算子系統(tǒng)存儲器控制器330中的存儲器控制器的數(shù)量可以基于處理器核的數(shù)量、高速緩存的大小等。
專用外圍設(shè)備332可包括專用于服務(wù)器計算子系統(tǒng)204的一個或多個外圍設(shè)備,所述一個或多個外圍設(shè)備不可被網(wǎng)絡(luò)計算子系統(tǒng)202共享。例如,在一些實施方案中,專用外圍設(shè)備332可包括諸如引導(dǎo)rom的可信外圍設(shè)備。
l3高速緩存328可包括末級高速緩存。在一些實施方案中,l3高速緩存328可被服務(wù)器計算子系統(tǒng)多核處理器322的多個核共享。
服務(wù)器計算子系統(tǒng)高速緩存一致結(jié)構(gòu)326可表示物理層結(jié)構(gòu),所述物理層結(jié)構(gòu)可連接到分配給服務(wù)器計算子系統(tǒng)204的所有資源。在所公開技術(shù)的實施方案中,服務(wù)器計算子系統(tǒng)高速緩存一致結(jié)構(gòu)326可通過允許針對分配給服務(wù)器計算子系統(tǒng)204的所有資源的專用硬件路徑來提供硬件安全和性能/抖動隔離。在一些實施方案中,服務(wù)器計算子系統(tǒng)高速緩存一致結(jié)構(gòu)326可被配置來在服務(wù)器計算子系統(tǒng)204的不同部件(例如,服務(wù)器計算子系統(tǒng)多核處理器322、l1/l2高速緩存324、服務(wù)器計算子系統(tǒng)存儲器控制器330、l3高速緩存328和共享資源子系統(tǒng)308)之間保持一致性。在一些情況下,服務(wù)器計算子系統(tǒng)高速緩存一致結(jié)構(gòu)326可表示服務(wù)器計算子系統(tǒng)204的通信骨干。在一些實施方案中,服務(wù)器計算子系統(tǒng)高速緩存一致結(jié)構(gòu)326可被配置來確保所有共享數(shù)據(jù)在服務(wù)器計算子系統(tǒng)204中是一致的。例如,如果某些共享數(shù)據(jù)存儲在兩個或更多個位置(例如,多個處理器、處理器的多個核、高速緩存等)中,那么服務(wù)器計算子系統(tǒng)高速緩存一致結(jié)構(gòu)326可操作來保持不同位置中的共享數(shù)據(jù)的一致性。在一些實施方案中,服務(wù)器計算子系統(tǒng)高速緩存一致結(jié)構(gòu)326可包括一致性控制器和一致性目錄,以保持服務(wù)器計算子系統(tǒng)204的不同部件之間的一致性。
第一i/o子系統(tǒng)302可包括多個第一i/o資源。例如,第一i/o子系統(tǒng)302可包括用于內(nèi)部和外部通信的一個或多個i/o設(shè)備和接口。在一些實施方案中,第一i/o子系統(tǒng)302還可包括一個或多個sata控制器、以太網(wǎng)mac、pcie設(shè)備、serdes(串行化-解串行化)i/o多路復(fù)用器、uart、i2c、gpio以及用于soc功能的任何其他合適的i/o設(shè)備。在一些實施方案中,第一i/o子系統(tǒng)302可包括與主機系統(tǒng)104進行通信的第一接口346,例如,類似于接口116。第一i/o子系統(tǒng)302可包括與網(wǎng)絡(luò)計算子系統(tǒng)202進行通信的第二接口334、與服務(wù)器計算子系統(tǒng)204進行通信的第三接口336以及與網(wǎng)絡(luò)進行通信的第四接口(未示出)。接口346、334和336可以基于諸如pcie接口的預(yù)定義接口。在一些實施方案中,第四接口可以基于標(biāo)準(zhǔn)(諸如以太網(wǎng)、令牌環(huán)、wi-fi、atm(異步傳輸模式)等)。在一些實施方案中,第一i/o子系統(tǒng)302還可包括接口(例如,sata),所述接口用于連接到外部大容量存儲設(shè)備(諸如硬盤驅(qū)動器、光驅(qū)等)。
第二i/o子系統(tǒng)304可包括多個第二i/o資源。例如,第二i/o子系統(tǒng)304可包括用于內(nèi)部和外部通信的一個或多個i/o設(shè)備和接口。在一些實施方案中,第二i/o子系統(tǒng)302還可包括一個或多個sata控制器、以太網(wǎng)mac、pcie設(shè)備、serdes(串行化-解串行化)i/o多路復(fù)用器、uart、i2c、gpio以及用于soc功能的任何其他合適的i/o設(shè)備。在一些實施方案中,第二i/o子系統(tǒng)304可包括與主機系統(tǒng)104進行通信的第一接口348,例如,類似于接口116。第二i/o子系統(tǒng)304可包括與服務(wù)器計算子系統(tǒng)204進行通信的第二接口338、與網(wǎng)絡(luò)計算子系統(tǒng)202進行通信的第三接口340以及與網(wǎng)絡(luò)進行通信的第四接口(未示出)。接口348、338和340可以基于諸如pcie接口的預(yù)定義接口。在一些實施方案中,第四接口可以基于標(biāo)準(zhǔn)(諸如以太網(wǎng)、令牌環(huán)、wi-fi、atm(異步傳輸模式)等)。在一些實施方案中,第四接口可以基于標(biāo)準(zhǔn)(諸如以太網(wǎng)、令牌環(huán)、wi-fi、atm(異步傳輸模式)等)。在一些實施方案中,第二i/o子系統(tǒng)304還可包括接口(例如,sata),所述接口用于連接到外部大容量存儲設(shè)備(諸如硬盤驅(qū)動器、光驅(qū)等)。
在一些實施方案中,第一i/o子系統(tǒng)302中的一個或多個第一i/o資源可以不同于第二i/o子系統(tǒng)304中的第二i/o資源。例如,在一些情況下,第一i/o子系統(tǒng)302可包括以太網(wǎng)mac、i2c、uart,并且第二i/o子系統(tǒng)304可包括sata控制器、gpio、pcie設(shè)備等。在一些實施方案中,管理計算子系統(tǒng)206可基于可用資源和每個計算子系統(tǒng)的i/o資源要求來確定轉(zhuǎn)向配置以使適當(dāng)?shù)膇/o資源從每個i/o子系統(tǒng)轉(zhuǎn)向。
加速器子系統(tǒng)306可包括一個或多個加速器,諸如網(wǎng)絡(luò)加速器、加密引擎、壓縮加速器等。例如,在一些情況下,加密引擎可在硬件中執(zhí)行加密功能,從而減少軟件開銷并加速執(zhí)行與聯(lián)網(wǎng)相關(guān)的解密、加密和認(rèn)證功能。在一些實施方案中,加速器子系統(tǒng)306可包括各種硬件和軟件技術(shù)的組合,以(例如)使用硬件加速器、各種流水線、高速緩存、壓縮等來提供帶寬優(yōu)化或網(wǎng)絡(luò)加速。在一些實施方案中,加速器子系統(tǒng)306還可支持rdma(遠程直接存儲器訪問)等。在一些實施方案中,加速器子系統(tǒng)306可包括與網(wǎng)絡(luò)計算子系統(tǒng)202進行通信的第一接口342和與服務(wù)器計算子系統(tǒng)204進行通信的第二接口344。
根據(jù)所公開技術(shù)的一些實施方案,可將一個或多個加速器轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202,并且可將一個或多個加速器轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204。應(yīng)注意,在一些實現(xiàn)方式中,可將一個或多個加速器轉(zhuǎn)向到多個計算子系統(tǒng)(例如,多于兩個),而不偏離所公開技術(shù)的范圍。在一些情況下,加速器子系統(tǒng)306可包括加速器a、加速器b和加速器c,如圖3中所示。例如,加速器a可以是網(wǎng)絡(luò)加速器,加速器b可以是加密引擎并且加速器c可以是壓縮加速器。應(yīng)注意,在一些實施方案中,加速器子系統(tǒng)306可包括可被適當(dāng)?shù)剞D(zhuǎn)向到任一計算子系統(tǒng)的多個網(wǎng)絡(luò)加速器、加密引擎和其他加速器。在一個實施方案中,例如當(dāng)網(wǎng)絡(luò)計算子系統(tǒng)202和服務(wù)器計算子系統(tǒng)204都起作用時,加速器a和b可被轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202,并且加速器c可被轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204。在另一個實施方案中,例如當(dāng)服務(wù)器計算子系統(tǒng)204被去配置或不起作用時,加速器a、b和c中的一些或全部可被轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202。在另一個實施方案中,例如當(dāng)網(wǎng)絡(luò)計算子系統(tǒng)202被去配置或不起作用時,加速器a、b和c中的一些或全部可被轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204。
i/o轉(zhuǎn)向引擎112可被配置來將第一i/o子系統(tǒng)302中的至少一個i/o資源轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202或服務(wù)器計算子系統(tǒng)204并且將第二i/o子系統(tǒng)304中的至少一個i/o資源轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202或服務(wù)器計算子系統(tǒng)204。例如,在某些實施方案中,i/o轉(zhuǎn)向引擎112可通過接口334將第一i/o資源轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)高速緩存一致結(jié)構(gòu)314,或通過接口336將第一i/o資源轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)高速緩存一致結(jié)構(gòu)326。在一些實施方案中,i/o轉(zhuǎn)向引擎112可通過接口340將第二i/o資源轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)高速緩存一致結(jié)構(gòu)314,或通過接口338將第二i/o資源轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)高速緩存一致結(jié)構(gòu)326。在一些實施方案中,i/o轉(zhuǎn)向引擎112還可被配置來將加速器子系統(tǒng)306中的一個或多個加速器轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202或服務(wù)器計算子系統(tǒng)204。例如,i/o轉(zhuǎn)向引擎112可通過接口342將一個或多個加速器轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)高速緩存一致結(jié)構(gòu)314,或通過接口344將一個或多個加速器轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)高速緩存一致結(jié)構(gòu)326。在一些實施方案中,i/o轉(zhuǎn)向引擎112可基于轉(zhuǎn)向配置來將不同的i/o資源轉(zhuǎn)向到不同的計算子系統(tǒng)。例如,在一些情況下,i/o轉(zhuǎn)向引擎112可將所有以太網(wǎng)mac從第一i/o子系統(tǒng)302轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202,并且可將所有g(shù)pio從第二i/o子系統(tǒng)304轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204。在一些實施方案中,i/o轉(zhuǎn)向引擎112可使不對稱數(shù)量的i/o資源從第一i/o子系統(tǒng)302和第二i/o子系統(tǒng)304轉(zhuǎn)向。例如,相較于第二i/o子系統(tǒng)304,i/o轉(zhuǎn)向引擎112可使更多數(shù)量的以太網(wǎng)mac從第一i/o子系統(tǒng)302轉(zhuǎn)向,并且相較于第一i/o子系統(tǒng)302,i/o轉(zhuǎn)向引擎112可使更多數(shù)量的uart從第二i/o子系統(tǒng)304轉(zhuǎn)向。
共享資源子系統(tǒng)308可包括一個或多個資源,所述一個或多個資源可在網(wǎng)絡(luò)計算子系統(tǒng)202與服務(wù)器計算子系統(tǒng)204之間共享。在一些實施方案中,共享資源子系統(tǒng)308可包括一個或多個外圍設(shè)備,所述一個或多個外圍設(shè)備可在不引起任何抖動或安全問題的情況下在網(wǎng)絡(luò)計算子系統(tǒng)202與服務(wù)器計算子系統(tǒng)204之間安全地共享。例如,共享資源子系統(tǒng)308可包括隨機數(shù)生成器、通信郵箱、高速暫存存儲器、閃存等。
管理計算子系統(tǒng)206可被配置來將轉(zhuǎn)向配置提供給i/o轉(zhuǎn)向引擎112,以將適當(dāng)數(shù)量的i/o資源轉(zhuǎn)向到每個計算子系統(tǒng)。在一些實施方案中,管理計算子系統(tǒng)206還可將轉(zhuǎn)向配置提供給i/o轉(zhuǎn)向引擎112,以將加速器子系統(tǒng)306中的一個或多個加速器轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202或服務(wù)器計算子系統(tǒng)204。在一些實施方案中,管理計算子系統(tǒng)206可確定網(wǎng)絡(luò)計算子系統(tǒng)202和服務(wù)器計算子系統(tǒng)204都可起作用,并且可將轉(zhuǎn)向配置提供給i/o轉(zhuǎn)向引擎112,以將第一i/o子系統(tǒng)302轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202并將第二i/o子系統(tǒng)304轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204。在某些實施方案中,管理計算子系統(tǒng)206可確定服務(wù)器計算子系統(tǒng)204不能起作用,并且可將轉(zhuǎn)向配置提供給i/o轉(zhuǎn)向引擎112,以將第一i/o子系統(tǒng)302和第二i/o子系統(tǒng)304轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202。在某些實施方案中,管理計算子系統(tǒng)206可確定網(wǎng)絡(luò)計算子系統(tǒng)202不能起作用,并且可將轉(zhuǎn)向配置提供給i/o轉(zhuǎn)向引擎112,以將第一i/o子系統(tǒng)302和第二i/o子系統(tǒng)304轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204。在一些實施方案中,第一i/o子系統(tǒng)302和第二i/o子系統(tǒng)304的轉(zhuǎn)向配置可以基于默認(rèn)配置,例如,基于策略。在一些實施方案中,管理計算子系統(tǒng)206可基于硬件配置(例如,一個或多個引腳或熔絲)或軟件配置(例如,軟件寄存器的數(shù)據(jù)字段)來在加電時確定第一i/o子系統(tǒng)302和第二i/o子系統(tǒng)304的轉(zhuǎn)向配置。在一些實施方案中,管理計算子系統(tǒng)206可在運行時動態(tài)地確定第一i/o子系統(tǒng)302和第二i/o子系統(tǒng)304的轉(zhuǎn)向配置。
圖4a-4c示出了具有soc102的示例性系統(tǒng)400,所述soc102被配置來包括兩個計算子系統(tǒng)。
系統(tǒng)400可包括soc102的所有部件,如參考圖3所論述的。一般來說,服務(wù)器計算子系統(tǒng)204可被配置用于提供計算服務(wù),并且網(wǎng)絡(luò)計算子系統(tǒng)202可被配置用于至少管理主機系統(tǒng)104和服務(wù)器計算子系統(tǒng)204的網(wǎng)絡(luò)流量。加速器子系統(tǒng)306可包括一個或多個加速器(例如,加速器a、b和c),所述一個或多個加速器可僅被轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202,僅被轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204或被轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202和服務(wù)器計算子系統(tǒng)204。
圖4a示出了所公開技術(shù)的一個實施方案,其包括將i/o資源和加速器轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202和服務(wù)器計算子系統(tǒng)204。
管理計算子系統(tǒng)206可在加電時或在運行時確定soc102的配置。例如,管理計算子系統(tǒng)206可確定網(wǎng)絡(luò)計算子系統(tǒng)202和服務(wù)器計算子系統(tǒng)204都起作用。在一些實施方案中,管理計算子系統(tǒng)206可基于對每個計算子系統(tǒng)的處理和存儲器資源的分配來確定網(wǎng)絡(luò)計算子系統(tǒng)202和服務(wù)器計算子系統(tǒng)204具有對稱或不對稱的配置。例如,soc102可被配置來提供高性能聯(lián)網(wǎng)服務(wù)和低性能計算服務(wù)、高性能計算服務(wù)和低性能聯(lián)網(wǎng)服務(wù),或者可被配置來針對聯(lián)網(wǎng)和計算服務(wù)都提供類似的性能。因此,在一個實現(xiàn)方式中,管理計算子系統(tǒng)206可確定用于提供給i/o轉(zhuǎn)向引擎112的轉(zhuǎn)向配置,以將適當(dāng)數(shù)量的i/o資源轉(zhuǎn)向到每個計算子系統(tǒng)。
在一些實施方案中,管理計算子系統(tǒng)206還可提供轉(zhuǎn)向配置,以將一個或多個加速器轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202和服務(wù)器計算子系統(tǒng)204。例如,在一些情況下,加速器a和b可被轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202,并且加速器c可被轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204。例如,加速器a可以是網(wǎng)絡(luò)加速器,所述網(wǎng)絡(luò)加速器可由網(wǎng)絡(luò)計算子系統(tǒng)202用來進行聯(lián)網(wǎng)加速,并且加速器b可以是加密引擎,所述加密引擎可由網(wǎng)絡(luò)計算子系統(tǒng)202用來對由網(wǎng)絡(luò)計算子系統(tǒng)202執(zhí)行的加密功能進行加速。加速器c可以是壓縮加速器,所述壓縮加速器用于對由服務(wù)器計算子系統(tǒng)204執(zhí)行的視頻壓縮或其他數(shù)據(jù)處理任務(wù)進行加速。在一些實施方案中,管理計算子系統(tǒng)206可在運行時為i/o轉(zhuǎn)向引擎112更新轉(zhuǎn)向配置,以動態(tài)地改變一定量的i/o資源和/或加速器到每個計算子系統(tǒng)的轉(zhuǎn)向。
在一些實施方案中,與服務(wù)器計算子系統(tǒng)204相比,網(wǎng)絡(luò)計算子系統(tǒng)202可具有更多的分配的計算資源,例如,soc102可被配置來提供高性能聯(lián)網(wǎng)服務(wù)和低性能計算服務(wù)。在一些實施方案中,soc102的配置設(shè)置可在引導(dǎo)時提供或存儲在持久性存儲器(未示出)中。例如,管理計算子系統(tǒng)206可基于硬件配置(例如,一個或多個引腳或熔絲)或軟件配置(例如,寄存器的數(shù)據(jù)字段)來確定soc102的配置設(shè)置。在一些實施方案中,soc102的配置設(shè)置可在運行時動態(tài)地更新。例如,soc102可在引導(dǎo)時或動態(tài)地被配置來僅包括網(wǎng)絡(luò)計算子系統(tǒng)202,僅包括服務(wù)器計算子系統(tǒng)204,或者包括網(wǎng)絡(luò)計算子系統(tǒng)202和服務(wù)器計算子系統(tǒng)204。例如,在一些情況下,網(wǎng)絡(luò)計算子系統(tǒng)多核處理器310可包括比服務(wù)器計算子系統(tǒng)多核處理器322更多數(shù)量的處理器核,比服務(wù)器計算子系統(tǒng)存儲器控制器330更多數(shù)量的網(wǎng)絡(luò)計算子系統(tǒng)存儲器控制器318或者可包括比l1/l2高速緩存324、l3高速緩存328更大的l1/l2高速緩存312、l3高速緩存316。因此,相較于服務(wù)器計算子系統(tǒng)204(例如,通過接口338),i/o轉(zhuǎn)向引擎112可將更多數(shù)量的i/o資源轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202(例如,通過接口334),以匹配分配給網(wǎng)絡(luò)計算子系統(tǒng)202的計算資源的吞吐量要求。類似地,對于高性能聯(lián)網(wǎng)配置,與服務(wù)器計算子系統(tǒng)204相比,i/o轉(zhuǎn)向引擎112可將更多數(shù)量的網(wǎng)絡(luò)加速器轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202(例如,通過接口342)以匹配聯(lián)網(wǎng)帶寬。例如,只有加密引擎可被轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204(例如,通過接口344)。在一些實施方案中,i/o轉(zhuǎn)向引擎112可包括多路復(fù)用器、解復(fù)用器或用于執(zhí)行轉(zhuǎn)向的任何其他合適的邏輯。
圖4b示出了所公開技術(shù)的一個實施方案,其包括將加速器僅轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202。
在一個實施方案中,加速器子系統(tǒng)306中的一個或多個加速器可僅被轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202(例如,通過接口342)。例如,在一些實施方案中,網(wǎng)絡(luò)計算子系統(tǒng)202可被配置來提供高性能聯(lián)網(wǎng)服務(wù),并且服務(wù)器計算子系統(tǒng)204可被配置來提供低性能計算服務(wù)。在一些情況下,網(wǎng)絡(luò)計算子系統(tǒng)202可利用多個網(wǎng)絡(luò)加速器、加密引擎、壓縮加速器和任何其他合適的加速器來提供高性能聯(lián)網(wǎng)服務(wù),并且服務(wù)器計算子系統(tǒng)204可不利用任何加速器。應(yīng)注意,圖4b示出了加速器a、b和c到網(wǎng)絡(luò)計算子系統(tǒng)202的轉(zhuǎn)向。然而,任何合適數(shù)量的加速器可被轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202,例如,僅a、僅b、僅c或者a、b和/或c的多個實例。
圖4c示出了所公開技術(shù)的一個實施方案,其包括將加速器僅轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204。
在一個實施方案中,加速器子系統(tǒng)306中的一個或多個加速器可僅被轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204(例如,通過接口344)。例如,在一些實施方案中,服務(wù)器計算子系統(tǒng)204可被配置來提供高性能計算服務(wù),并且網(wǎng)絡(luò)計算子系統(tǒng)204可被配置來提供低性能聯(lián)網(wǎng)服務(wù)。在一些情況下,服務(wù)器計算子系統(tǒng)204可利用多個加密引擎、壓縮加速器和任何其他合適的加速器來提供高性能計算服務(wù),并且網(wǎng)絡(luò)計算子系統(tǒng)202可不利用任何加速器。應(yīng)注意,圖4c示出了加速器a、b和c到服務(wù)器計算子系統(tǒng)204的轉(zhuǎn)向。然而,任何合適數(shù)量的加速器可被轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204,例如,僅b、僅c或者b和/或c的多個實例。
圖5示出了具有soc102的示例性系統(tǒng)500,所述soc102被配置來僅包括服務(wù)器計算子系統(tǒng)。
如圖5中所示,網(wǎng)絡(luò)計算子系統(tǒng)202可能不起作用。例如,soc102可被配置來僅提供服務(wù)器計算服務(wù)。在一些實施方案中,soc102可僅包括可被配置用于提供計算服務(wù)的服務(wù)器計算子系統(tǒng)204。
管理計算子系統(tǒng)206可在加電時或在運行時動態(tài)地確定soc102的配置。例如,管理計算子系統(tǒng)206可確定僅服務(wù)器計算子系統(tǒng)204起作用。在一些實施方案中,網(wǎng)絡(luò)計算子系統(tǒng)202可被去配置或被去特征。例如,soc102可被配置來僅提供高性能計算服務(wù),因此可能不會利用聯(lián)網(wǎng)服務(wù)。例如,soc102可被配置來執(zhí)行可利用計算密集型資源的數(shù)據(jù)計算或數(shù)據(jù)分析。在一些實施方案中,管理計算子系統(tǒng)206可基于對服務(wù)器計算子系統(tǒng)204進行的處理和存儲器資源的分配來確定提供給i/o轉(zhuǎn)向引擎112的轉(zhuǎn)向配置。因此,i/o轉(zhuǎn)向引擎112可基于管理計算子系統(tǒng)206提供的轉(zhuǎn)向配置將一個或多個第一i/o資源(例如,通過接口336)和一個或多個第二i/o資源(例如,通過接口338)轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204。例如,在一些情況下,與第二i/o子系統(tǒng)304相比,i/o轉(zhuǎn)向引擎112可將更多數(shù)量的以太網(wǎng)mac從第一i/o子系統(tǒng)302轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204,并且相較于第一i/o子系統(tǒng)302,i/o轉(zhuǎn)向引擎112可將更多數(shù)量的sata控制器從第二i/o子系統(tǒng)304轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204?;诠芾碛嬎阕酉到y(tǒng)114提供的轉(zhuǎn)向配置,i/o轉(zhuǎn)向引擎112可以將或可以不將加速器轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)106。在一些實施方案中,加速器子系統(tǒng)306中的一個或多個加速器可被轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204(例如,通過接口344)。例如,在一些情況下,只有加密引擎和/或壓縮加速器而不是網(wǎng)絡(luò)加速器可被轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204。
當(dāng)網(wǎng)絡(luò)計算子系統(tǒng)202不起作用時,所公開技術(shù)的一些實施方案可允許將更多數(shù)量的資源轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204。例如,soc102可被配置來提供高性能計算服務(wù)。根據(jù)一些實施方案,可使多個i/o資源從第一i/o子系統(tǒng)302和第二i/o子系統(tǒng)304轉(zhuǎn)向,以匹配服務(wù)器計算子系統(tǒng)204使用的計算資源,從而提供高性能計算服務(wù)。因此,技術(shù)的實施方案可允許更有效地利用i/o資源以增加系統(tǒng)的吞吐量。
圖6示出了具有soc102的示例性系統(tǒng)600,所述soc102被配置來僅包括網(wǎng)絡(luò)計算子系統(tǒng)202。
如圖6中所示,服務(wù)器計算子系統(tǒng)204可能不起作用。例如,soc102可被配置來僅提供聯(lián)網(wǎng)服務(wù)。在一些實施方案中,soc102可僅包括網(wǎng)絡(luò)計算子系統(tǒng)202,所述網(wǎng)絡(luò)計算子系統(tǒng)202可被配置用于至少管理主機系統(tǒng)104的網(wǎng)絡(luò)流量。
管理計算子系統(tǒng)206可在加電時確定soc102的配置。例如,管理計算子系統(tǒng)206可確定僅網(wǎng)絡(luò)計算子系統(tǒng)202起作用。在一些實施方案中,服務(wù)器計算子系統(tǒng)204可被去配置或被去特征。例如,soc102可被配置來僅提供高性能聯(lián)網(wǎng)服務(wù),因此可能不會利用計算服務(wù)。例如,soc102可被配置來執(zhí)行可利用網(wǎng)絡(luò)密集型資源的網(wǎng)絡(luò)存儲或網(wǎng)絡(luò)流量整形。在一些實施方案中,管理計算子系統(tǒng)206可基于對網(wǎng)絡(luò)計算子系統(tǒng)202進行的處理和存儲器資源的分配來確定提供給i/o轉(zhuǎn)向引擎112的轉(zhuǎn)向配置。因此,i/o轉(zhuǎn)向引擎112可將一個或多個第一i/o資源(例如,通過接口334)和一個或多個第二i/o資源(例如,通過接口340)轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202,以匹配網(wǎng)絡(luò)計算子系統(tǒng)202的吞吐量要求,來提供聯(lián)網(wǎng)服務(wù)。在一些實施方案中,i/o轉(zhuǎn)向引擎112可將加速器子系統(tǒng)306中的一個或多個加速器(例如,通過接口342)轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202,以滿足soc102提供的聯(lián)網(wǎng)服務(wù)所需的網(wǎng)絡(luò)帶寬。例如,在一些情況下,可將一個或多個網(wǎng)絡(luò)加速器、加密引擎、壓縮加速器等轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202。
當(dāng)服務(wù)器計算子系統(tǒng)204不起作用時,所公開技術(shù)的一些實施方案可允許將更多數(shù)量的資源轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202。例如,soc102可被配置來提供高性能聯(lián)網(wǎng)服務(wù)。根據(jù)一些實施方案,可使多個i/o資源從第一i/o子系統(tǒng)302和第二i/o子系統(tǒng)304轉(zhuǎn)向,以匹配網(wǎng)絡(luò)計算子系統(tǒng)202使用的計算資源,從而提供高性能聯(lián)網(wǎng)服務(wù)。此外,可將多個加速器從加速器子系統(tǒng)306轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202以提供網(wǎng)絡(luò)加速。因此,技術(shù)的實施方案可允許更有效地利用i/o資源以增加系統(tǒng)的吞吐量。
圖7示出了根據(jù)技術(shù)的某些實施方案的i/o子系統(tǒng)114的框圖。i/o子系統(tǒng)114可包括多個i/o設(shè)備,例如,第一以太網(wǎng)mac702、第二以太網(wǎng)mac704、第三以太網(wǎng)mac706、第一pcie設(shè)備708、第二pcie設(shè)備710、gpio設(shè)備712、第一sata控制器714、第二sata控制器716和i2c設(shè)備718。應(yīng)理解,i/o子系統(tǒng)114可基于soc102的配置包括更多或更少數(shù)量的設(shè)備。
在一些實施方案中,i/o子系統(tǒng)114可包括第一i/o子系統(tǒng)302和第二i/o子系統(tǒng)304,如先前參考圖3所論述的。根據(jù)所公開技術(shù)的一些實施方案,i/o子系統(tǒng)114中的一個或多個設(shè)備可被轉(zhuǎn)向到一個或多個計算子系統(tǒng),如先前參考圖1所論述的。例如,在一些實現(xiàn)方式中,可將一個或多個設(shè)備轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202,并且可將一個或多個設(shè)備轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204。在一些實施方案中,管理計算子系統(tǒng)206可基于soc102的配置將轉(zhuǎn)向配置提供給i/o轉(zhuǎn)向引擎112,以將適當(dāng)數(shù)量和類型的i/o設(shè)備轉(zhuǎn)向到一個或多個計算子系統(tǒng)。例如,在一個實施方案中,當(dāng)soc102被配置來用作網(wǎng)絡(luò)計算子系統(tǒng)202和服務(wù)器計算子系統(tǒng)204(例如,參見圖4a-4c)時,i/o轉(zhuǎn)向引擎112可將第一i/o設(shè)備組轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202并且將第二i/o設(shè)備組轉(zhuǎn)向到服務(wù)器計算子系統(tǒng)204。例如,第一i/o設(shè)備組可包括可由網(wǎng)絡(luò)計算子系統(tǒng)202使用的適當(dāng)數(shù)量和類型的i/o設(shè)備,諸如第一以太網(wǎng)mac702、第二以太網(wǎng)mac704、第一pcie設(shè)備708和第一sata控制器714。第二i/o設(shè)備組可包括可由服務(wù)器計算子系統(tǒng)204使用的適當(dāng)數(shù)量和類型的i/o設(shè)備,諸如第三以太網(wǎng)mac706、第二pcie設(shè)備710、gpio設(shè)備712、第二sata控制器716和i2c設(shè)備718。在一個實施方案中,當(dāng)soc102被配置為僅是服務(wù)器計算子系統(tǒng)(例如,參見圖5)時,i/o轉(zhuǎn)向引擎112可使可由服務(wù)器計算子系統(tǒng)204使用的適當(dāng)?shù)膇/o設(shè)備(例如,第三以太網(wǎng)mac706、第一pcie設(shè)備708、第二sata控制器716和gpio設(shè)備712)轉(zhuǎn)向。在一個實施方案中,當(dāng)soc102被配置為僅是網(wǎng)絡(luò)計算子系統(tǒng)(例如,參見圖6)時,i/o轉(zhuǎn)向引擎112可使可由網(wǎng)絡(luò)計算子系統(tǒng)202使用的適當(dāng)?shù)膇/o設(shè)備(例如,第一以太網(wǎng)mac702、第二以太網(wǎng)mac704、第一pcie設(shè)備708和第一sata控制器714)轉(zhuǎn)向。
圖8示出了根據(jù)技術(shù)的某些實施方案的i/o轉(zhuǎn)向引擎112的框圖。i/o轉(zhuǎn)向引擎112可包括接口單元802和轉(zhuǎn)向單元804。在技術(shù)的某些實施方案中,i/o轉(zhuǎn)向引擎112可允許多個i/o資源通過由網(wǎng)絡(luò)計算子系統(tǒng)高速緩存一致結(jié)構(gòu)314和服務(wù)器計算子系統(tǒng)高速緩存一致結(jié)構(gòu)326表示的物理層連接到網(wǎng)絡(luò)計算子系統(tǒng)202和服務(wù)器計算子系統(tǒng)204。
接口單元802可包括與soc102的不同部件的各種接口。例如,接口單元802可與第一i/o子系統(tǒng)302、第二i/o子系統(tǒng)304、加速器子系統(tǒng)306、網(wǎng)絡(luò)計算子系統(tǒng)高速緩存一致結(jié)構(gòu)314、服務(wù)器計算子系統(tǒng)高速緩存一致結(jié)構(gòu)326和管理計算子系統(tǒng)206對接。
轉(zhuǎn)向單元804可包括轉(zhuǎn)向邏輯,所述轉(zhuǎn)向邏輯用于將i/o子系統(tǒng)114中的一個或多個i/o資源以及加速器子系統(tǒng)306中的一個或多個加速器轉(zhuǎn)向或引導(dǎo)到一個或多個計算子系統(tǒng)。例如,在一些實施方案中,轉(zhuǎn)向單元804可包括轉(zhuǎn)向邏輯,所述轉(zhuǎn)向邏輯用于將第一i/o子系統(tǒng)302中的多個第一i/o資源中的至少一個轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)高速緩存一致結(jié)構(gòu)314或服務(wù)器計算子系統(tǒng)高速緩存一致結(jié)構(gòu)326,并用于將第二i/o子系統(tǒng)304中的多個第二i/o資源中的至少一個轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)高速緩存一致結(jié)構(gòu)314或服務(wù)器計算子系統(tǒng)高速緩存一致結(jié)構(gòu)326。轉(zhuǎn)向單元804還可被配置來將加速器子系統(tǒng)306中的一個或多個加速器轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202或服務(wù)器計算子系統(tǒng)204。在一些實施方案中,可使用轉(zhuǎn)向基體、交叉開關(guān)、網(wǎng)格、多路復(fù)用器、解復(fù)用器等來實現(xiàn)轉(zhuǎn)向邏輯。然而,可能存在轉(zhuǎn)向邏輯的其他實現(xiàn)方式。在一些實施方案中,轉(zhuǎn)向單元804可基于管理計算子系統(tǒng)206提供的轉(zhuǎn)向配置使一個或多個i/o資源轉(zhuǎn)向。
圖9示出了根據(jù)所公開技術(shù)的某些實施方案的管理計算子系統(tǒng)206的框圖。管理計算子系統(tǒng)206可包括多核處理器902、l1/l2高速緩存904、網(wǎng)絡(luò)接口單元906、專用存儲器908、外圍設(shè)備910和計算機可讀存儲介質(zhì)912。
多核處理器902可包括兩個或更多個處理器核,諸如
網(wǎng)絡(luò)接口單元906可允許管理計算子系統(tǒng)206連接到網(wǎng)絡(luò)。例如,網(wǎng)絡(luò)接口單元906可包括以太網(wǎng)mac(媒體訪問控制),所述以太網(wǎng)mac(媒體訪問控制)能夠使管理計算子系統(tǒng)206連接到諸如以太網(wǎng)的網(wǎng)絡(luò)。在一些情況下,以太網(wǎng)mac可提供以太網(wǎng)端口以對接到用于連接到網(wǎng)絡(luò)的phy(物理層)設(shè)備。在一些實施方案中,管理計算子系統(tǒng)206可通過網(wǎng)絡(luò)與外部實體或系統(tǒng)進行通信,以確定虛擬服務(wù)器實例的工作負(fù)載,以配置處理和存儲器資源。
專用存儲器908可包括專門供管理計算子系統(tǒng)206使用的存儲器。專用存儲器908可包括諸如隨機存取存儲器(例如,sram或dram)的易失性存儲器。例如,管理計算子系統(tǒng)206可使用專用存儲器908來臨時存儲數(shù)據(jù)。
外圍設(shè)備910可包括管理計算子系統(tǒng)206的專用外圍設(shè)備。在一些實施方案中,專用外圍設(shè)備910中的一些可包括用于對soc102的不同子系統(tǒng)進行重新引導(dǎo)和功率管理的設(shè)備。例如,外圍設(shè)備910可包括可信管理模塊,所述可信管理模塊包括引導(dǎo)固件,所述引導(dǎo)固件可在上電時執(zhí)行以在開啟其他子系統(tǒng)之前建立信任根。在一些實施方案中,可通過電壓操縱、時鐘操縱或任何其他合適的方法來提供功率管理。
在一些實施方案中,管理計算子系統(tǒng)206可被配置為在整個soc102冷上電時首先運行。在一些情況下,管理計算子系統(tǒng)206可首先上電,以在其他子系統(tǒng)上電之前為其建立信任根。例如,網(wǎng)絡(luò)計算子系統(tǒng)202和服務(wù)器計算子系統(tǒng)204的引導(dǎo)進程可在管理計算子系統(tǒng)206的核心引導(dǎo)下被分層地考慮。在一些實施方案中,隨后將在網(wǎng)絡(luò)計算子系統(tǒng)202和服務(wù)器計算子系統(tǒng)204上運行的軟件可被管理計算子系統(tǒng)206認(rèn)證為已使用與主機系統(tǒng)104或由主機系統(tǒng)104提供的具體服務(wù)相關(guān)聯(lián)的專用密鑰進行了簽名。這可允許網(wǎng)絡(luò)計算子系統(tǒng)202和服務(wù)器計算子系統(tǒng)204兩個進程通過可信和獨立的引導(dǎo)裝載程序進行引導(dǎo)。
在一些實施方案中,管理計算子系統(tǒng)206可用單獨的復(fù)位線來進行復(fù)位/重新引導(dǎo),而不影響網(wǎng)絡(luò)計算子系統(tǒng)202和服務(wù)器計算子系統(tǒng)204二者的有效操作。
圖10示出了根據(jù)所公開技術(shù)的一些實施方案的加速器子系統(tǒng)306的框圖。加速器子系統(tǒng)306可包括多個加速器,諸如網(wǎng)絡(luò)加速器1002、加密引擎1004和壓縮加速器1006。應(yīng)理解,根據(jù)所公開技術(shù)的實施方案,加速器子系統(tǒng)306可包括更多或更少的加速器以及可被轉(zhuǎn)向到多于一個計算子系統(tǒng)的各種類型的加速器。
網(wǎng)絡(luò)加速器1002可用于提供網(wǎng)絡(luò)加速。例如,在一些實現(xiàn)方式中,網(wǎng)絡(luò)加速器1002可包括硬件和軟件的組合,以(例如)通過使用高速緩存、數(shù)據(jù)壓縮、數(shù)據(jù)復(fù)制或任何其他合適的技術(shù)來提供帶寬優(yōu)化?;谌鐓⒖紙D4a-4c、圖5和圖6所論述的soc102的配置,可將一個或多個網(wǎng)絡(luò)加速器1002轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202和/或服務(wù)器計算子系統(tǒng)204。
加密引擎1004可用于提供(例如)加密功能的硬件加速。例如,在一些實現(xiàn)方式中,加密引擎1004可包括硬件和軟件的組合,以(例如)通過使用高速緩存、數(shù)據(jù)壓縮、數(shù)據(jù)復(fù)制或任何其他合適的技術(shù)來提供硬件加速。基于如參考圖4a-4c、圖5和圖6所論述的soc102的配置,可將一個或多個加密引擎1004轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202和/或服務(wù)器計算子系統(tǒng)204。
壓縮加速器1006可用于為計算密集型應(yīng)用提供加速。例如,在一些實現(xiàn)方式中,壓縮加速器1006可包括硬件和軟件的組合,以使用任何合適的技術(shù)來提供加速?;谌鐓⒖紙D4a-4c、圖5和圖6所論述的soc102的配置,可將一個或多個壓縮加速器1006轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202和/或服務(wù)器計算子系統(tǒng)204。
圖11示出了第一i/o子系統(tǒng)302的一些部件。第一i/o子系統(tǒng)302可包括總線接口單元1102、網(wǎng)絡(luò)接口單元1104和i/o外圍設(shè)備單元1106。在一些實施方案中,第一i/o子系統(tǒng)302可以是i/o子系統(tǒng)114的一部分,如先前參考圖7所論述的。
總線接口單元1102可包括用于與內(nèi)部或外部部件進行通信的一個或多個總線接口。例如,總線接口單元1102可包括與主機系統(tǒng)104進行通信的第一接口,例如,接口346。在一些實施方案中,第一接口可以是pcie接口。例如,總線接口單元1102可包括一個或多個pcie端口以連接到其他pcie端口??偩€接口單元1102可包括根復(fù)合體(rc)端口和端點端口(ep)。在一些實施方案中,網(wǎng)絡(luò)計算子系統(tǒng)202可使用接口346通過第一i/o子系統(tǒng)302中的pcie端口和主機系統(tǒng)104中的pcie端口與主機系統(tǒng)104進行通信??偩€接口單元1102可包括與i/o轉(zhuǎn)向引擎112連接(例如,參考圖8與接口單元802連接)的第二接口。例如,i/o轉(zhuǎn)向引擎112可使用第二接口將第一i/o子系統(tǒng)302中的第一i/o資源連接到網(wǎng)絡(luò)計算子系統(tǒng)202或服務(wù)器計算子系統(tǒng)204。
網(wǎng)絡(luò)接口單元1104可包括連接到網(wǎng)絡(luò)的第三接口。在一些實施方案中,網(wǎng)絡(luò)接口單元1104可包括一個或多個以太網(wǎng)mac(例如,10/25/40/50gb/s)以連接到以太網(wǎng)網(wǎng)絡(luò)。在一些情況下,以太網(wǎng)mac可提供以太網(wǎng)端口,所述以太網(wǎng)端口用于對接到phy(物理層)設(shè)備以連接到網(wǎng)絡(luò)。
i/o外圍設(shè)備單元1106可包括一個或多個外圍設(shè)備。例如,i/o外圍設(shè)備單元1106可包括一個或多個外圍設(shè)備,諸如uart、i2c、gpio、sata控制器、spi端口、serdes(串行化-解串行化)接口等。
圖12示出了第二i/o子系統(tǒng)304的一些部件。第二i/o子系統(tǒng)304可包括總線接口單元1202、網(wǎng)絡(luò)接口單元1204和i/o外圍設(shè)備單元1206。。在一些實施方案中,第二i/o子系統(tǒng)304可以是i/o子系統(tǒng)114的一部分,如先前參考圖7所論述的。
總線接口單元1202可包括用于與內(nèi)部或外部部件進行通信的一個或多個總線接口。例如,總線接口單元1202可包括與主機系統(tǒng)104進行通信的第一接口,例如,接口348。在一些實施方案中,第一接口可以是pcie接口。例如,總線接口單元1202可包括一個或多個pcie端口以連接到其他pcie端口??偩€接口單元1202可包括根復(fù)合體(rc)端口和端點端口(ep)。在一些實施方案中,服務(wù)器計算子系統(tǒng)204可使用接口348通過第二i/o子系統(tǒng)304中的pcie端口和主機系統(tǒng)104中的pcie端口與主機系統(tǒng)104進行通信??偩€接口單元1202可包括與i/o轉(zhuǎn)向引擎112連接(例如,參考圖8與接口單元802連接)的第二接口。例如,i/o轉(zhuǎn)向引擎112可使用第二接口將第二i/o子系統(tǒng)304中的第二i/o資源連接到網(wǎng)絡(luò)計算子系統(tǒng)202或服務(wù)器計算子系統(tǒng)204。
網(wǎng)絡(luò)接口單元1204可包括連接到網(wǎng)絡(luò)的第三接口。在一些實施方案中,網(wǎng)絡(luò)接口單元1204可包括一個或多個以太網(wǎng)mac(例如,10/25/40/50gb/s)以連接到以太網(wǎng)網(wǎng)絡(luò)。在一些情況下,以太網(wǎng)mac可提供以太網(wǎng)端口,所述以太網(wǎng)端口用于對接到phy(物理層)設(shè)備以連接到網(wǎng)絡(luò)。
i/o外圍設(shè)備單元1206可包括一個或多個外圍設(shè)備。例如,i/o外圍設(shè)備單元1206可包括一個或多個外圍設(shè)備,諸如uart、i2c、gpio、sata控制器、spi端口、serdes(串行化-解串行化)接口等。在一些實施方案中,i/o外圍設(shè)備單元1206可包括與參考圖11所論述的i/o外圍設(shè)備單元1006不同類型和數(shù)量的i/o設(shè)備。例如,在一些情況下,與i/o外圍設(shè)備單元1106相比,i/o外圍設(shè)備單元1206可包括更多數(shù)量的sata控制器。在一些情況下,僅i/o外圍設(shè)備單元1206可包括gpio,并且僅i/o外圍設(shè)備單元1106可包括uart。
圖13示出了共享資源子系統(tǒng)308的一些部件。在技術(shù)的實施方案中,共享資源子系統(tǒng)308可包括部件,所述部件可不包括進程狀態(tài)。共享資源子系統(tǒng)308可包括存儲器模塊1302、隨機生成器模塊1304、通信郵箱1306和高速暫存存儲器模塊1308。
存儲器模塊1302可包括諸如閃存的非易失性存儲器存儲設(shè)備。例如,存儲器模塊1302可包括嵌入式多媒體控制器(emmc)或安全數(shù)字(sd)以提供低級閃存管理。在一些實施方案中,存儲器模塊1302可用于存儲控制代碼,例如,bios(基本輸入/輸出系統(tǒng))、引導(dǎo)裝載程序等。例如,存儲器模塊1302可包括可被兩個計算子系統(tǒng)共享的代碼。
隨機生成器模塊1304可被配置來生成隨機數(shù)或符號的序列。例如,隨機數(shù)可用于加密應(yīng)用,諸如數(shù)據(jù)加密或任何此類應(yīng)用。在一些實施方案中,隨機生成器模塊1304可用于生成隨機數(shù)或序列,所述隨機數(shù)或序列可由管理計算子系統(tǒng)206在上電或重新引導(dǎo)之后使用,以在將每個計算子系統(tǒng)加電之前對每個計算子系統(tǒng)進行認(rèn)證。
通信郵箱1306可用于促進與兩個子系統(tǒng)相關(guān)聯(lián)的不同進程之間的通信。例如,通信郵箱1306可用作進程間通信模塊,所述進程間通信模塊用于交換諸如消息傳送、同步、共享存儲器和遠程過程調(diào)用(rpc)的各種功能的數(shù)據(jù)。
高速暫存存儲器模塊1308可用于臨時存儲可由兩個子系統(tǒng)使用的數(shù)據(jù)。在一些實施方案中,高速暫存存儲器模塊1308可包括高速存儲器(例如,2mbsram),以存儲用于快速檢索的少量數(shù)據(jù),例如,指令或中間值。
圖14示出了根據(jù)技術(shù)的一個或多個方面的流程圖1400。過程1400(或本文描述的任何其他過程,或其變型和/或組合)中的一些或全部可在配置有可執(zhí)行指令的一個或多個計算機系統(tǒng)的控制下執(zhí)行,并且可作為共同地在一個或多個處理器上執(zhí)行的代碼(例如,固件、可執(zhí)行指令、一個或多個計算機程序或者一個或多個應(yīng)用)或者通過硬件或其組合來實現(xiàn)。代碼可(例如)以計算機程序的形式存儲在計算機可讀存儲介質(zhì)上,所述計算機程序可包括可由一個或多個處理器執(zhí)行的多個指令。計算機可讀存儲介質(zhì)可以是非暫時性的。
在步驟1402處,多個計算子系統(tǒng)中的一個或多個計算子系統(tǒng)可在片上系統(tǒng)(soc)上加電。例如,在一些實施方案中,網(wǎng)絡(luò)計算子系統(tǒng)202和服務(wù)器計算子系統(tǒng)204可被加電,其中服務(wù)器計算子系統(tǒng)204被配置來提供計算服務(wù),并且網(wǎng)絡(luò)計算子系統(tǒng)202被配置來至少管理主機系統(tǒng)104和服務(wù)器計算子系統(tǒng)202的網(wǎng)絡(luò)流量。例如,重新參照圖3,管理計算子系統(tǒng)206可使網(wǎng)絡(luò)計算子系統(tǒng)202和服務(wù)器計算子系統(tǒng)204都加電。在一些實施方案中,管理計算子系統(tǒng)206可基于soc102的配置在加電之后將處理器和存儲器資源分配給每個計算子系統(tǒng)。例如,在一些情況下,soc102可被配置來提供高性能聯(lián)網(wǎng)服務(wù)、高性能計算服務(wù)、僅聯(lián)網(wǎng)服務(wù)或僅服務(wù)器服務(wù)。
在步驟1404處,確定轉(zhuǎn)向配置以將第一i/o子系統(tǒng)中的多個第一i/o資源中的至少一個轉(zhuǎn)向到多個計算子系統(tǒng)中的一個或多個計算子系統(tǒng),并且將第二i/o子系統(tǒng)中的多個第二i/o資源中的至少一個轉(zhuǎn)向到多個計算子系統(tǒng)中的一個或多個計算子系統(tǒng)。重新參照圖3,管理計算子系統(tǒng)206可確定轉(zhuǎn)向配置,以將第一i/o子系統(tǒng)302中的多個第一i/o資源中的至少一個轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202或服務(wù)器計算子系統(tǒng)204并且將第二i/o子系統(tǒng)304中的多個第二i/o資源中的至少一個轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202或服務(wù)器計算子系統(tǒng)204。在一些實施方案中,管理計算子系統(tǒng)206可確定轉(zhuǎn)向配置,以將一個或多個加速器轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202或服務(wù)器計算子系統(tǒng)204,如先前參考圖4a-4c、圖5和圖6所論述的。如參考圖3所論述的,在一些情況下,管理計算子系統(tǒng)206可確定轉(zhuǎn)向配置以將適當(dāng)數(shù)量和類型的i/o資源轉(zhuǎn)向到每個計算子系統(tǒng)。例如,在一些情況下,與服務(wù)器計算子系統(tǒng)204相比,可將更多數(shù)量的i/o資源和加速器轉(zhuǎn)向到網(wǎng)絡(luò)計算子系統(tǒng)202。
在步驟1406處,將轉(zhuǎn)向配置提供給耦合到第一i/o子系統(tǒng)和第二i/o子系統(tǒng)的i/o轉(zhuǎn)向引擎。重新參照圖3,管理計算子系統(tǒng)206可將轉(zhuǎn)向配置提供給耦合到第一i/o子系統(tǒng)302和第二i/o子系統(tǒng)304的i/o轉(zhuǎn)向引擎112。在一些實施方案中,轉(zhuǎn)向引擎112可將適當(dāng)數(shù)量和類型的i/o資源和加速器轉(zhuǎn)向到多個計算子系統(tǒng)(例如,網(wǎng)絡(luò)計算子系統(tǒng)202和服務(wù)器計算子系統(tǒng)204)。
所公開技術(shù)的實施方案可提供將i/o資源和加速器轉(zhuǎn)向到soc上的多于一個計算子系統(tǒng)的靈活性。更好地利用soc上的i/o資源和加速器的能力可使得主機系統(tǒng)為各種計算服務(wù)提供改進的網(wǎng)絡(luò)和存儲帶寬。
圖15出了根據(jù)至少一個示例性實施方案的本文描述的特征和系統(tǒng)的示例性架構(gòu),其包括通過一個或多個網(wǎng)絡(luò)連接的一個或多個服務(wù)提供商計算機和/或用戶設(shè)備。圖1-13中所論述的設(shè)備可使用圖15中描述的計算設(shè)備的一個或多個部件,或者可表示圖15中描述的一個或多個計算設(shè)備。在架構(gòu)1500中,一個或多個用戶1502可通過一個或多個網(wǎng)絡(luò)1508利用用戶計算設(shè)備1504(1)-(n)(共同稱為用戶設(shè)備1504)來訪問應(yīng)用1506(例如,web瀏覽器或移動設(shè)備應(yīng)用)。在一些方面,應(yīng)用1506可由計算資源服務(wù)或服務(wù)提供商托管、管理和/或提供。一個或多個服務(wù)提供商計算機1510可提供本機應(yīng)用,所述本機應(yīng)用被配置來在用戶1502可以與之交互的用戶設(shè)備1504上運行。在一些示例中,服務(wù)提供商計算機1510可提供計算資源,諸如但不限于:客戶端實體、低延遲數(shù)據(jù)存儲、持久數(shù)據(jù)存儲、數(shù)據(jù)訪問、管理、虛擬化、基于云的軟件解決方案、電子內(nèi)容性能管理等。服務(wù)提供商計算機1510還可操作來向用戶1502提供web托管、計算機應(yīng)用開發(fā)和/或?qū)崿F(xiàn)平臺、前述描述的組合等。在一些示例中,服務(wù)提供商計算機1510可與一個或多個第三方計算機1512進行通信。
在一些示例中,網(wǎng)絡(luò)1508可包括許多不同類型的網(wǎng)絡(luò)(諸如有線網(wǎng)絡(luò)、互聯(lián)網(wǎng)、無線網(wǎng)絡(luò)、蜂窩網(wǎng)絡(luò)和其他專用和/或公共網(wǎng)絡(luò))中的任何一種或組合。盡管所示出的示例表示用戶1502通過網(wǎng)絡(luò)1508訪問應(yīng)用1506,但是所描述的技術(shù)可同樣適用于以下情況:其中用戶1502通過固定電話、通過信息亭或以任何其他方式經(jīng)由用戶設(shè)備1504與服務(wù)提供商計算機1510進行交互。還應(yīng)注意,所描述的技術(shù)可應(yīng)用于其他客戶端/服務(wù)器布置(例如,機頂盒等)以及非客戶端/服務(wù)器布置(例如,本地存儲的應(yīng)用等)中。
如以上所簡要描述的,應(yīng)用1506可允許用戶1502與服務(wù)提供商計算機1510進行交互,以訪問網(wǎng)站內(nèi)容(例如,網(wǎng)頁、音樂、視頻等)??赡懿贾迷诜?wù)器群集中或作為服務(wù)器場的服務(wù)提供商計算機1510可托管應(yīng)用1506和/或基于云的軟件服務(wù)。其他服務(wù)器架構(gòu)也可用于托管應(yīng)用1506。應(yīng)用1506可能能夠處理來自許多用戶1502的請求,并且作為響應(yīng)來服務(wù)各種項目網(wǎng)頁。應(yīng)用1506可提供支持用戶交互的任何類型的網(wǎng)站,包括社交網(wǎng)站、在線零售商、信息站點、博客站點、搜索引擎站點、新聞和娛樂站點等。如上所述,所描述的技術(shù)可類似地在應(yīng)用1506之外得到實現(xiàn),諸如使用在用戶設(shè)備1404上運行的其他應(yīng)用。
用戶設(shè)備1504可以是任何類型的計算設(shè)備,諸如但不限于:移動電話、智能手機、個人數(shù)字助理(pda)、膝上型計算機、臺式計算機、瘦客戶端設(shè)備、平板pc、電子書(e-book)閱讀器等。在一些示例中,用戶設(shè)備1504可通過網(wǎng)絡(luò)1508或通過其他網(wǎng)絡(luò)連接與服務(wù)提供商計算機1510進行通信。此外,用戶設(shè)備1504可以是由服務(wù)提供商計算機1510管理、控制的分布式系統(tǒng)的一部分,或以其他方式是服務(wù)提供商計算機1510的一部分的分布式系統(tǒng)的一部分(例如,與服務(wù)提供商計算機1510集成的控制臺設(shè)備)。
在一個說明性配置中,用戶設(shè)備1504可包括至少一個存儲器1514和一個或多個處理單元(或處理器)1516。處理器1516可在硬件、計算機可執(zhí)行指令、固件或其組合中適當(dāng)?shù)貙崿F(xiàn)。處理器1516的計算機可執(zhí)行指令或固件實現(xiàn)方式可包括以任何合適的編程語言編寫的用于執(zhí)行所描述的各種功能的計算機可執(zhí)行或機器可執(zhí)行指令。用戶設(shè)備1504還可包括用于提供和/或記錄與用戶設(shè)備1504相關(guān)聯(lián)的地理位置信息的地理定位設(shè)備(例如,全球定位系統(tǒng)(gps)設(shè)備等)。
存儲器1514可存儲可在處理器1516上加載和執(zhí)行的程序指令,以及在執(zhí)行這些程序期間產(chǎn)生的數(shù)據(jù)。根據(jù)用戶設(shè)備1504的配置和類型,存儲器1514可以是易失性的(諸如隨機存取存儲器(ram))和/或非易失性的(諸如只讀存儲器(rom)、閃存等)。用戶設(shè)備1504還可包括另外的可移動存儲器和/或不可移動存儲器,其包括但不限于磁存儲設(shè)備、光盤和/或帶存儲設(shè)備。磁盤驅(qū)動器和其相關(guān)聯(lián)的計算機可讀介質(zhì)可提供對計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其他用于計算設(shè)備的數(shù)據(jù)的非易失性存儲。在一些實現(xiàn)方式中,存儲器1514可包括多種不同類型的存儲器,諸如靜態(tài)隨機存取存儲器(sram)、動態(tài)隨機存取存儲器(dram)或rom。
轉(zhuǎn)到存儲器1514的更詳細的內(nèi)容,存儲器1514可包括操作系統(tǒng)和用于實現(xiàn)本文所公開的特征的一個或多個應(yīng)用程序或服務(wù)(至少包括用戶提供的輸入元件或電子服務(wù)網(wǎng)頁,諸如通過瀏覽器應(yīng)用1506或?qū)S脩?yīng)用(例如,智能手機應(yīng)用、平板應(yīng)用等))。瀏覽器應(yīng)用1506可被配置來接收、存儲和/或顯示用于與服務(wù)提供商計算機1510進行交互的網(wǎng)站或其他接口。此外,存儲器1514可存儲訪問憑證和/或其他用戶信息(諸如但不限于用戶id、密碼和/或其他用戶信息)。在一些示例中,用戶信息可包括用于認(rèn)證帳戶訪問請求的信息,諸如但不限于設(shè)備id、小型文本文件(cookie)、ip地址、位置等。此外,用戶信息可包括用戶提供的對安全問題的響應(yīng)或用戶設(shè)備1504獲得的地理位置。
在一些方面,服務(wù)提供商計算機1510還可以是任何類型的計算設(shè)備,諸如但不限于:移動電話、智能手機、個人數(shù)字助理(pda)、膝上型計算機、臺式計算機、服務(wù)器計算機、瘦客戶端設(shè)備、平板pc等。此外,應(yīng)注意,在一些實施方案中,服務(wù)提供商計算機1510由實現(xiàn)在托管的計算環(huán)境中的一個或多個虛擬機來執(zhí)行。托管的計算環(huán)境可包括一個或多個快速提供和釋放的計算資源,所述計算資源可包括計算、聯(lián)網(wǎng)和/或存儲設(shè)備。托管的計算環(huán)境還可被稱為云計算環(huán)境。在一些示例中,服務(wù)提供商計算機1510可通過網(wǎng)絡(luò)1508或通過其他網(wǎng)絡(luò)連接與用戶設(shè)備1504和/或其他服務(wù)提供商進行通信。服務(wù)提供商計算機1510可包括一個或多個服務(wù)器,可能布置在群集中,作為服務(wù)器場,或者作為彼此不相關(guān)聯(lián)的單個服務(wù)器。這些服務(wù)器可被配置來將本文描述的關(guān)鍵字分類和評級特征服務(wù)實現(xiàn)為集成的分布式計算環(huán)境的一部分。
在一個說明性配置中,服務(wù)提供商計算機1510可包括至少一個存儲器1518和一個或多個處理單元(或處理器)1520。處理器1520可在硬件、計算機可執(zhí)行指令、固件或其組合中適當(dāng)?shù)貙崿F(xiàn)。處理器1520的計算機可執(zhí)行指令或固件實現(xiàn)方式可包括以任何合適的編程語言編寫的用于執(zhí)行所描述的各種功能的計算機可執(zhí)行或機器可執(zhí)行指令。
在一些情況下,硬件處理器1520可以是單核處理器或多核處理器。多核處理器可包括同一個處理器內(nèi)的多個處理單元。在一些實施方案中,多核處理器可共享某些資源,諸如多核之間的總線和第二或第三級高速緩存。在一些情況下,單核或多核處理器中的每個核還可包括多個執(zhí)行中的邏輯處理器(或線程)。在這種(支持多個邏輯處理器的)核中,還可共享執(zhí)行流水線的若干級以及還有較低級的高速緩存。
存儲器1518可存儲可在處理器1520上加載和執(zhí)行的程序指令,以及在執(zhí)行這些程序期間產(chǎn)生的數(shù)據(jù)。根據(jù)服務(wù)提供商計算機1510的配置和類型,存儲器1518可以是易失性的(諸如ram)和/或非易失性的(諸如rom、閃存等)。服務(wù)提供商計算機1510或服務(wù)器還可包括附加存儲設(shè)備1522,所述附加存儲設(shè)備1522可包括可移動存儲設(shè)備和/或不可移動存儲設(shè)備。附加存儲設(shè)備1522可包括但不限于磁存儲設(shè)備、光盤和/或帶存儲設(shè)備。磁盤驅(qū)動器和其相關(guān)聯(lián)的計算機可讀介質(zhì)可提供對計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其他用于計算設(shè)備的數(shù)據(jù)的非易失性存儲。在一些實現(xiàn)方式中,存儲器1518可包括多種不同類型的存儲器,諸如sram、dram或rom。
可移動和不可移動的存儲器1518、附加存儲設(shè)備1522均為計算機可讀存儲介質(zhì)的示例。例如,計算機可讀存儲介質(zhì)可包括以任何方法或技術(shù)實現(xiàn)的用于存儲諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)的信息的易失性或非易失性的、可移動或不可移動的介質(zhì)。存儲器1518和附加存儲設(shè)備1522均為計算機存儲介質(zhì)的示例??纱嬖谟诜?wù)提供商計算機1510中的另外類型的計算機存儲介質(zhì)可包括但不限于:pram、sram、dram、ram、rom、eeprom、閃存或其他存儲器技術(shù)、cd-rom、dvd或其他光存儲設(shè)備、磁帶盒、磁帶、磁盤存儲設(shè)備或其他磁存儲設(shè)備或者可用來存儲期望的信息并且可由服務(wù)提供商計算機1510訪問的任何其他介質(zhì)。任何上述介質(zhì)的組合也應(yīng)包括在計算機可讀介質(zhì)的范圍內(nèi)。
可替代地,計算機可讀通信介質(zhì)可包括計算機可讀指令、程序模塊或在諸如載波或其他傳輸?shù)臄?shù)據(jù)信號內(nèi)傳輸?shù)钠渌麛?shù)據(jù)。然而,如本文所使用的,計算機可讀存儲介質(zhì)不包括計算機可讀通信介質(zhì)。
服務(wù)提供商計算機1510還可包含通信連接1524,所述通信連接1524允許服務(wù)提供商計算機1510與存儲的數(shù)據(jù)庫、另一計算設(shè)備或服務(wù)器、用戶終端和/或網(wǎng)絡(luò)1508上的其他設(shè)備進行通信。服務(wù)提供商計算機1510還可包括i/o設(shè)備1526,諸如鍵盤、鼠標(biāo)、筆、語音輸入設(shè)備、觸摸輸入設(shè)備、顯示器、揚聲器、打印機等。
存儲器1518可包括操作系統(tǒng)1528、一個或多個數(shù)據(jù)存儲區(qū)1530和/或用于實現(xiàn)本文所公開的特征的一個或多個應(yīng)用程序或服務(wù)(任選地包括i/o轉(zhuǎn)向引擎1532、資源模塊1540和多個計算子系統(tǒng)模塊1542)。在一些實施方案中,資源模塊1540可包括多個i/o資源和加速器。在一些實施方案中,i/o轉(zhuǎn)向引擎1532可類似于i/o轉(zhuǎn)向引擎112。多個計算子系統(tǒng)模塊1542可包括網(wǎng)絡(luò)計算子系統(tǒng)202和服務(wù)器計算子系統(tǒng)204。本文描述的模塊可以是軟件模塊、硬件模塊或其合適的組合。如果模塊是軟件模塊,那么模塊可體現(xiàn)在非暫時性計算機可讀介質(zhì)上,并且由本文描述的任何計算機系統(tǒng)中的處理器進行處理。應(yīng)注意,所描述的進程和架構(gòu)可在任何用戶交互之前以實時或異步模式來執(zhí)行。模塊可以圖15中所提出的方式進行配置,和/或本文描述的功能可由存在的一個或多個模塊提供,因為本文描述的單獨的模塊和/或模塊功能可遍布在多個模塊上。
圖16示出了根據(jù)各種實施方案的用于實現(xiàn)各方面的示例性環(huán)境1600的方面。如將了解的,盡管出于解釋目的使用基于web的環(huán)境,但是可視情況使用不同環(huán)境來實現(xiàn)各種實施方案。環(huán)境包括電子客戶端設(shè)備1602,所述電子客戶端設(shè)備1602可包括可操作來在適當(dāng)網(wǎng)絡(luò)1604上發(fā)送和接收請求、消息或信息并且將信息傳送回設(shè)備用戶的任何適當(dāng)設(shè)備。此類客戶端設(shè)備的實例包括個人計算機、手機、手持式消息傳輸設(shè)備、膝上型計算機、機頂盒、個人數(shù)據(jù)助理、電子書閱讀器等。網(wǎng)絡(luò)可包括任何適當(dāng)?shù)木W(wǎng)絡(luò),所述適當(dāng)?shù)木W(wǎng)絡(luò)包括內(nèi)聯(lián)網(wǎng)、互聯(lián)網(wǎng)、蜂窩網(wǎng)絡(luò)、局域網(wǎng)或任何其他此類網(wǎng)絡(luò)或其組合。用于這種系統(tǒng)的部件可至少部分地取決于選定的網(wǎng)絡(luò)和/或環(huán)境的類型。用于通過這種網(wǎng)絡(luò)進行通信的協(xié)議和部件是眾所周知的,且本文將不再詳細論述。通過網(wǎng)絡(luò)進行的通信可通過有線或無線的連接及其組合來實現(xiàn)。在這個實例中,網(wǎng)絡(luò)包括互聯(lián)網(wǎng),因為環(huán)境包括用于接收請求并且響應(yīng)于所述請求而服務(wù)內(nèi)容的web服務(wù)器1606,然而對于其他網(wǎng)絡(luò)來說,可使用服務(wù)類似目的的替代設(shè)備,如本領(lǐng)域普通技術(shù)人員所明白的。
說明性環(huán)境包括至少一個應(yīng)用服務(wù)器1608和數(shù)據(jù)存儲區(qū)1610。應(yīng)理解,可存在可鏈接起來或以其他方式來配置的若干應(yīng)用服務(wù)器、層或其他元件、進程或部件,所述應(yīng)用服務(wù)器、層或其他元件、進程或部件可交互來執(zhí)行諸如從適當(dāng)?shù)臄?shù)據(jù)存儲區(qū)獲得數(shù)據(jù)的任務(wù)。如本文所使用的,術(shù)語“數(shù)據(jù)存儲區(qū)”指代能夠存儲、訪問和檢索數(shù)據(jù)的任何設(shè)備或設(shè)備組合,所述設(shè)備或設(shè)備組合可包括任何標(biāo)準(zhǔn)、分布式或集群式環(huán)境中的任何組合和任何數(shù)目的數(shù)據(jù)服務(wù)器、數(shù)據(jù)庫、數(shù)據(jù)存儲設(shè)備和數(shù)據(jù)存儲介質(zhì)。應(yīng)用服務(wù)器可包括任何適當(dāng)?shù)挠布蛙浖?,所述硬件和軟件視?zhí)行客戶端設(shè)備的一個或多個應(yīng)用的方面的需要與數(shù)據(jù)存儲區(qū)集成、處理應(yīng)用的大多數(shù)數(shù)據(jù)訪問和業(yè)務(wù)邏輯。應(yīng)用服務(wù)器提供與數(shù)據(jù)存儲區(qū)協(xié)作的訪問控制服務(wù),并且能夠生成有待于傳送到用戶的諸如文本、圖形、音頻和/或視頻的內(nèi)容,在這個實例中,所述內(nèi)容可以超文本標(biāo)記語言(“html”)、可擴展標(biāo)記語言(“xml”)或另一種適當(dāng)結(jié)構(gòu)化語言的形式由web服務(wù)器向用戶提供。所有請求和響應(yīng)的處理以及客戶端設(shè)備1602與應(yīng)用服務(wù)器1608之間的內(nèi)容遞送可由web服務(wù)器來處理。應(yīng)理解,web服務(wù)器和應(yīng)用服務(wù)器不是必要的,并且僅僅是示例性部件,因為本文所論述的結(jié)構(gòu)化代碼可在如本文其他地方所論述的任何適當(dāng)?shù)脑O(shè)備或主機上執(zhí)行。
數(shù)據(jù)存儲區(qū)1610可包括若干單獨的數(shù)據(jù)表、數(shù)據(jù)庫或其他數(shù)據(jù)存儲機構(gòu)和介質(zhì),以用于存儲與具體方面相關(guān)的數(shù)據(jù)。舉例來說,所示出的數(shù)據(jù)存儲區(qū)包括用于存儲生產(chǎn)數(shù)據(jù)1612和用戶信息1616的機構(gòu),其可用于服務(wù)生產(chǎn)側(cè)的內(nèi)容。數(shù)據(jù)存儲區(qū)還被示出為包括用于存儲日志數(shù)據(jù)1614的機構(gòu),其可用于報告、分析或其他此類目的。應(yīng)理解,可能存在可能需要存儲在數(shù)據(jù)存儲區(qū)中的許多其他方面,諸如頁面圖像信息和訪問權(quán)信息,所述方面可視情況存儲在上文所列機構(gòu)中的任何一個中或存儲在數(shù)據(jù)存儲區(qū)1610中的附加機構(gòu)中。數(shù)據(jù)存儲區(qū)1610可通過與它相關(guān)聯(lián)的邏輯來進行操作,以從應(yīng)用服務(wù)器1608接收指令,并且響應(yīng)于所述指令而獲得、更新或以其他方式處理數(shù)據(jù)。在一個實例中,用戶可提交針對某種類型的項目的搜索請求。在這種情況下,數(shù)據(jù)存儲區(qū)可訪問用戶信息以核實用戶的身份,并且可訪問目錄詳細信息以獲得關(guān)于所述類型的項目的信息。隨后,可將信息諸如以網(wǎng)頁上的結(jié)果列表的形式返回給用戶,用戶能夠通過用戶設(shè)備1602上的瀏覽器來查看所述網(wǎng)頁??稍趯S脼g覽器頁面或窗口中查看感興趣的具體項目的信息。
每個服務(wù)器通常將包括提供用于所述服務(wù)器的一般管理和操作的可執(zhí)行程序指令的操作系統(tǒng),并且通常將包括存儲指令的計算機可讀存儲介質(zhì)(例如,硬盤、隨機存取存儲器、只讀存儲器等),所述指令在由服務(wù)器的處理器執(zhí)行時允許服務(wù)器執(zhí)行其預(yù)期的功能。操作系統(tǒng)的合適的實現(xiàn)方式和服務(wù)器的一般功能是眾所周知的或可商購獲得的,并且易于由本領(lǐng)域普通技術(shù)人員實現(xiàn),尤其是根據(jù)本文中的公開內(nèi)容來實現(xiàn)。
在一個實施方案中,環(huán)境是分布式計算環(huán)境,所述分布式計算環(huán)境利用通過通信鏈路、使用一個或多個計算機網(wǎng)絡(luò)或直接連接來互連的若干計算機系統(tǒng)和部件。然而,本領(lǐng)域普通技術(shù)人員應(yīng)了解,這種系統(tǒng)可在具有比圖16中所示的更少或更多數(shù)量的部件的系統(tǒng)中同樣順利地操作。因此,對圖16中的系統(tǒng)1600的描繪本質(zhì)上應(yīng)視為說明性的,并且不限制本公開的范圍。
各種實施方案還可在各種各樣的操作環(huán)境中實現(xiàn),所述操作環(huán)境在一些情況下可包括一個或多個用戶計算機、計算設(shè)備或者可用于操作多個應(yīng)用中的任何一個的處理設(shè)備。用戶或客戶端設(shè)備可包括多個通用個人計算機中的任何一個,諸如運行標(biāo)準(zhǔn)操作系統(tǒng)的臺式計算機或膝上型計算機,以及運行移動軟件并且能夠支持多個聯(lián)網(wǎng)協(xié)議和消息傳輸協(xié)議的蜂窩設(shè)備、無線設(shè)備和手持式設(shè)備。這種系統(tǒng)還可包括多個工作站,所述工作站運行多種可商購獲得的操作系統(tǒng)以及用于諸如開發(fā)和數(shù)據(jù)庫管理目的的其他已知應(yīng)用中的任一個。這些設(shè)備還可包括其他電子設(shè)備,諸如虛擬終端、瘦客戶端、游戲系統(tǒng)以及能夠通過網(wǎng)絡(luò)進行通信的其他設(shè)備。
大多數(shù)實施方案利用本領(lǐng)域技術(shù)人員將熟悉的至少一個網(wǎng)絡(luò)來使用多種可商購獲得的協(xié)議中的任一個來支持通信,諸如傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(“tcp/ip”)、開放系統(tǒng)互連(“osi”)、文件傳送協(xié)議(“ftp”)、通用即插即用(“upnp”)、網(wǎng)絡(luò)文件系統(tǒng)(“nfs”)、通用互聯(lián)網(wǎng)文件系統(tǒng)(“cifs”)和appletalk。網(wǎng)絡(luò)可以是例如局域網(wǎng)、廣域網(wǎng)、虛擬專用網(wǎng)、互聯(lián)網(wǎng)、內(nèi)聯(lián)網(wǎng)、外聯(lián)網(wǎng)、公共交換電話網(wǎng)、紅外網(wǎng)絡(luò)、無線網(wǎng)絡(luò)以及上述網(wǎng)絡(luò)的任何組合。
在利用web服務(wù)器的實施方案中,web服務(wù)器可運行多種服務(wù)器或中間層級應(yīng)用中的任何一個,包括超文本傳送協(xié)議(“http”)服務(wù)器、ftp服務(wù)器、公共網(wǎng)關(guān)接口(“cgi”)服務(wù)器、數(shù)據(jù)服務(wù)器、java服務(wù)器和業(yè)務(wù)應(yīng)用服務(wù)器。服務(wù)器還能夠響應(yīng)來自用戶設(shè)備的請求而執(zhí)行程序或腳本,諸如通過執(zhí)行可實現(xiàn)為以任何編程語言(諸如
環(huán)境可包括如上文論述的多種數(shù)據(jù)存儲區(qū)以及其他存儲器和存儲介質(zhì)。這些可駐留在多種位置中,諸如在一個或多個計算機本地(和/或駐留在一個或多個計算機中)的存儲介質(zhì)上,或者遠離網(wǎng)絡(luò)上的計算機中的任何一個或所有計算機的存儲介質(zhì)上。在一組具體實施方案中,信息可駐留在本領(lǐng)域技術(shù)人員熟悉的存儲區(qū)域網(wǎng)(“san”)中。類似地,用于執(zhí)行屬于計算機、服務(wù)器或其他網(wǎng)絡(luò)設(shè)備的功能的任何必要的文件可視情況本地和/或遠程存儲。在系統(tǒng)包括計算機化設(shè)備的情況下,每個這種設(shè)備可包括可通過總線電耦合的硬件元件,所述元件包括例如至少一個中央處理單元(“cpu”)、至少一個輸入設(shè)備(例如,鼠標(biāo)、鍵盤、控制器、觸摸屏或小鍵盤)和至少一個輸出設(shè)備(例如,顯示設(shè)備、打印機或揚聲器)。這種系統(tǒng)還可包括一個或多個存儲設(shè)備,諸如磁盤驅(qū)動器、光存儲設(shè)備和固態(tài)存儲設(shè)備(諸如隨機存取存儲器(“ram”)或只讀存儲器(“rom”)),以及可移動介質(zhì)設(shè)備、存儲卡、閃存卡等。
這類設(shè)備還可包括計算機可讀存儲介質(zhì)讀取器、通信設(shè)備(例如,調(diào)制解調(diào)器、網(wǎng)卡(無線或有線)、紅外通信設(shè)備等)以及工作存儲器,如上文所描述的。計算機可讀存儲介質(zhì)讀取器可與計算機可讀存儲介質(zhì)連接或被配置來接收計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)表示遠程、本地、固定和/或可移動存儲設(shè)備以及用于暫時和/或更永久地包含、存儲、傳輸和檢索計算機可讀信息的存儲介質(zhì)。系統(tǒng)和各種設(shè)備通常也將包括位于至少一個工作存儲器設(shè)備內(nèi)的多個軟件應(yīng)用、模塊、服務(wù)或其他元件,包括操作系統(tǒng)和應(yīng)用程序,諸如客戶端應(yīng)用或web瀏覽器。應(yīng)了解,替代性實施方案可具有上文描述的實施方案的眾多變型。例如,也可使用定制硬件,和/或具體元件可在硬件、軟件(包括可移植的軟件,諸如小程序)或兩者中實現(xiàn)。此外,可采用與諸如網(wǎng)絡(luò)輸入/輸出設(shè)備的其他計算設(shè)備的連接。
用于包含代碼或部分代碼的存儲介質(zhì)和計算機可讀介質(zhì)可包括本領(lǐng)域已知或已使用的任何適當(dāng)介質(zhì),包括存儲介質(zhì)和通信介質(zhì),諸如但不限于以用于存儲和/或傳輸信息(諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù))的任何方法或技術(shù)所實現(xiàn)的易失性和非易失性、可移動和不可移動的介質(zhì),包括ram、rom、電可擦除可編程只讀存儲器(“eeprom”)、閃存或其他存儲器技術(shù)、光盤只讀存儲器(“cd-rom”)、數(shù)字通用光盤(dvd)或其他光存儲設(shè)備、磁帶盒、磁帶、磁盤存儲設(shè)備或其他磁存儲設(shè)備或者可用來存儲期望的信息并且可由系統(tǒng)設(shè)備訪問的任何其他介質(zhì)?;诒疚乃峁┑墓_內(nèi)容和教義,本領(lǐng)域普通技術(shù)人員將了解實現(xiàn)各種實施方案的其他方式和/或方法。
因此,應(yīng)以說明性意義而不是限制性意義來理解本說明書和附圖。然而,將明顯的是:在不脫離如在權(quán)利要求書中闡述的本公開的更寬廣精神和范圍的情況下,可對其做出各種修改和改變。
本公開的實施方案可鑒于以下條款來進行描述:
條款1.一種被配置來與主機系統(tǒng)進行通信的片上系統(tǒng)(soc),所述soc包括:
服務(wù)器計算子系統(tǒng),其用于提供計算服務(wù);
網(wǎng)絡(luò)計算子系統(tǒng),其用于至少管理所述主機系統(tǒng)和所述服務(wù)器計算子系統(tǒng)的網(wǎng)絡(luò)流量;
第一i/o子系統(tǒng),其包括多個第一i/o資源;
第二i/o子系統(tǒng),其包括多個第二i/o資源;以及
i/o轉(zhuǎn)向引擎,其耦合到所述第一i/o子系統(tǒng)和所述第二i/o子系統(tǒng),所述i/o轉(zhuǎn)向引擎被配置來:
將所述多個第一i/o資源中的至少一個轉(zhuǎn)向到所述服務(wù)器計算子系統(tǒng)或所述網(wǎng)絡(luò)計算子系統(tǒng);以及
將所述多個第二i/o資源中的至少一個轉(zhuǎn)向到所述服務(wù)器計算子系統(tǒng)或所述網(wǎng)絡(luò)計算子系統(tǒng)。
條款2.如條款1所述的soc,其中所述第一i/o子系統(tǒng)還包括:第一接口,其與所述主機系統(tǒng)進行通信;第二接口,其與所述網(wǎng)絡(luò)進行通信;以及第三接口,其與所述i/o轉(zhuǎn)向引擎進行通信。
條款3.如任一前述條款所述的soc,其中所述第二i/o子系統(tǒng)還包括:第一接口,其與所述主機系統(tǒng)進行通信;第二接口,其與所述網(wǎng)絡(luò)進行通信;以及第三接口,其與所述i/o轉(zhuǎn)向引擎進行通信。
條款4.如任一前述條款所述的soc,其還包括加速器子系統(tǒng),所述加速器子系統(tǒng)包括一個或多個加速器,其中所述i/o轉(zhuǎn)向引擎還被配置來將所述加速器中的至少一個轉(zhuǎn)向到所述服務(wù)器計算子系統(tǒng)或所述網(wǎng)絡(luò)計算子系統(tǒng)。
條款5.一種被配置來與主機系統(tǒng)進行通信的片上系統(tǒng)(soc),所述soc包括:
多個計算子系統(tǒng);
第一i/o子系統(tǒng),其包括多個第一i/o資源;以及
i/o轉(zhuǎn)向引擎,其耦合到所述第一i/o子系統(tǒng),所述i/o轉(zhuǎn)向引擎被配置來將所述多個第一i/o資源中的至少一個引導(dǎo)到所述多個計算子系統(tǒng)中的一個或多個計算子系統(tǒng)。
條款6.如條款5所述的soc,所述soc還包括第二i/o子系統(tǒng),所述第二i/o子系統(tǒng)包括多個第二i/o資源,其中所述i/o轉(zhuǎn)向引擎還被配置來將所述多個第二i/o資源中的至少一個引導(dǎo)到所述多個計算子系統(tǒng)中的所述一個或多個計算子系統(tǒng)。
條款7.如條款5或6所述的soc,所述soc還包括加速器子系統(tǒng),所述加速器子系統(tǒng)包括一個或多個加速器,其中所述i/o轉(zhuǎn)向引擎還被配置來將所述加速器中的至少一個引導(dǎo)到所述多個計算子系統(tǒng)中的所述一個或多個計算子系統(tǒng)。
條款8.如條款5-7中任一項所述的soc,所述soc還包括管理計算子系統(tǒng),其中所述管理計算子系統(tǒng)被配置來將轉(zhuǎn)向配置提供給所述i/o轉(zhuǎn)向引擎。
條款9.如條款5-8中任一項所述的soc,其中所述多個計算子系統(tǒng)包括:服務(wù)器計算子系統(tǒng),其提供計算服務(wù);以及網(wǎng)絡(luò)計算子系統(tǒng),其管理所述主機系統(tǒng)和所述服務(wù)器計算子系統(tǒng)的網(wǎng)絡(luò)流量。
條款10.如條款9所述的soc,其中所述i/o轉(zhuǎn)向引擎被配置來將所述多個第一i/o資源中的一個或多個引導(dǎo)到所述服務(wù)器計算子系統(tǒng)并且將所述多個第二i/o資源中的一個或多個引導(dǎo)到所述網(wǎng)絡(luò)計算子系統(tǒng)。
條款11.如條款9或10所述的soc,其中所述i/o轉(zhuǎn)向引擎被配置來將所述多個第一i/o資源中的一個或多個以及所述多個第二i/o資源中的一個或多個引導(dǎo)到所述網(wǎng)絡(luò)計算子系統(tǒng)。
條款12.如條款9-11中任一項所述的soc,其中所述i/o轉(zhuǎn)向引擎被配置來將所述多個第一i/o資源中的一個或多個以及所述多個第二i/o資源中的一個或多個引導(dǎo)到所述服務(wù)器計算子系統(tǒng)。
條款13.如條款9-12中任一項所述的soc,其中所述i/o轉(zhuǎn)向引擎通過網(wǎng)絡(luò)計算子系統(tǒng)高速緩存一致結(jié)構(gòu)耦合到所述網(wǎng)絡(luò)計算子系統(tǒng),并通過服務(wù)器計算子系統(tǒng)高速緩存一致結(jié)構(gòu)耦合到所述服務(wù)器計算子系統(tǒng)。
條款14.如條款9-13中任一項所述的soc,所述soc還包括加速器子系統(tǒng),所述加速器子系統(tǒng)包括多個加速器,其中所述i/o轉(zhuǎn)向引擎還被配置來將所述多個加速器中的一個或多個引導(dǎo)到所述網(wǎng)絡(luò)計算子系統(tǒng)并且將所述多個加速器中的一個或多個引導(dǎo)到所述服務(wù)器計算子系統(tǒng)。
條款15.如條款5-14中任一項所述的soc,其中所述第一i/o子系統(tǒng)包括:第一接口,其與所述主機系統(tǒng)進行通信;第二接口,其與網(wǎng)絡(luò)進行通信;以及第三接口,其與所述i/o轉(zhuǎn)向引擎進行通信。
條款16.如條款5-15中任一項所述的soc,其中所述第二i/o子系統(tǒng)包括:第一接口,其與所述主機系統(tǒng)進行通信;第二接口,其與網(wǎng)絡(luò)進行通信;以及第三接口,其與所述i/o轉(zhuǎn)向引擎進行通信。
條款17.一種用于在片上系統(tǒng)(soc)中使i/o資源轉(zhuǎn)向的方法,所述方法包括:
激活多個計算子系統(tǒng)中的一個或多個計算子系統(tǒng);
確定轉(zhuǎn)向配置以將第一i/o子系統(tǒng)中的多個第一i/o資源中的至少一個轉(zhuǎn)向到所述一個或多個計算子系統(tǒng),并且將第二i/o子系統(tǒng)中的多個第二i/o資源中的至少一個轉(zhuǎn)向到所述一個或多個計算子系統(tǒng);以及
將所述轉(zhuǎn)向配置提供給耦合到所述第一i/o子系統(tǒng)和所述第二i/o子系統(tǒng)的i/o轉(zhuǎn)向引擎。
條款18.如條款17所述的方法,其中所述多個計算子系統(tǒng)包括:服務(wù)器計算子系統(tǒng),其提供計算服務(wù);以及網(wǎng)絡(luò)計算子系統(tǒng),其管理所述主機系統(tǒng)和所述服務(wù)器計算子系統(tǒng)的網(wǎng)絡(luò)流量。
條款19.如條款18所述的方法,其中所述多個第一i/o資源中的一個或多個以及所述多個第二i/o資源中的一個或多個被轉(zhuǎn)向到所述網(wǎng)絡(luò)計算子系統(tǒng)。
條款20.如條款18或19所述的方法,其中所述多個第一i/o資源中的一個或多個以及所述多個第二i/o資源中的一個或多個被轉(zhuǎn)向到所述服務(wù)器計算子系統(tǒng)。
其他變型在本公開的精神內(nèi)。因此,雖然所公開技術(shù)易受各種修改和替代構(gòu)造的影響,但在附圖中示出并且在上文詳細描述了其某些說明的實施方案。然而,應(yīng)理解,并不意圖將本公開限于所公開的一種或多種具體形式,相反地,意圖涵蓋落在本公開的精神和范圍內(nèi)的所有修改、替代構(gòu)造和等效物,如所附權(quán)利要求書中所限定的。
在描述所公開實施方案的上下文中(尤其是在以下權(quán)利要求書的上下文中),術(shù)語“一個(a/an)”和“所述”以及類似指稱對象的使用應(yīng)解釋為涵蓋單數(shù)和復(fù)數(shù)兩者,除非本文另外指示或明顯地與上下文矛盾。術(shù)語“包含(comprising)”、“具有(having)”、“包括(including)”和“含有(containing)”應(yīng)解釋為開放式的術(shù)語(即,意味著“包括但不限于”),除非另外地指出。術(shù)語“連接(connected)”應(yīng)解釋為部分地或全部地包含在內(nèi)、附接到或接合在一起,即使存在介入物。除非本文另外指示,否則本文中對值范圍的列舉僅僅意圖用作單獨地表示落入所述范圍的各單獨值的速記方法,并且猶如本文單獨描述地那樣將各單獨值并入本說明書中??梢匀魏芜m合的順序來執(zhí)行本文描述的全部方法,除非本文另外指明或以其他方式與上下文明顯矛盾。本文所提供的任何以及所有實例或示例性語言(例如,“諸如”)的使用僅意圖更好地說明本公開的實施方案,并且除非另外要求,否則不會對本公開的范圍施加限制。本說明書中的語言不應(yīng)解釋為將任何非要求保護的要素指示為實踐本公開所必需。
除非另外特別說明,否則諸如短語“x、y或z中的至少一個”的析取語言在上下文中意圖被理解為通常用于描述項目、項等可以是x、y或z或者它們的任何組合(例如,x、y和/或z)。因此,此類析取語言一般并非旨在并且不應(yīng)該暗示某些實施方案需要x中的至少一個、y中的至少一個或z中的至少一個各自存在。
本文中描述了本公開的優(yōu)選實施方案,包括發(fā)明人已知用于執(zhí)行本公開的最佳模式。閱讀前述描述后,那些優(yōu)選實施方案的變型對于本領(lǐng)域普通技術(shù)人員可變得明顯。發(fā)明人希望技術(shù)人員視情況采用此類變型,并且發(fā)明人意圖以不同于本文所特別描述的方式的其他方式來實踐本公開。因此,本公開包括在所附的適用法律允許的權(quán)利要求書中敘述的主題的所有修改和等效物。此外,除非本文另外指明或以其他方式與上下文明顯矛盾,否則本公開涵蓋其所有可行變型中的上述元素的任何組合。