發(fā)送具有擴展頭部的分組的制作方法
【專利摘要】在一個實施例中,本發(fā)明涉及用于在第一代理中接收分組的方法,其中分組包括具有擴展頭部指示符的第一分組頭部?;谠撝甘痉?,代理可確定分組是否包括一個或多個附加的分組頭部。如果是,則代理可接下來基于附加頭部的頭部標識符確定它是否支持附加分組頭部中的信息。描述并要求保護其他實施例。
【專利說明】發(fā)送具有擴展頭部的分組
【背景技術(shù)】
[0001]主流處理器芯片在高性能和低功率部分中正日益集成附加的功能,例如圖形、顯示引擎、安全引擎、PCIe?端口(B卩,遵照外圍組件互連快速(PCI Express? (PCIe?)規(guī)范基礎(chǔ)規(guī)范2.0版(2007年發(fā)布)(在下文中稱為PCIe?規(guī)范))和其他基于PCIe?的外圍設(shè)備,同時保持對與例如外圍部件互連(PCI)局部總線規(guī)范3.0版(2002年公布)(在下文中稱為PCI規(guī)范)之類的PCI規(guī)范兼容的設(shè)備的傳統(tǒng)支持。
[0002]由于來自服務(wù)器、臺式、移動、嵌入式、超移動和移動因特網(wǎng)設(shè)備部分的不同要求,這樣的設(shè)計被高度劃分。不同的市場尋求使用把處理器核、存儲器控制器、輸入/輸出控制器和其他部分專用加速部件中的至少一些組合到單個芯片上的單片片上系統(tǒng)(SoC)解決方案。然而,由于把不同的知識產(chǎn)權(quán)(IP)塊集成在單個管芯上的困難,聚集這些特征的設(shè)計發(fā)展緩慢。當IP塊可以具有各種要求和設(shè)計獨特性且可以要求多種專用線路、通信協(xié)議等等以便允許把它們合并到SoC中時,尤其如此。結(jié)果,所開發(fā)的每一 SoC或其他高級半導(dǎo)體設(shè)備要求大量的設(shè)計復(fù)雜性和定制以便把不同的IP塊合并到單個設(shè)備中。這是因為給定的IP塊通常需要被重新設(shè)計以適應(yīng)給定SoC的接口和信令要求。
[0003]為了實現(xiàn)貫穿系統(tǒng)路由分組,通常分組設(shè)置有頭部,包括幫助路由和解碼分組的信息。不同的通信協(xié)議用于不同的頭部布置。然而,這些頭部格式通常是固定的,且阻礙通過頭部提供附加信息的靈活性。在隧道協(xié)議中,其中不同的代理利用多種通信協(xié)議通信,原始分組可被封裝成具有用于隧道協(xié)議的附加頭部的分組類型。進而每個代理可訪問它能夠理解的分組頭部。但該技術(shù)增加分組尺寸和解碼復(fù)雜性。
【專利附圖】
【附圖說明】
[0004]圖1是根據(jù)本發(fā)明實施例的基本互連架構(gòu)的框圖。
[0005]圖2是根據(jù)本發(fā)明實施例的互連架構(gòu)的進一步細節(jié)的框圖。
[0006]圖3是根據(jù)本發(fā)明實施例的SoC的高級框圖。
[0007]圖4是根據(jù)本發(fā)明另一實施例的系統(tǒng)的框圖。
[0008]圖5是根據(jù)本發(fā)明實施例的邊帶互連的框圖。
[0009]圖6是根據(jù)本發(fā)明實施例的可用于邊帶接口的信令的細節(jié)的框圖。
[0010]圖7是根據(jù)本發(fā)明的一個實施例具有頭部部分和數(shù)據(jù)部分的消息的圖示。
[0011]圖8是根據(jù)本發(fā)明實施例的用于生成分組的方法的流程圖。
[0012]圖9是根據(jù)本發(fā)明實施例的用于在路由器中處理具有擴展頭部的分組的方法的流程圖。
[0013]圖10是根據(jù)本發(fā)明的一個實施例的用于在目標代理中處理包括擴展頭部的分組的方法的流程圖。
[0014]圖11是根據(jù)本發(fā)明實施例的SoC的一部分的更詳細框圖。
[0015]圖12是根據(jù)本發(fā)明實施例的另一個SoC的框圖。【具體實施方式】
[0016]耦合不同組件(稱為代理)的邊帶接口可被配置成提供以路由組織結(jié)構(gòu)可保持對該信息完全不可知且僅特定的目標代理可解釋這一擴展頭部的方式在邊帶消息內(nèi)發(fā)送附加頭部信息的能力。通過增加發(fā)送用于給定消息的擴展頭部的能力,可實現(xiàn)接口規(guī)范的標準頭部仲裁長度擴展,例如I雙字(DW)。同時,路由器、交換器或其它接口組件可基于標準頭部處理輸入消息(例如,通過檢查頭部的第一 1DW)。此外,實施例提供簡單的分組布局和解碼方案,使得當隨著消息流入代理,擴展頭部不被代理支持(例如,將擴展頭部處理為不關(guān)心)時,接收代理可丟棄或剝離擴展頭部。
[0017]通過根據(jù)本發(fā)明的實施例提供擴展頭部機制,不支持這種信息的接收代理因此可在接收的消息中忽略它。這允許降低主代理和目標代理中的設(shè)計復(fù)雜性。作為示例,考慮在擴展頭部中發(fā)送安全屬性信息(SAI)的情況。主代理可實現(xiàn)其中它在所有的事務(wù)中始終發(fā)送SAI的配置。這種主代理也是更安全的,因為SAI的發(fā)送可被硬編碼,且避免來自可能的可配置SAI頭部插入的安全弱點。如果具有SAI擴展頭部的事務(wù)的目的地是配置成強化訪問控制策略的目標代理,則目標代理可使用該頭部中的SAI信息。如果替代地事務(wù)的目的地是不具有配置用于訪問控制保護的資源的目標代理,則該代理可忽略擴展頭部并且處理標準消息頭部和相應(yīng)的消息有效載荷。
[0018]各實施例可以用于多個不同類型的系統(tǒng)。作為示例,在此描述的實現(xiàn)可以結(jié)合諸如處理器等的半導(dǎo)體設(shè)備或可以在單個半導(dǎo)體管芯上制造的其他半導(dǎo)體設(shè)備使用。在特定實現(xiàn)中,該設(shè)備可以是片上系統(tǒng)(SoC)或包括各種同構(gòu)和/或異構(gòu)處理代理的其他高級處理器或芯片組以及諸如聯(lián)網(wǎng)組件等的附加組件,例如路由器、控制器、橋接設(shè)備、其他設(shè)備、存儲器等等。
[0019]一些實現(xiàn)可以用于根據(jù)諸如由半導(dǎo)體生產(chǎn)商發(fā)布的集成片上系統(tǒng)組織結(jié)構(gòu)(integrated on-chip system fabric, IOSF)規(guī)范等的給定規(guī)范設(shè)計的半導(dǎo)體設(shè)備,以提供用于在包括SoC的芯片內(nèi)附加知識產(chǎn)權(quán)(IP)塊的標準化管芯上互連協(xié)議。這樣的IP塊可以屬于各種類型,包括諸如有序或無序核等的通用處理器、固定功能單元、圖形處理器、IO控制器、顯示控制器、媒體處理器以及其他類型。通過使得互連協(xié)議標準化,從而實現(xiàn)用于不同類型芯片中的IP代理的廣泛使用的框架。因此,不僅半導(dǎo)體生產(chǎn)商可以跨越各種各樣的客戶群高效地設(shè)計不同類型的芯片,而且可以經(jīng)由規(guī)范允許第三方設(shè)計要合并到這樣的芯片中的諸如IP代理等的邏輯。并且,此外,通過為互連協(xié)議的多個方面提供多個選項,高效地實現(xiàn)了設(shè)計的再用。盡管在此結(jié)合這一 IOSF規(guī)范描述了各實施例,但應(yīng)理解,本發(fā)明的范圍不限于此,且各實施例可以用于多種不同類型的系統(tǒng)。
[0020]現(xiàn)在參見圖1,所示出的是根據(jù)本發(fā)明實施例的基本互架構(gòu)的框圖。如圖1中所示出,系統(tǒng)10可以是片上系統(tǒng)或任意其他半導(dǎo)體設(shè)備的一部分,諸如高度集成的處理器聯(lián)合體或集成IO中樞,且包括充當在各種組件之間的互連的組織結(jié)構(gòu)20。在所示出的實現(xiàn)中,這些組件包括IP代理30和40,它們可以是獨立的IP ±夾,以提供諸如計算能力、圖形能力、媒體處理能力等等的各種功能性。在一個實施例中,這些IP代理因而是具有與IOSF規(guī)范兼容的接口的IP塊或邏輯設(shè)備。如還可見的,組織結(jié)構(gòu)20也連接到橋50。盡管在圖1的示例中為便于闡釋而未示出,但應(yīng)理解,橋50可以充當?shù)嚼缭谙嗤酒蛞粋€或多個不同的芯片上的其他系統(tǒng)組件的接口。[0021]如下面將進一步描述的,圖1中所示出的每一元素,即組織結(jié)構(gòu)、IP代理和橋,可以包括一個或多個接口以便處理各種信號的通信??梢愿鶕?jù)IOSF規(guī)范定義這些接口,IOSF規(guī)范定義用于在這些接口上通信的信號、用于在代理之間的信息交換的協(xié)議、用來發(fā)起和管理信息交換的仲裁和流控制機制、所支持的地址解碼和轉(zhuǎn)換能力、用于帶內(nèi)或帶外通信的消息收發(fā)、電源管理、測試、驗證和調(diào)試支持。
[0022]IOSF規(guī)范包括可以提供給每個代理的3個獨立接口,即主接口、邊帶消息接口和可測試性和調(diào)試接口(測試設(shè)計(DFT)、調(diào)試設(shè)計(DFD)接口)。根據(jù)IOSF規(guī)范,代理可以支持這些接口的任何組合。具體地,代理可以支持O-N個主接口、0-N個邊帶消息接口和可選的DFx接口。然而,根據(jù)該規(guī)范,代理必須支持這3個接口中的至少一個。
[0023]組織結(jié)構(gòu)20可以是在不同的代理之間移動數(shù)據(jù)的硬件元素。注意,組織結(jié)構(gòu)20的拓撲可以是針對產(chǎn)品的。作為示例,組織結(jié)構(gòu)可以被實現(xiàn)為總線、分層總線、級聯(lián)中樞或類似物?,F(xiàn)在參見圖2,所示出的是根據(jù)本發(fā)明實施例的互連架構(gòu)的進一步細節(jié)的框圖。如圖2中所示出,IOSF規(guī)范定義三種不同的組織結(jié)構(gòu),即主接口組織結(jié)構(gòu)112、DFx組織結(jié)構(gòu)114和邊帶組織結(jié)構(gòu)116。主接口組織結(jié)構(gòu)112可以用于代理和存儲器之間的所有帶內(nèi)通信,例如,在諸如中央處理單元(CPU)或其他處理器等的主處理器和代理之間的所有帶內(nèi)通信。主接口組織結(jié)構(gòu)112還可以允許在代理和所支持的組織結(jié)構(gòu)之間的對等事務(wù)的通信。包括存儲器、輸入輸出(10)、配置和帶內(nèi)消息收發(fā)的所有事務(wù)類型可以經(jīng)由主接口組織結(jié)構(gòu)112遞送。因而,主接口組織結(jié)構(gòu)可以充當在對等之間傳輸?shù)臄?shù)據(jù)和/或與上游組件的通信的高性能接口。
[0024]在各種實現(xiàn)中,主接口組織結(jié)構(gòu)112實現(xiàn)拆分事務(wù)協(xié)議以便實現(xiàn)最大并發(fā)性。即,這種協(xié)議提供請求階段、批準階段以及命令和數(shù)據(jù)階段。在各種實施例中,主接口組織結(jié)構(gòu)112支持三種基本請求類型:已公布(posted)、未公布(non-posted)和完成。通常,已公布事務(wù)是這樣的事務(wù):在由源發(fā)送時,該源認為該事務(wù)是完成的,且該源不接收關(guān)于該事務(wù)的完成或其他確認消息。已公布事務(wù)的一個這樣的示例可以是寫事務(wù)。相反,直到接收到返回消息(即完成)之前,不認為該源完成了未公布事務(wù)。未公布事務(wù)的一個示例是讀事務(wù),該讀事務(wù)中,源代理請求讀取數(shù)據(jù)。因此,完成消息提供所請求的數(shù)據(jù)。
[0025]另外,主接口組織結(jié)構(gòu)112支持不同信道的概念,以便提供用于貫穿該系統(tǒng)的獨立數(shù)據(jù)流的機制。如將要進一步描述的,主接口組織結(jié)構(gòu)112本身可以包括發(fā)起事務(wù)的主接口和接收事務(wù)的目標接口?;A(chǔ)的主接口還可以細分成請求接口、命令接口和數(shù)據(jù)接口。請求接口可以用來提供對移動事務(wù)命令和事務(wù)數(shù)據(jù)的控制。在各種實施例中,主接口組織結(jié)構(gòu)112可以支持PCI排序規(guī)則和列舉。
[0026]邊帶接口組織結(jié)構(gòu)116又可以是用于傳輸所有帶外信息的標準機構(gòu)。以這種方式,可以避免為給定實現(xiàn)設(shè)計專用線路,增強了跨越各種各樣的芯片再用IP的能力。因而,與使用專用線路來處理諸如狀態(tài)、中斷、電源管理、熔斷分布、配置遮蔽、測試模式等等的帶外通信的IP塊相反,根據(jù)IOSF規(guī)范的邊帶接口 116標準化所有帶外通信,促進了模塊化并減少跨越不同的設(shè)計再用IP的驗證要求。通常,邊帶接口組織結(jié)構(gòu)116可以被用來通信非性能關(guān)鍵信息而不是用于性能關(guān)鍵的數(shù)據(jù)傳輸,該傳輸通??梢越?jīng)由主接口組織結(jié)構(gòu)112傳輸。
[0027]如圖2中進一步闡釋的,IP代理130、140和150均可以包括相應(yīng)的主接口、邊帶接口和DFx接口。然而,如以上所描述的,每一代理不需要包括這些接口中的每一個,且在一些實施例中給定的IP代理可以僅包括單個接口。
[0028]使用IOSF規(guī)范,可以設(shè)計具有多種多樣的不同功能的各種類型的芯片?,F(xiàn)在參見圖3,所示出的是根據(jù)本發(fā)明實施例的SoC的高級框圖。如圖3中所示出,SoC200可以包括各種組件,所有這些組件都可以被集成在單個半導(dǎo)體管芯上,以便以高速度和低功率提供各種處理能力,消耗相對少量的不動產(chǎn)(real estate)。如圖3中可見,SoC200包括多個核205Q- 205n。在各種實施例中,核205可以是相對簡單的有序核或更復(fù)雜的無序核?;蛘?,單個SoC中可以存在有序核和無序核的組合。如圖可見,核205可以經(jīng)由一致性互連215而互連,一致性互連215還耦合到高速緩存存儲器210,例如共享末級高速緩存(LLC)。盡管本發(fā)明的范圍不限于此,在一個實施例中,一致性互連215可以遵照可從加利福尼亞州圣克拉拉市的英特爾公司得到的快速通道互連(QPI) ?規(guī)范。
[0029]如圖3中還可見的,一致性互連215可以經(jīng)由橋220與組織結(jié)構(gòu)250通信,組織結(jié)構(gòu)250可以是IOSF組織結(jié)構(gòu)。一致性互連215還可以經(jīng)由集成存儲器控制器215與片外存儲器(為便于闡釋圖3的實施例,未示出)通信,且還通過橋230與組織結(jié)構(gòu)250通信。
[0030]如圖3中還可見,可以耦合到組織結(jié)構(gòu)250的各種組件包括內(nèi)容處理模塊(CPM)240,內(nèi)容處理模塊(CPM)240可以用于執(zhí)行各種操作,諸如安全處理、密碼功能等等。另外,顯示處理器245可以是向關(guān)聯(lián)顯示器呈現(xiàn)視頻的媒體處理流水線的一部分。
[0031]如圖還可見,組織結(jié)構(gòu)250還可以耦合到IP代理255。盡管為便于闡釋圖3的實施例僅示出單個代理,但應(yīng)理解,在不同的實施例中,多個這樣的代理是可能的。另外,為了允許與其他片上設(shè)備通信,組織結(jié)構(gòu)250還可以與PCIe?控制器260和通用串行總線(USB)控制器265通信,PCIe?控制器260和通用串行總線(USB)控制器265兩者都可以與遵照這些協(xié)議的各種設(shè)備通信。最后,圖3的實施例中示出橋270,橋270可以被用來與諸如開放核協(xié)議(OCP)或ARM高級微控制器總線架構(gòu)(AMBA)協(xié)議等的其他協(xié)議的附加組件通信。盡管在圖3的實施例中用這些具體的組件示出,但應(yīng)理解,本發(fā)明的范圍不限于這種方式,且在不同的實施例中可以存在附加的或不同的組件。
[0032]此外,應(yīng)理解,盡管在圖3中被示出為單個管芯SoC實現(xiàn),但各實施例還可以在其中多個芯片經(jīng)由非IOSF接口相互通信的系統(tǒng)中實現(xiàn)?,F(xiàn)在參見圖4,所示出的是根據(jù)本發(fā)明的另一實施例的系統(tǒng)的框圖。如圖4中所示出,該系統(tǒng)可以包括SoC200’,其可以包括與以上參考圖3所描述的那些組件類似的多個組件以及附加的片外接口 275。因此,SoC200’可以與另一芯片280通信,芯片280可以包括允許通信在這兩個芯片之間通信以及與各種片外設(shè)備(例如遵照一個或多個不同規(guī)范的不同外圍設(shè)備)通信的各種功能。具體地,第二芯片280被示出為包括片外接口 282以便允許與SoC200’通信,且SoC200’又與組織結(jié)構(gòu)290通信,組織結(jié)構(gòu)290可以是根據(jù)本發(fā)明實施例的IOSF組織結(jié)構(gòu)。如圖可見,組織結(jié)構(gòu)290還可以耦合到與片外設(shè)備通信的各種控制器,包括PCIe?控制器292、USB控制器294和橋296。
[0033]如上所討論的,在各實施例中,所有的帶外通信可經(jīng)由邊帶消息接口?,F(xiàn)在參考圖5,所示是根據(jù)本發(fā)明的實施例的邊帶互連的框圖。如圖5所示,邊帶接口系統(tǒng)175包括多個路由器180和190,在圖5的實施例中被示為經(jīng)由點對點(PTP)互連185耦合。每個路由器又可耦合到各種端點,這些端點可以是例如給定系統(tǒng)的IP代理或其它組件。具體地,路由器180耦合到多個端點186a-186e,且路由器190耦合到多個端點196x_196z。
[0034]現(xiàn)在參考圖6,示出的是根據(jù)本發(fā)明實施例的可用于邊帶接口的信令的細節(jié)的框圖。如圖6所示,示出路由器180和端點186之間的互連。如所示,路由器180可包括目標接口 181和主接口 182。一般而言,目標接口 181可配置成接收傳入信號,而主接口 182可配置成發(fā)送傳出信號。如所示,端點186還包括主接口 187和目標接口 188。
[0035]圖6進一步示出可用于邊帶接口的各種信令的細節(jié),包括信用信息、輸入信息(put information)、消息信令的末端及數(shù)據(jù)。具體地,可經(jīng)由邊帶接口傳達信用更新作為未公布信用更新信號(NPCUP)和公布信用更新信號(PCCUP)。此外,可提供輸入信號(putsi gal, NPPUT和PCPUT)。此外,可傳達消息末端(EOM)信號。最后,可經(jīng)由載荷分組傳達數(shù)據(jù),在一個實施例中,該載荷分組可經(jīng)由字節(jié)寬度的通信信道實現(xiàn)。盡管在圖6的實施例中利用此特定實現(xiàn)示出的,但是,本發(fā)明的范圍在這方面不受限制。每當信用Put信號為高時,這表示信用正被返回。每當輸入信號為高時,這表示載荷(例如,數(shù)據(jù))信號是有效的。每當Put和EOM同時為高時,這表示當前的載荷是消息的最后載荷。注意,在相同的時鐘周期中接口可“輸入(put)”數(shù)據(jù)載荷并“輸入”信用。
[0036]在各實現(xiàn)中,邊帶消息可在一個或多個擴展頭部中攜帶附加的頭部信息。如本文中使用的術(shù)語“附加頭部信息”用于指比根據(jù)給定的接口規(guī)范的標準頭部中存在的信息多的信息量(且可能是不同的類型)和/或不同配置。在一個實施例中,每個擴展的頭部的長度與常規(guī)頭部相同,在本文描述的一個實施例中長度為一 DW。消息中擴展頭部的數(shù)量可以是針對產(chǎn)品的。系統(tǒng)中的不同代理可發(fā)起以不同數(shù)量的擴展頭部擴展的消息。為了標識擴展頭部的存在,在一些實施例中,擴展頭部(EH)指示符,例如,單個位,可存在于每個消息的標準頭部中,以指示可選的擴展頭部的存在,即,標準頭部長度的另一個頭部的附加。每個擴展頭部中的指示符又指示標準頭部長度的后續(xù)擴展頭部的存在。如果存在,則一個或多個擴展頭部可附加在標準頭部之后(例如,在具有DW標準頭部長度的系統(tǒng)中的第一 DW之后)。
[0037]圖7示出具有頭部部分310和數(shù)據(jù)部分340的消息300,其中頭部部分310可包括多達N個擴展頭部。所有其它的邊帶消息遵循相同的擴展頭部格式。
[0038]如圖7的示例所示,EH指示符314被設(shè)定在第一頭部312中,該第一頭部312可以是IOSF規(guī)范的標準頭部以指示第一擴展頭部((ExpHdrl)) 320的存在。如圖7所見,第一頭部312包括各種附加字段,包括目的地字段311、源字段313、操作碼字段315、標記字段318和響應(yīng)字段319。如在圖7的實施例中所見,指示符314可存在于頭部的最后流控制單元(flit)中,即該流控制單元(flit)的最高有效位(MSB),但本發(fā)明的范圍不限于此。
[0039]在各實施例中,對于跟隨第一頭部的每個擴展頭部,其EH指示符可替代地存在于對應(yīng)的擴展頭部的第一流控制單元內(nèi)。因此,如圖7所見,第一擴展頭部320包括存在于頭部320的第一流控制單元中的EH指示符322以及頭部標識符字段(例如,頭部ID)324。擴展頭部ID字段324EXpHdr ID[6:0]可標識特定的頭部擴展ID。在各實施例中,標識符可指示根據(jù)IOSF規(guī)范確定的特定類型的擴展頭部,而不是專用于生成頭部的代理。作為示例,IOSF規(guī)范目前出于提供SAI的目的而定義擴展頭部標識符,且在一個實施例中,擴展頭部字段可具有二進制值0000000。如果代理接收具有ID0000000的擴展頭部,則知曉包含在擴展頭部中的數(shù)據(jù)是SAI。[0040]在第一擴展頭部(ExpHdrl)中設(shè)定指示符指示第二擴展頭部的存在,等等。最后的擴展頭部(ExpHdrN) 330中的指示符332未被設(shè)定,指示當前擴展的頭部是最后的擴展頭部。如圖7所見,數(shù)據(jù)載荷流控制單元在最后的擴展頭部330之后開始。
[0041]所有的目標代理,不管它們是否解釋任何擴展頭部內(nèi)容,都可被配置成理解具有擴展頭部的消息格式,并且進一步配置成支持從消息和數(shù)據(jù)載荷區(qū)分擴展頭部的能力。具有不被目標代理支持的ExpHdr ID字段的任何擴展頭部可被丟棄、不重疊到所支持的ExpHdr ID,且不影響代理對所接收消息的處理。在各實施例中,路由器可配置成僅使用標準頭部(例如,第一頭部DW)以確定消息類型并將其路由到目標代理。為了在系統(tǒng)內(nèi)維持精確性,路由器可進一步配置成轉(zhuǎn)發(fā)具有擴展頭部的消息,而不改變擴展頭部中的任何屬性。
[0042]現(xiàn)參照圖8,示出根據(jù)本發(fā)明的實施例的用于生成分組的方法的流程圖。更具體地,圖8的方法400可由代理用于生成具有擴展頭部的邊帶分組。如所見,方法400可開始于確定分組的頭部部分中是否包括附加數(shù)據(jù)(菱形410)。如果否,則利用具有復(fù)位值的擴展頭部指示符生成標準分組頭部(框415)。因此,該復(fù)位值指示分組為標準頭部長度。因此,在框420,可利用標準頭部發(fā)送分組。
[0043]如果相反在菱形410處確定頭部中包括附加數(shù)據(jù),則控制傳送到框430,其中生成標準頭部,而且該頭部被生成為具有含置位值的擴展頭部指示符。經(jīng)由該置位值,它向分組的接收器指示分組中存在附加的頭部信息。然后控制傳送到菱形440,其中可確定這是否是要生成的最后擴展頭部。如果是,則控制傳送到框450,其中可生成單個附加頭部,并將其附加到消息。更具體地,該附加頭部可包括附加數(shù)據(jù)和擴展頭部標識符,例如,用于標識擴展頭部中存在的數(shù)據(jù)類型。同樣,該附加頭部可包括復(fù)位擴展頭部指示符,由此指示不為該分組傳送另外的擴展頭部。因此,控制傳送到框460,其中可傳送具有擴展頭部(加上其標準分組和載荷數(shù)據(jù))的分組。
[0044]如果相反在菱形440中確定這不是最后的擴展頭部,則控制傳送到框455。此處,可生成具有附加數(shù)據(jù)和擴展頭部標識符的頭部。此外,附加頭部可具有置位的擴展頭部指示符并被附加到消息??刂齐S后傳至框440,如上所述。雖然在圖8的實施例中利用此特定實現(xiàn)示出的,但是,可以理解,本發(fā)明的范圍在這方面不受限制。
[0045]如上所述,接收具有擴展頭部的分組的路由器不必能夠處理或支持擴展頭部中的信息,而是能夠僅基于分組的標準頭部部分中存在的信息將分組轉(zhuǎn)發(fā)到其目標目的地?,F(xiàn)在參考圖9,示出根據(jù)本發(fā)明實施例的用于在路由器中處理具有擴展頭部的分組的方法的流程圖。如圖9所示,方法500可通過接收具有擴展頭部的分組開始(框510)。路由器然后可例如基于標準頭部中存在的信息確定消息類型,并且還可基于標準頭部中存在的信息(諸如標準頭部的目的地標識符字段)確定路由(框520)。因此,在框530,可將具有擴展頭部的分組轉(zhuǎn)發(fā)到所確定的代理。因此即使路由可能不能考慮或支持擴展頭部部分中存在的信息,它仍能處理標準頭部中存在的信息,以允許將分組轉(zhuǎn)發(fā)到其適當?shù)哪康牡亍?br>
[0046]同樣如上所討論的,在很多實施例中,具有擴展頭部的分組的接收器不必能夠支持擴展頭部中存在的信息,這允許更有效地再用各種IP代理。現(xiàn)在參考圖10,示出的是在目標代理中處理包括擴展頭部的分組的方法的流程圖。如圖10所示,方法600可通過在目標代理處接收具有擴展頭部的分組開始(框610)。接下來,可確定目標代理是否支持擴展頭部中存在的信息。更具體地,在菱形620,可基于擴展頭部標識符字段中的信息確定目標代理是否能支持一個或多個擴展頭部中存在的信息。如果是,則控制傳送到框630,其中可由目標代理至少部分地利用擴展頭部和標準頭部中存在的信息處理分組。如果相反,在菱形620確定目標代理不支持擴展頭部中的信息,則控制傳送到框640。此處,頭部的擴展部分(不管它是一個或是多個擴展頭部部分)可被丟棄,且相應(yīng)地,控制傳送到框650,其中可利用標準頭部中的信息處理分組。
[0047]注意,在一些實現(xiàn)中,可在單個分組中發(fā)送多個擴展頭部,目標代理可支持擴展頭部中的至少一個而不是其它擴展頭部中存在的信息。因此,在這種情況下,目標代理可例如,基于擴展頭部的擴展頭部標識符字段,使用其支持的任何擴展頭部信息中存在的信息。雖然在圖10的實施例中利用此特定實現(xiàn)示出的,但是,可以理解,本發(fā)明的范圍在這方面不受限制。
[0048]并非通過封裝機制提供附加的頭部信息,實施例可提供始終在每個分組的相同位置處的擴展頭部,但仍允許任意長度的頭部長度擴展。
[0049]實施例因此使路由組織結(jié)構(gòu)能不知曉擴展頭部,并且進一步使目標代理能在接收器處理消息期間完全忽略擴展頭部。這與網(wǎng)際協(xié)議(IP)形成對比,其中IP棒的每層會將附加頭部插入現(xiàn)有頭部,使得每層必須“剝洋蔥”以便在協(xié)議棧的任意給定層處處理分組。相反,利用根據(jù)本發(fā)明實施例的擴展頭部機制,確保路由器僅需要處理標準分組頭部(例如,第一 DW),且確保擴展頭部在預(yù)定位置開始(例如,在DW2處開始)。由此,可提供促進管芯上基于消息的互連的硬件。
[0050]盡管圖3和4的SoC為高級,但應(yīng)理解可存在附加的功能?,F(xiàn)在參考圖11,所示是根據(jù)本發(fā)明實施例的SoC的一部分的更詳細的框圖。如圖11所示,也關(guān)于系統(tǒng)存儲器。
[0051]因此,如所見,管芯外的接口 710 (在一個實施例中可以是直接媒體接口(DMI))可耦合到中樞715,例如輸入/輸出中樞,進而在各種外圍設(shè)備之間提供通信。盡管為了在圖11中便于圖示而未示出,但應(yīng)理解可將諸如管理引擎和虛擬化引擎之類的各種引擎直接耦合到中樞715。
[0052]為了提供至多條總線的連接,該總線可以是根據(jù)IOSF規(guī)范的多點或共享總線,IOSF控制器720可耦合在中樞715和總線730之間,總線730可以是IOSF總線,由此合并組織結(jié)構(gòu)的元件以及路由器。在圖7所示的實施例中,第一 IOSF總線730可與各種控制器耦合,以提供對芯片外設(shè)備的控制。特別地,所示為PCI控制器722、SATA控制器724和USB控制器726。第二 IOSF總線750又可耦合到系統(tǒng)管理總線752和實時時鐘754。
[0053]如圖11進一步所見,第一 IOSF總線730可耦合到IOSF橋735用于主和邊帶信息,進而提供至例如不同協(xié)議的第三總線740的互連,各種控制器和組件可附連到該第三總線740。在圖11所示的實施例中,這些組件包括閃存控制器741以提供至非易失性存儲器的接口、傳統(tǒng)設(shè)備742,該傳統(tǒng)設(shè)備可實現(xiàn)例如PCI規(guī)范的各種傳統(tǒng)功能且還可包括中斷控制器和計時器。此外,可提供用于音頻743、USB744、千兆字節(jié)以太網(wǎng)(GbE) 745、串行外圍接口6卩1)746和?(:1747的接口。雖然在圖11的實施例中利用此特定實現(xiàn)示出的,但是,可以理解,本發(fā)明的范圍在這方面不受限制。
[0054]其它實現(xiàn)是可能的?,F(xiàn)在參考圖12,所示是根據(jù)本發(fā)明的實施例的另一個SoC的框圖。如圖12所示,SoC800可配置成用于例如服務(wù)器系統(tǒng)。如圖12所見,SoC可包括平臺控制器中樞(PCH)840,其一般可包括諸如圖11的實施例所示的組件。即,可存在多個IOSF總線730、740以及耦合這些總線的橋735??偩€730可包括與之耦合的各種代理,包括PCIe控制器722、SATA控制器724和USB控制器726。進而,經(jīng)由IOSF控制器720,通信可經(jīng)由附加總線718產(chǎn)生,該總線可與諸如核或其它處理單元(為了便于說明,在圖12的實施例中未示出)之類的上游設(shè)備通信。
[0055]進一步如圖12所見,為了提供與其它基于服務(wù)器的組件的通信,可提供附加的IOSF總線820,該總線又可與IOSF控制器822和耦合到上游總線825的上游開關(guān)端口 824(例如,X16端口)通信。多個下游開關(guān)端口 826和828也可耦合到總線820。
[0056]此外,為了實現(xiàn)例如與基于服務(wù)器的系統(tǒng)的存儲單元通信,開關(guān)端口 830可耦合在總線820和另一個IOSF總線850之間,該總線又可耦合到存儲控制器單元(S⑶)855,該存儲控制器單元(SCU) 855可以是與各種存儲設(shè)備耦合的多功能設(shè)備。
[0057]各實施例可以以代碼來實現(xiàn),并可以存儲在在其上存儲了指令的非瞬態(tài)存儲介質(zhì)上,指令可以被用來對系統(tǒng)進行編程以執(zhí)行指令。存儲介質(zhì)可以包括,但不僅限于,任何類型的盤,包括軟盤、光盤、固態(tài)驅(qū)動器(SSD)、壓縮盤只讀存儲器(固態(tài)驅(qū)動器)、可重寫壓縮盤(CD-RW),以及磁光盤,諸如只讀存儲器(ROM)之類的半導(dǎo)體器件、諸如動態(tài)隨機存取存儲器(DRAM)、和靜態(tài)隨機存取存儲器(SRAM)之類的隨機訪問存儲器(RAM)、可擦除可編程只讀存儲器(EPR0M)、閃存、電可擦除編程只讀存儲器(EEPR0M)、磁卡或光卡,或適于存儲電子指令的任何其他類型的介質(zhì)。
[0058]盡管是參考數(shù)量有限的實施例來描述本發(fā)明的,但是,那些精通本技術(shù)的人將從其中理解很多修改和變體。所附權(quán)利要求書涵蓋所有這樣的修改和變體都將在本發(fā)明的真正的精神和范圍內(nèi)。
【權(quán)利要求】
1.一種方法,包括: 在第一代理中接收分組,所述分組包括具有擴展頭部指示符的第一分組頭部; 基于第一分組頭部的擴展頭部指示符確定分組是否包括至少一個附加的分組頭部;以及 如果是,則基于所述至少一個附加頭部的頭部標識符確定第一代理是否支持所述至少一個附加分組頭部中的信息。
2.如權(quán)利要求1所述的方法,還包括如果第一代理支持所述信息則處理所述至少一個附加分組頭部,否則丟棄所述至少一個附加分組頭部。
3.如權(quán)利要求2所述的方法,還包括如果第一代理不支持所述信息則利用第一分組頭部處理所述分組。
4.如權(quán)利要求1所述的方法,還包括基于第N-1個附加分組頭部的擴展頭部指示符確定所述分組是否包括第N個附加分組頭部。
5.如權(quán)利要求1所述的方法,還包括在第一代理中消耗所述至少一個附加分組頭部中的數(shù)據(jù),所述數(shù)據(jù)包括安全屬性信息。
6.如權(quán)利要求5所述的方法,還包括不消耗在第二代理中作為第二分組頭部的附加分組頭部接收的安全屬性信息,其中所述第二代理不支持安全屬性信息。
7.如權(quán)利要求1所述的方法,還包括在耦合到源代理的路由器中接收分組,并基于第一分組頭部將分組路由到第一代理,其中所述路由器未被配置成支持至少一個附加分組頭部中的信息。
8.如權(quán)利要求1所述的方法,其特征在于,所述頭部標識符存在于至少一個附加頭部的頭部標識符字段中。
9.如權(quán)利要求1所述的方法,還包括在第一代理的邊帶接口中接收分組,所述邊帶接口耦合到從第二代理接收分組的路由器,其中所述第一和第二代理以及路由器屬于片上系統(tǒng)(SoC)。
10.如權(quán)利要求9所述的方法,其特征在于,第一和第二代理中的至少一個是第三方的知識產(chǎn)權(quán)(IP)塊。
11.如權(quán)利要求9所述的方法,還包括將分組從路由器轉(zhuǎn)發(fā)到第一代理,而不修改至少一個附加頭部中的信息。
12.一種包括含有指令的機器可訪問存儲介質(zhì)的制品,所述指令在執(zhí)行時使片上系統(tǒng)(SoC): 確定將從第一代理發(fā)送的分組中是否包括附加頭部信息; 如果是,則將分組的第一頭部的擴展頭部指示符置位為第一狀態(tài),以指示分組的第二頭部的存在; 在第二頭部中包括附加頭部信息的至少一部分;以及 從第一代理發(fā)送包括第一和第二頭部和數(shù)據(jù)部分的分組。
13.如權(quán)利要求12所述的制品,還包括在執(zhí)行時導(dǎo)致系統(tǒng)在附加頭部信息的大小被調(diào)節(jié)以裝入第二頭部中時將第二頭部的擴展頭部指示符置位為第二狀態(tài)以指示分組中不包括其它頭部的指令。
14.如權(quán)利要求13所述的制品,還包括在執(zhí)行時導(dǎo)致系統(tǒng)在附加頭部信息的大小不被調(diào)節(jié)以裝入第二頭部中時將第二頭部的擴展頭部指示符置位為第一狀態(tài)以指示存在分組的第三頭部的指令。
15.如權(quán)利要求12所述的制品,還包括在執(zhí)行時導(dǎo)致系統(tǒng)將分組發(fā)送到經(jīng)由第一代理的邊帶接口耦合到第一代理的路由器的指令,所述分組的目的地是耦合到路由器的第二代理,其中第一頭部包括第二代理的目的地標識符,其中第一和第二代理以及路由器屬于SoC。
16.如權(quán)利要求12所述的制品,還包括在執(zhí)行時導(dǎo)致系統(tǒng)將擴展的頭部指示符和擴展的頭部標識符包括在第二頭部的第一流控制單元中并且將附加頭部信息包括在第一流控制單元之后的第二頭部的多個流控制單元中的指令。
17.如權(quán)利要求16所述的制品,其特征在于,所述附加頭部信息包括安全屬性信息。
18.一種裝置,包括: 第一代理,用于發(fā)送具有附加頭部信息的分組,其中所述第一代理將所述分組的第一頭部的擴展頭部指示符置位為指示存在分組的第二頭部,并且將附加頭部信息的至少一部分包括在第二頭部中并且發(fā)送包括第一和第二頭部以及數(shù)據(jù)部分的分組。 耦合到第一代理的路由器,用于接收分組并基于第一頭部將分組路由到第二代理;以及 耦合到路由器的第二代理。
19.如權(quán)利要求18所述的裝置,其特征在于,如果附加頭部信息的大小被調(diào)節(jié)以裝入第二頭部中,第一代理復(fù)位第二頭部的擴展頭部指示符,否則將第二頭部的擴展頭部指示符置位為指示存在分組的包括附加頭部信息的至少一部分的第三頭部。
20.如權(quán)利要求18所述的裝置,其特征在于,如果第二代理配置成處理安全屬性信息,則所述第二代理消 耗附加頭部信息中的數(shù)據(jù),所述數(shù)據(jù)包括安全屬性信息,否則丟棄安全屬性信息。
【文檔編號】H04L12/28GK103843294SQ201280047815
【公開日】2014年6月4日 申請日期:2012年9月20日 優(yōu)先權(quán)日:2011年9月29日
【發(fā)明者】S·拉克舍瑪納默西, M·C·亨塞克, M·T·克林格史密斯, B·范寧, R·R·韋瑪, R·P·阿德勒 申請人:英特爾公司