專利名稱:交換組構(gòu)網(wǎng)絡(luò)的分組處理的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及交換組構(gòu)(fabric)網(wǎng)絡(luò)中的分組處理。
背景技術(shù):
PCI Express(快速外圍組件互連)是開發(fā)用于滿足下一代計算機(jī)系統(tǒng)的更高帶寬要求的串行化I/O互連標(biāo)準(zhǔn)。PCI專業(yè)組(PCI-SIG)管理作為開放工業(yè)標(biāo)準(zhǔn)的許多PCI規(guī)范,包括PCI Express基本規(guī)范,修訂版1.0a,2003年4月15日,并將這些規(guī)范提供給其成員。
PCI Express(PCIe)組構(gòu)包括控制具有數(shù)個PCIe裝置的客戶機(jī)系統(tǒng)(例如臺式和膝上型)或服務(wù)器系統(tǒng)(例如工作站)的全局存儲器地址空間的單主機(jī)處理器(也稱作“根聯(lián)合體”)。對于客戶機(jī)系統(tǒng),這些PCIe裝置包括例如圖形、1394、千兆位以太網(wǎng)和TV調(diào)諧器卡。對于服務(wù)器系統(tǒng),僅舉幾個例子,這些PCIe裝置包括Ultra320SCSI RAID卡、光纖信道主機(jī)總線適配器(HBA)和1-千兆位和10-千兆位以太網(wǎng)卡。在加電和枚舉過程后,根聯(lián)合體通過遍歷經(jīng)過分層樹拓?fù)鋪碓儐栒麄€系統(tǒng)并定位系統(tǒng)中連接的所有PCIe裝置。主機(jī)處理器在全局存儲器地址空間內(nèi)為每個PCIe裝置分配一個地址空間,以便主機(jī)處理器與它們通信。
兩個PCIe裝置通過首先通過分配給始發(fā)PCIe裝置的地址空間將數(shù)據(jù)從始發(fā)PCIe裝置傳到根聯(lián)合體進(jìn)行通信。隨后,數(shù)據(jù)由主機(jī)處理器移到目標(biāo)PCIe裝置的地址空間并隨后向下遍歷到目標(biāo)PCIe裝置。這種通信不被認(rèn)為是兩個PCIe裝置之間的直接對等關(guān)系而是由主機(jī)處理器管理的間接關(guān)系。
PCIe被設(shè)計成完全與廣泛使用的PCI本地總線標(biāo)準(zhǔn)兼容。PCI開始碰到其性能限制,且雖然對PCI標(biāo)準(zhǔn)的擴(kuò)展已被開發(fā)用于支持更高的帶寬和更快的時鐘速度,但這些擴(kuò)展不足以滿足近期PC的快速增長的帶寬需求。由于其高速和可擴(kuò)展的串行架構(gòu),PCIe會是與計算機(jī)系統(tǒng)中的PCI一起使用或用作其可能替換物的誘人選項。PCIe適于提供具有單主機(jī)處理器和許多PCIe裝置的系統(tǒng)的可擴(kuò)展性。由于所有通信都在單主機(jī)處理器的控制之下,所以PCIe架構(gòu)通常并不適于包括多主機(jī)和對等通信的較大應(yīng)用空間。高級交換(AS)是基于PCIe架構(gòu)并使能各種底板架構(gòu)標(biāo)準(zhǔn)的技術(shù)。AS使用在PCIe物理和數(shù)據(jù)鏈接層上操作的基于分組的事務(wù)層協(xié)議。AS架構(gòu)提供諸如刀片服務(wù)器、簇、存儲陣列、電信路由器和交換機(jī)的多主機(jī)、對等通信裝置共用的許多特點。這些特點包括對柔性拓?fù)?、分組路由、阻塞管理(例如,基于信用的流控制)、組構(gòu)冗余和故障切換機(jī)制的支持。高級交換互連專業(yè)組(ASI-SIG)是特許提供交換組構(gòu)互連標(biāo)準(zhǔn)的合作同業(yè)公會,其規(guī)范包括高級交換核心架構(gòu)規(guī)范(Advanced Switching Core Architecture Specification),修訂版1.0,2003年12月(可從www.asi-sig.com的ASI-SIG獲得),它提供給其成員。
圖1是交換組構(gòu)網(wǎng)絡(luò)的框圖。
圖1a是PCIe交換機(jī)的框圖。
圖2a和2b是協(xié)議棧的示圖。
圖3是AS事務(wù)層分組(TLP)格式的示圖。
圖4是AS路由報頭格式的示圖。
圖5是具有PI-8主機(jī)交換機(jī)的PCIe-AS橋路的示圖。
具體實施例方式
圖1示出了交換組構(gòu)網(wǎng)絡(luò)100,它包括高級交換(AS)組構(gòu)102。網(wǎng)絡(luò)100包括AS組構(gòu)102內(nèi)的AS交換元件(未示出)和駐留在AS組構(gòu)102的邊緣的AS端點104(例如,CPU芯片組、網(wǎng)絡(luò)處理器、數(shù)字信號處理器、媒體存取和主機(jī)適配器)。AS交換元件構(gòu)成AS組構(gòu)102的內(nèi)部節(jié)點,并提供與其它AS交換元件和AS端點104的互連。
AS端點104表示交換組構(gòu)的數(shù)據(jù)入口和出口點。這些AS端點104中的一部分可封裝和/或轉(zhuǎn)化通過其內(nèi)部協(xié)議接口(PI)進(jìn)入和退出AS組構(gòu)102的分組,并可以被視作AS組構(gòu)和其它通信基礎(chǔ)結(jié)構(gòu)(例如,源PCIe組構(gòu)110和目標(biāo)PCIe組構(gòu)112a-d)之間的“橋路”。每個PCIe組構(gòu)110、112a-d都包含主機(jī)處理器(例如,PCIe組構(gòu)110、112的主機(jī)處理器110a、122a)和一個或多個PCIe裝置(例如,PCIe組構(gòu)110、112a的PCIe裝置110b-110d、122b-122d)。
為了在橋型AS端點和非橋型AS端點(例如組構(gòu)管理器)之間進(jìn)行區(qū)分,術(shù)語“PCIe-AS橋路”106被用于表示將源PCIe組構(gòu)110橋接到AS組構(gòu)102的AS端點,且術(shù)語“AS-PCIe橋路”108a-108d被用于表示將AS組構(gòu)102橋接到目標(biāo)PCIe組構(gòu)112a-112d的AS端點。每個PCIe-AS橋路106都包括PI-8主機(jī)交換機(jī),且每個AS-PCIe橋路108a-108d都包括PI-8I/O交換機(jī)。PI-8主機(jī)和I/O交換機(jī)符合PCI-Express到高級交換橋路架構(gòu)規(guī)范,修訂版1.0,2004年2月(可從www.asi-sig.org處的ASI-SIG獲得),并用作PCIe交換機(jī)。
圖1a示出了符合PCI Express基本規(guī)范的PCIe交換機(jī)的框圖。該PCIe交換機(jī)包括多個虛擬PCI到PCI橋路的邏輯組合,其中每個虛擬PCI到PCI橋路都符合PCI到PCI橋路架構(gòu)規(guī)范,修訂版1.2,2003年6月(可從www.pcisig.org處的PCI-SIG獲得)。如以下參考圖5詳細(xì)描述的,PI-8主機(jī)交換機(jī)510通過下游穿越(tunneling)處理器、上游穿越處理器和PCIe配置空間的組合來邏輯實現(xiàn)圖1a的PCIe交換機(jī)的功能。
為便于源PCIe組構(gòu)110和目標(biāo)PCIe組構(gòu)112a之間的通信,可由PCIe-AS橋路106和I/O交換機(jī)108a對PCIe事務(wù)層分組(TLP)分組執(zhí)行封裝—穿越—提取過程。在以下參考圖5更詳細(xì)描述的一個示例中,源PCIe裝置110b產(chǎn)生的PCIeTLP分組(且目的地為目標(biāo)PCIe裝置112b)在PCIe-AS橋路106處通過附加AS路由報頭以形成AS分組而被封裝。AS分組利用AS路由報頭限定的路徑穿越AS組構(gòu)102到達(dá)AS-PCIe橋路108a。AS-PCIe橋路108a接收該AS分組、剝?nèi)S分組的AS路由報頭以提取原始的PCIe TLP分組,并經(jīng)過PCIe組構(gòu)112a將提取出的PCIe TLP分組傳遞到目標(biāo)PCIe裝置112b。
雖然該示例特別地涉及對PCIe TLP分組執(zhí)行封裝—穿越—提取過程,但諸如以太網(wǎng)、光纖信道和Infiniband的其它協(xié)議的分組也可通過AS組構(gòu)102穿越。通過單個的通用AS組構(gòu)可同時穿越協(xié)議的混合,使其成為諸如媒體網(wǎng)關(guān)、寬帶存取路由器和刀片服務(wù)器的下一代模塊應(yīng)用的強大和期望的特點。
每個AS交換元件和AS端點104(橋路和非橋路)具有一AS接口,它是高級交換核心架構(gòu)規(guī)范,修訂版1.0,2003年12月(從www.asi-sig.com處的ASI-SIG獲得)所定義的AS架構(gòu)的一部分。該AS架構(gòu)使用基于分組的事務(wù)層協(xié)議(“AS事務(wù)層”206),它如圖2a所示在PCIe物理和數(shù)據(jù)鏈接層202、204上運行或者如圖2b所示在分開的AS物理和數(shù)據(jù)鏈接層208、210上運行。
AS使用路徑限定的路由方法,其中AS分組的源提供要將AS分組路由到期望目的地的一個交換機(jī)(或多個交換機(jī))所需的所有信息。圖3示出了AS事務(wù)層分組(TLP)格式300。AS分組包括AS報頭302和封裝的分組有效負(fù)荷304。AS報頭302包含通過AS組構(gòu)102路由AS分組所必需的信息(即,“路徑”)以及指明AS有效負(fù)荷304的協(xié)議接口(PI)的字段。AS交換元件使用AS報頭302中包含的信息路由AS分組,而不必要求AS有效負(fù)荷304的內(nèi)容的解釋。
路徑可由AS報頭302中的轉(zhuǎn)向庫(turn pool)402、轉(zhuǎn)向指針404和方向標(biāo)記405定義,如圖4所示。AS分組的轉(zhuǎn)向指針指示轉(zhuǎn)向庫內(nèi)交換機(jī)的“轉(zhuǎn)向值”的位置。當(dāng)接收到AS分組時,AS交換元件利用轉(zhuǎn)向指針、方向標(biāo)記和交換機(jī)的轉(zhuǎn)向值比特寬度提取分組的轉(zhuǎn)向值。AS交換元件所提取的轉(zhuǎn)向值被用于計算出口端口。
AS路由報頭302中的PI字段確定封裝的分組有效負(fù)荷304的格式。PI字段由產(chǎn)生AS分組的AS端點104插入,并由終止該AS分組的AS端點104使用,來正確地解釋分組內(nèi)容。路由信息與AS分組的其余部分的分離使得AS組構(gòu)102能穿越任何協(xié)議的分組。
PI表示組構(gòu)管理和與AS網(wǎng)絡(luò)100相連的應(yīng)用級接口。表1提供了AS規(guī)范當(dāng)前所支持的PI列表。
表1——AS協(xié)議封裝接口PI0-7用于各種組構(gòu)管理任務(wù),而PI8-126是供應(yīng)商定義的接口。如表1所示,PI-8用于穿越或封裝本地PCIe分組并在以下參考圖5更詳細(xì)地加以討論。
AS架構(gòu)支持通過AS組構(gòu)的直接端點到端點的邏輯路徑的建立,它被稱為虛擬信道(VC)。這使得單個網(wǎng)絡(luò)能同時服務(wù)多個獨立的邏輯互連,每個VC都互連AS端點104用于控制、管理和數(shù)據(jù)。每個VC都提供其自己的隊列,從而一個VC中的阻斷不會引起另一VC中的阻斷。每個VC都可具有獨立的分組排序要求,因此每個VC都可不依賴于其它VC而被調(diào)度。
AS架構(gòu)定義三種VC類型能旁路單點傳送(BVC);唯按序單點傳送(OVC);和多點傳送(MVC)。BVC具有旁路能力,這對于通常為加載/存儲的某些協(xié)議的免死鎖穿越來說是必需的。OVC是單隊列的單點傳送VC,它適于消息定向的“推送”通信量。MVC是用于多點傳送“推送”通信量的單隊列VC。
AS架構(gòu)提供許多阻塞管理技術(shù),其中之一是確保不會由于阻塞丟失AS分組的基于信用的流控制技術(shù)。網(wǎng)絡(luò)中的鏈接伙伴(例如,AS端點104和AS交換元件)交換流控制信用信息,以確保鏈接的接收端具有接受AS分組的能力。流控制信用基于每個VC由鏈接的接收端進(jìn)行計算并傳送給鏈接的發(fā)送端。通常,僅當(dāng)特殊VC有足夠的可用信用來運送AS分組時才發(fā)送分組。在發(fā)送分組時,鏈接的發(fā)送端通過反映分組大小的流控制信用量在其可用的信用賬戶中記入借方。在鏈接的接收端處理(例如,傳送到AS端點104)接收到的AS分組時,使得空間在相應(yīng)的VC上可用,并將流控制信用返回給鏈接的發(fā)送端。隨后,鏈接的發(fā)送端將該流控制信用添加到其信用賬戶。
AS架構(gòu)支持網(wǎng)絡(luò)100的每個AS裝置(例如,AS端點104)中的AS配置空間的實現(xiàn)。AS配置空間是包括指定裝置特征的字段以及用于控制AS裝置的字段的存儲區(qū)域。AS配置空間包括多達(dá)16個的可用存儲配置信息的孔。每個孔都包括達(dá)4千兆字節(jié)的存儲量并且是32比特可尋址的。配置信息以性能結(jié)構(gòu)和其它存儲結(jié)構(gòu)的形式存在,諸如表和寄存器組。表2提供了由AS規(guī)范定義的并存儲在AS配置空間的孔0中的一組性能結(jié)構(gòu)(“AS本地性能結(jié)構(gòu)”)。
表2——AS本地性能結(jié)構(gòu)如果給出合適的許可,AS本地性能結(jié)構(gòu)中存儲的信息可本地和/或全局地訪問。通常,許可經(jīng)由全局使能比特和本地使能比特控制。每個全局使能比特都啟用或禁用對AS配置空間的孔的全局訪問,即將全局使能比特設(shè)定為1將允許從AS組構(gòu)中的任何其它裝置對孔進(jìn)行訪問。同樣,每個本地使能比特啟用或禁用對AS配置空間的孔的本地訪問,即將本地使能比特設(shè)定為1將允許從本地處理器的對孔的訪問。初級和次級組構(gòu)管理器總是具有對所有孔的讀取和寫入許可。
在交換組構(gòu)網(wǎng)絡(luò)100的一個實現(xiàn)中,組構(gòu)管理器選擇過程可通過各種硬件或軟件機(jī)制開始,來為交換組構(gòu)網(wǎng)絡(luò)選擇一個或多個組構(gòu)管理器。組構(gòu)管理器是一AS端點104,它“擁有”網(wǎng)絡(luò)100中包括其自身的所有AS裝置。如果選擇多個組構(gòu)管理器,例如初級組構(gòu)管理器和次級組構(gòu)管理器,則每個組構(gòu)管理器都可擁有網(wǎng)絡(luò)100中AS裝置的子集?;蛘撸渭壗M構(gòu)管理器可在例如組構(gòu)冗余和故障切換機(jī)制所造成的初級組構(gòu)管理器故障時聲明對網(wǎng)絡(luò)中AS裝置的所有權(quán)。
一旦組構(gòu)管理器聲明了所有權(quán),則它具有對其AS裝置的AS本地性能結(jié)構(gòu)的特許訪問。換句話說,該組構(gòu)管理器可對網(wǎng)絡(luò)中所有AS裝置的AS本地性能結(jié)構(gòu)的所有孔進(jìn)行讀取和寫入存取。
如前所述,AS裝置的AS本地性能結(jié)構(gòu)可通過PI-4分組訪問。因此,包括PCIe-AS橋路106的網(wǎng)絡(luò)100中的每個AS裝置都可被實現(xiàn)為包括AS PI-4單元,用于處理經(jīng)過網(wǎng)絡(luò)例如從組構(gòu)管理器接收的PI-4分組。
參考圖5,PCIe-AS橋路106包括AS單元502,它實現(xiàn)在AS物理層210和AS數(shù)據(jù)鏈接層208上運行的AS事務(wù)層206。在一個示例中,AS單元502包括PI-4單元506,以及包括一個或多個AS本地性能結(jié)構(gòu)508a的AS配置空間508。
AS組構(gòu)102上PCIe-AS橋路106處接收的PI-4分組從AS物理層210和AS數(shù)據(jù)鏈接層208傳遞到PI-4單元506,用于通過AS事務(wù)層接口566進(jìn)行處理。在接收到PI-4分組之后,PI-4單元506可在處理分組之前執(zhí)行一個或多個分組確認(rèn)操作。在一個示例中,PI-4單元506執(zhí)行配置空間許可檢查,以確定產(chǎn)生PI-4分組的例如組構(gòu)管理器或組構(gòu)上的任何裝置(如果已為該孔設(shè)定了全局寫入使能比特)的AS端點104是否具有對訪問PCIe-AS橋路106的AS本地性能結(jié)構(gòu)508a的合適許可(例如寫入許可)。如果PI-4分組無效,則PI-4單元506放棄該PI-4分組,生成一錯誤信號,并將該錯誤信號發(fā)送給PI-4單元506外部的處理器。在一種實現(xiàn)中,外部處理器(未示出)響應(yīng)于該錯誤信號生成PI-5(事件通知)分組。
如果所接收的PI-4分組有效,則PI-4單元506利用AS路由報頭中與操作類型字段相關(guān)聯(lián)的字段值識別分組類型。表3示出了如何利用操作類型字段識別分組。
表3——PI-4分組類型如果有效的PI-4分組被識別為寫分組,則PI-4單元506處理一寫命令以便將例如從所接收的PI-4分組的有效負(fù)荷中提取出來的數(shù)據(jù)寫到在所接收的PI-4分組報頭中的孔數(shù)和地址中指定的AS本地性能結(jié)構(gòu)508a中的位置。在一示例中,組構(gòu)管理器512配置PCIe-AS橋路106和AS-PCIe橋路108a-108d之間經(jīng)由PI-4分組的綁定,其中該綁定限定于作為AS本地性能結(jié)構(gòu)508a的一部分的PI-8裝置PI性能結(jié)構(gòu)508b中存儲的一個或多個綁定寄存器組中。每個綁定寄存器都提供將PCIe交換機(jī)(例如由PCIe-AS橋路106的PI-8主機(jī)交換機(jī)510邏輯實現(xiàn))的下游端口與AS-PCIe橋路108a-108d的I/O交換機(jī)綁定的路徑信息。PCIe-AS橋路106的PI-8主機(jī)交換機(jī)510使用該路徑信息來構(gòu)建正確的AS報頭并執(zhí)行如下所述的路徑保護(hù)檢查。
PCIe TLP分組(例如,PCIe存儲器TLP分組、PCIe I/O TLP分組、PCIe配置TLP分組和PCIe消息TLP分組)在PI-8主機(jī)交換機(jī)510處經(jīng)過PCIe物理層202、PCIe數(shù)據(jù)綁定層204和PCIe事務(wù)層接口520從源PCIe組構(gòu)110接收。與PCIe事務(wù)層接口520相連的PCIe下游隊列522為下游PCIe TLP分組提供緩沖空間。PCIe下游隊列522遵守標(biāo)準(zhǔn)PCI事務(wù)排序規(guī)則,要求在阻斷未標(biāo)出事務(wù)的情況下標(biāo)出的事務(wù)超過未標(biāo)出的事務(wù)。由于缺少AS發(fā)送器564處可用的可旁路信用,未標(biāo)出的事務(wù)會在AS單元502中被阻斷。在缺少阻斷條件的情況下,PCIe事務(wù)按它們的接收順序被提供給下游穿越處理器524。
在接收到PCIe分組之后,下游穿越處理器524執(zhí)行如PCI-Express到高級交換橋路架構(gòu)規(guī)范中所規(guī)定的一系列檢查。例如,執(zhí)行分組傳遞檢查以確定AS組構(gòu)102內(nèi)PCIe TLP分組的目標(biāo)路徑。下游穿越處理器524使用PCIe TLP分組的格式和類型字段來確定目標(biāo)存儲器空間(存儲器、I/O、配置、消息或完成),其選擇PCIe配置空間526中寄存器之間的合適的比較函數(shù)以及PCIe分組中包含的地址/路由指示符。成功的比較引起經(jīng)由虛擬內(nèi)部總線向其傳送PCIe分組的下游端口的選擇。在圖1a的標(biāo)準(zhǔn)PCIe交換機(jī)中,PCIe分組將被傳遞給至少由PCIe物理和數(shù)據(jù)鏈接層構(gòu)成的物理唯一的下游端口實例,和業(yè)務(wù)層接口。對于被實現(xiàn)為邏輯上用作PCIe交換機(jī)的PI-8主機(jī)交換機(jī)510,通過每個下游端口路由的通信量經(jīng)由單個AS物理層210、AS數(shù)據(jù)鏈接層208和AS事務(wù)層206棧被物理傳輸。為了完成該過程,下游穿越處理器524預(yù)先掛起將封裝的PCIe分組通過AS組構(gòu)102路由到AS-PCIe橋路108a、108d的目標(biāo)I/O交換機(jī)的唯一AS報頭。由于不將PCIe分組從上游端口物理傳遞到下游端口,所以由下游穿越處理器524為PI-8主機(jī)交換機(jī)510中的所有端口執(zhí)行所有的下游分組確認(rèn)和路由功能。
對于PCIe配置TLP,下游穿越處理器524識別分組的配置類型(即,類型0或類型1)。對于PCIe類型0配置TLP分組,下游穿越處理器524將分組的有效負(fù)荷寫到由PCIe配置TLP的寄存器數(shù)字段指定的上游端口的PCIe配置空間526中的寄存器或者從其中讀取數(shù)據(jù),并經(jīng)由PCIe上游隊列仲裁器(532)將PCIe完成TLP返回給請求者。對于PCIe類型1配置TLP分組,下游穿越處理器524比較PCIe配置TLP的總線數(shù)字段與上游端口PCIe配置空間526的次級總線數(shù)字段。如果出現(xiàn)匹配,則下游穿越處理器524將分組的有效負(fù)荷寫入由PCIe配置TLP的裝置和寄存器數(shù)字段所指定的下游端口的PCIe配置空間526中的寄存器或者從其中讀取數(shù)據(jù),并經(jīng)由PCIe上游隊列仲裁器532將PCIe完成TLP返回給請求者。如果PCIe類型1配置TLP的總線數(shù)字段匹配下游端口的次級總線數(shù)字段之一,則類型1配置周期被轉(zhuǎn)換為類型0配置周期,合適的AS報頭對PCIe TLP預(yù)先掛起,且封裝的PCIe配置TLP被傳遞給AS事務(wù)層206用于AS組構(gòu)102上的傳輸。如果PCIe類型1配置TLP的總線數(shù)字段落在由下游端口的PCIe配置空間526之一中的次級(排他)和附屬(內(nèi)含)總線數(shù)限定的總線數(shù)窗之一內(nèi),則合適的AS報頭對PCIe TLP預(yù)先掛起,且封裝的PCIe配置TLP被不變地傳遞給AS事務(wù)層206,用于AS組構(gòu)102上的傳輸。所有這些檢查都失敗時,下游穿越處理器524將生成經(jīng)由PCIe上游隊列仲裁器532提供給請求者的未支持請求的PCIe完成TLP,并執(zhí)行錯誤處理,如PCI-Express到高級交換橋路架構(gòu)規(guī)范中所規(guī)定的。
對于PCIe存儲器TLP,下游穿越處理器524比較PCIe TLP的地址字段與由上游端口的PCIe配置空間526中包含的存儲器基本和存儲器限制字段(以及可預(yù)取的存儲器基本/限制字段)限定的存儲器窗。如果PCIe TLP落在這些存儲器窗之一內(nèi),則將PCIe TLP從上游端口的初級向次級接口傳遞,它是PI-8主機(jī)交換機(jī)510的虛擬內(nèi)部總線。接著,將PCIe存儲器TLP的地址字段與由PCIe配置空間526中存儲器及可預(yù)取的存儲器基本和限制字段所限定的每個下游端口的存儲器窗進(jìn)行比較。匹配會出現(xiàn)于一個且只有一個下游端口存儲器窗上,它選擇下游端口,合適的AS報頭對PCIe存儲器TLP預(yù)先掛起,且封裝的PCIe存儲器TLP被傳遞給AS事務(wù)層206,用于AS組構(gòu)102上的傳輸。通過上游或下游端口中的存儲器傳遞規(guī)則的失敗使得下游穿越處理器采用PCI-Express到高級交換橋路架構(gòu)規(guī)范所規(guī)定的錯誤處理,包括經(jīng)由PCIe上游隊列仲裁器532將未支持請求的PCIe完成TLP返回給請求者,經(jīng)由PCIe上游隊列仲裁器532生成系統(tǒng)錯誤消息,以及在PCIe配置空間526中設(shè)定合適比特。
對于PCIe I/O TLP,下游穿越處理器524比較PCIe TLP的地址字段與由上游端口的PCIe配置空間526中包含的I/O基礎(chǔ)和限制字段限定的存儲器窗。如果PCIeTLP落在該窗內(nèi),則PCIe TLP從上游端口的初級向次級接口傳遞,它是PI-8主機(jī)交換機(jī)510的虛擬內(nèi)部總線。接著,將PCIe I/O TLP的地址字段與由PCIe配置空間526中的I/O基本和限制字段所限定的每個下游端口的存儲器窗進(jìn)行比較。匹配會出現(xiàn)于一個且只有一個下游端口存儲器窗上,它選擇下游端口,使合適的AS報頭對PCIe I/O TLP預(yù)先掛起,以及將封裝的PCIe I/O TLP傳遞給AS事務(wù)層206,用于AS組構(gòu)102上的傳輸。通過上游或下游端口中的I/O傳遞規(guī)則的失敗使得下游穿越處理器采用PCI-Express到高級交換橋路架構(gòu)規(guī)范所規(guī)定的錯誤處理,包括經(jīng)由PCIe上游隊列仲裁器532將未支持請求的PCIe完成TLP返回給請求者,經(jīng)由PCIe上游隊列仲裁器532生成系統(tǒng)錯誤消息,以及在PCIe配置空間526中設(shè)定合適比特。
對于PCIe完成TLP,下游穿越處理器524比較PCIe TLP中請求者ID字段的總線數(shù)子字段與上游端口的PCIe配置空間中包含的次級(排他)和附屬(內(nèi)含)總線數(shù)。如果PCIe完成TLP落在總線數(shù)窗內(nèi),則PCIe TLP從上游端口的初級向次級接口傳遞,它是PI-8主機(jī)交換機(jī)510的虛擬內(nèi)部總線。接著,將PCIe TLP中的請求者ID字段的總線數(shù)子字段與每一個下游端口的次級(內(nèi)含)和附屬(內(nèi)含)總線數(shù)進(jìn)行比較。,匹配會出現(xiàn)于一個且只有一個下游端口總線數(shù)窗上,它選擇下游端口,使合適的AS報頭對PCIe完成TLP預(yù)先掛起,以及將封裝的PCIe完成TLP傳遞給AS事務(wù)層206,用于AS組構(gòu)102上的傳輸。通過上游或下游端口中的完成傳遞規(guī)則的失敗使得下游穿越處理器采用PCI-Express到高級交換橋路架構(gòu)規(guī)范所規(guī)定的錯誤處理。
對于PCIe消息TLP,下游穿越處理器524評估類型字段的消息路由子字段以及PCIe TLP的消息碼字段。消息碼字段識別INTx中斷信令、電源管理、錯誤信令、鎖定事務(wù)、槽功率限制、供應(yīng)商限定和熱插拔消息類型。下游穿越處理器524根據(jù)PCI-Express到高級交換橋路架構(gòu)和PCI Express基本規(guī)范處理這些消息類型中的每一個。
下游穿越處理器524對傳遞給該AS事務(wù)層206用于AS組構(gòu)102上的傳輸?shù)乃蠵CIe TLP分組預(yù)先掛起AS報頭。表4歸納了如何產(chǎn)生示例AS報頭的每個比特字段。
表4——AS報頭字段生成下游穿越處理器524通過預(yù)先掛起合適的AS報頭來封裝PCIe TLP,并經(jīng)過AS下游隊列仲裁器530將封裝后的分組傳遞給AS事務(wù)層206中的AS下游協(xié)議接口仲裁器560。傳遞接口由VC指示器構(gòu)成,它由AS下游協(xié)議接口仲裁器560用于將分組引導(dǎo)到合適的下游虛擬信道562。VC仲裁器/AS發(fā)送器單元564基于仲裁算法和可用信用來選擇用于發(fā)送的VC,并經(jīng)由AS數(shù)據(jù)鏈接層208和物理層210通過AS事務(wù)層接口566將分組傳遞給AS組構(gòu)102。該分組在AS-PCIe橋路108a-108d處的目標(biāo)I/O交換機(jī)接收,在那里將接收到的分組去封裝,并將PCIeTLP路由到目標(biāo)PCIe組構(gòu)112a-112d。
AS單元502處從AS組構(gòu)102接收到的AS分組經(jīng)過AS物理層210和數(shù)據(jù)鏈接層208并通過AS事務(wù)層接口566到達(dá)AS事務(wù)層206中的AS接收器/VC路由器單元568。AS接收器568執(zhí)行基本AS分組檢查(例如,HCRC、PCRC等)且VC路由器568將接收到的分組推入接收虛擬信道隊列570之一。AS上游協(xié)議接口路由器572將每個VC隊列首部處的分組路由到合適的PI處理引擎。對于AS PI-8分組,AS上游協(xié)議接口路由器572將每個VC的首部處的PI-8分組路由到AS上游VC仲裁器538。AS上游VC仲裁器538仲裁從多個VC源對單個AS上游隊列540的訪問,該單個AS上游隊列540向進(jìn)入的AS分組提供緩沖空間使得AS分組能盡可能快地從接收虛擬信道570中去除。存在涉及處理ASPI-8分組的固有延遲,并使PI-8單元510中的AS上游隊列540保護(hù)AS組構(gòu)102不受該延遲影響,從而允許使流控制信用快速地為AS單元的鏈接伙伴所獲得。AS上游隊列540可實現(xiàn)為先進(jìn)先出(FIFO)結(jié)構(gòu),它按接收順序?qū)S分組提供給上游穿越處理器542。
在接收到AS PI-8分組之后,上游穿越處理器542執(zhí)行如PCI-Express到高級交換橋路架構(gòu)規(guī)范中所規(guī)定的一系列檢查。上游穿越處理器542執(zhí)行兩種類型的分組檢查-AS分組檢查和PCIe分組檢查。AS分組檢查基本上驗證了AS報頭有效性。例如,上游穿越處理器542使用在PI-8裝置PI性能結(jié)構(gòu)508b中存儲的轉(zhuǎn)向庫信息來執(zhí)行路徑保護(hù)檢查,以確保PI-8分組源自適當(dāng)綁定到PI-8主機(jī)交換機(jī)510的AS-PCIe橋路108a-108d處的I/O交換機(jī)。上游穿越處理器542隨后基于AS PI-8分組的PCIe TLP有效負(fù)荷執(zhí)行正向檢查。一般而言,PI-8主機(jī)交換機(jī)510被附到PCI分層結(jié)構(gòu)樹的根聯(lián)合體,且上游配置和I/O類型TLP是非法的。因此,典型的上游PCIe TLP類型是存儲器、完成和消息。不能通過AS PI-8或PCIe分組有效性檢查使得上游穿越處理器542采用PCI-Express到高級交換橋路架構(gòu)規(guī)范所規(guī)定的錯誤處理。這包括生成經(jīng)由PI-5接口到達(dá)分組消息創(chuàng)建者的AS PI-8事件分組,經(jīng)由PCIe下游隊列仲裁器530將AS封裝的未支持請求的PCIe完成TLP返回給請求者,經(jīng)由上游隊列仲裁器532生成上游PCIe消息,并在PCIe配置空間526中設(shè)定合適比特。
對于上游PCIe存儲器TLP,上游穿越處理器542比較PCIe TLP的地址字段與接收到的下游端口的PCIe配置空間526中包含的存儲器基本和存儲器限制字段(以及可預(yù)取的存儲器基本/限制字段)限定的存儲器窗。如果PCIe TLP地址落在所有這些存儲器窗之外,則將PCIe TLP從接收到的下游端口的次級向初級接口傳遞,它是PI-8主機(jī)交換機(jī)的虛擬內(nèi)部總線。接著,將PCIe存儲器TLP的地址字段與上游端口的PCIe配置空間526中的存儲器及可預(yù)取存儲器基本和限制字段所限定的上游端口的存儲器窗進(jìn)行比較。如果PCIe TLP地址落在所有上游端口的存儲器窗之外,則AS報頭被剝?nèi)デ襊CIe存儲器TLP通過PCIe上游隊列仲裁器532被傳遞給PCIe上游隊列534。
對于上游PCIe完成TLP,上游穿越處理器542比較PCIe TLP中請求中ID字段的總線數(shù)子字段與接收到的下游端口的PCIe配置空間526中包含的次級(內(nèi)含)和附屬(內(nèi)含)總線數(shù)。如果PCIe完成TLP落在總線數(shù)窗之外,則PCIe TLP從下游端口的次級向初級接口傳遞,它是PI-8主機(jī)交換機(jī)510的虛擬內(nèi)部總線。接著,將PCIe TLP中的請求者ID字段的總線數(shù)子字段與上游端口的次級(內(nèi)含)和附屬(內(nèi)含)總線數(shù)進(jìn)行比較,且如果PCIe TLP請求總線數(shù)落在上游端口的總線數(shù)窗之外,則AS報頭被剝?nèi)デ襊CIe存儲器TLP通過PCIe上游隊列仲裁器532被傳遞給PCIe上游隊列534。
對于上游PCIe消息TLP,上游穿越處理器542評估類型字段的消息路由子字段以及PCIe TLP的消息碼字段。消息碼字段識別INTx中斷信令、電源管理、錯誤信令、鎖定事務(wù)、槽功率限制、供應(yīng)商限定和熱插拔消息類型。上游穿越處理器542根據(jù)PCI-Express到高級交換橋路架構(gòu)和PCI Express基本規(guī)范處理這些消息類型中的每一個。
上游穿越處理器542經(jīng)由PCIe鏈接層204和物理層202通過PCIe事務(wù)層接口520從PCIe上游隊列534傳遞給PCIe組構(gòu)110。PCIe上游隊列534遵守標(biāo)準(zhǔn)PCI事務(wù)排序規(guī)則,要求在阻斷未標(biāo)出事務(wù)的情況下使標(biāo)出的事務(wù)超過未標(biāo)出的事務(wù)。由于缺少PCIe組構(gòu)110中PCIe鏈接伙伴處可用的未標(biāo)出信用,可以阻斷未標(biāo)出的事務(wù)。在缺乏阻斷條件的情況下,PCIe事務(wù)按接收到的順序提供給PCIe事務(wù)層接口520。
本發(fā)明和本說明書中描述的所有功能操作都可在數(shù)字電子電路中或者在計算機(jī)硬件、固件、軟件或它們的組合中實現(xiàn)。本發(fā)明可實現(xiàn)為計算機(jī)程序產(chǎn)品,即有形地體現(xiàn)于信息載體內(nèi)的計算機(jī)程序,例如在機(jī)器可讀的存儲裝置中或傳播信號中用于由數(shù)字處理裝置執(zhí)行或者控制數(shù)字處理裝置的操作,所述數(shù)字處理裝置例如可編程處理器、一個計算機(jī)或多個計算機(jī)。計算機(jī)程序可用包括匯編或翻譯語言的任何編程語言形式編寫,且它可以用任何形式配置,包括獨立程序或作為一模塊、組件、子例程或適于在計算機(jī)環(huán)境中使用的其它單元。計算機(jī)程序可配置成在一臺計算或者在一個站點上或分布于多個站點上并通過通信網(wǎng)絡(luò)互連的多臺計算機(jī)上執(zhí)行。
本發(fā)明的方法步驟可通過一個或多個可編程處理器執(zhí)行,它們執(zhí)行計算機(jī)程序以通過對輸入數(shù)據(jù)進(jìn)行操作并生成輸出而實現(xiàn)本發(fā)明的功能。方法步驟也可由專用邏輯電路執(zhí)行,且本發(fā)明的裝置可以實現(xiàn)為專用邏輯電路,例如FPGA(現(xiàn)場可編程門陣列)或ASIC(專用集成電路)。
作為示例,適合于計算機(jī)程序執(zhí)行的處理器包括通用和專用微處理器,以及任何類型的數(shù)字計算機(jī)的任何一個或多個處理器。通常,處理器從只讀存儲器或隨機(jī)存取存儲器或者這兩者接收指令和數(shù)據(jù)。計算機(jī)的基本元件是用于執(zhí)行指令的處理器以及用于存儲指令和數(shù)據(jù)的一個或多個存儲器裝置。通常,計算機(jī)還包括用于存儲數(shù)據(jù)的一個或多個大容量存儲裝置,或可操作地耦合成從這些存儲裝置接收數(shù)據(jù)或向它們傳遞數(shù)據(jù),這些大容量存儲裝置例如磁盤、磁光盤或光盤。適于包含計算機(jī)程序指令和數(shù)據(jù)的信息載體包括所有形式的非易失性存儲器,作為示例包括半導(dǎo)體存儲裝置,例如EPROM、EEPROM和閃存裝置;磁盤,例如內(nèi)部硬盤或可拆卸盤;磁光盤;以及CD-ROM和DVD-ROM盤。處理器和存儲器可補充或結(jié)合入專用邏輯電路。
本發(fā)明可在計算機(jī)系統(tǒng)中實現(xiàn),它包括例如作為數(shù)據(jù)服務(wù)器的后端組件,或者包括例如應(yīng)用服務(wù)器的中間件組件,或者包括例如具有用戶可與本發(fā)明的實現(xiàn)進(jìn)行交互的圖形用戶界面或Web瀏覽器的客戶機(jī)計算機(jī)的前端組件,或者這些后端、中間件或前端組件的任何組合。系統(tǒng)組件可通過任何形式或例如通信網(wǎng)絡(luò)的數(shù)字?jǐn)?shù)據(jù)通信媒介進(jìn)行互連。通信網(wǎng)絡(luò)的示例包括局域網(wǎng)(LAN)、例如因特網(wǎng)的廣域網(wǎng)(WAN)以及無線網(wǎng)絡(luò)。
計算機(jī)系統(tǒng)可包括客戶機(jī)和服務(wù)器??蛻魴C(jī)和服務(wù)器通常彼此遠(yuǎn)離且通常通過通信網(wǎng)絡(luò)進(jìn)行交互??蛻魴C(jī)和服務(wù)器的關(guān)系依靠各計算機(jī)上運行并具有相互的客戶機(jī)—服務(wù)器關(guān)系的計算機(jī)程序產(chǎn)生。
本發(fā)明已按照特殊實施例進(jìn)行描述。其它實施例也在以下權(quán)利要求書的范圍之內(nèi)。例如,本發(fā)明的步驟可以按不同的順序執(zhí)行并仍實現(xiàn)期望的結(jié)果。
權(quán)利要求
1.一種可作為具有一上游端口和N個下游端口的虛擬快速外圍組件互連(PCIe)交換機(jī)運作的通信裝置,該裝置包括與PCIe組構(gòu)相連的第一接口,用于在PCIe組構(gòu)和所述裝置之間傳遞通信;與高級交換(AS)組構(gòu)相連的第二接口,用于在所述裝置和AS組構(gòu)之間傳遞通信;以及下游穿越處理器,用于處理通過第一接口接收到的分組,每個接收到的分組的處理包括根據(jù)與接收到的分組相關(guān)聯(lián)的下游端口標(biāo)識符將AS路徑綁定信息應(yīng)用于接收到的分組。
2.如權(quán)利要求1所述的裝置,其特征在于,還包括一個或多個配置寄存器,每個配置寄存器都限定與端口標(biāo)識符相關(guān)聯(lián)的存儲器空間。
3.如權(quán)利要求2所述的裝置,其特征在于,與端口標(biāo)識符相關(guān)聯(lián)的所述存儲器空間包括存儲器窗、I/O窗和配置空間中的至少一個。
4.如權(quán)利要求1所述的裝置,其特征在于,還包括一個或多個綁定寄存器,每個綁定寄存器都包括將下游端口標(biāo)識符綁定到AS組構(gòu)上的另一裝置的路徑信息。
5.如權(quán)利要求1所述的裝置,其特征在于,還包括設(shè)置于第一接口和下游穿越處理器之間的PCIe下游隊列,所述PCIe下游隊列為在PCIe組構(gòu)上接收到的分組提供緩沖空間。
6.如權(quán)利要求5所述的裝置,其特征在于,所述PCIe下游隊列包括先進(jìn)先出(FIFO)數(shù)據(jù)結(jié)構(gòu)。
7.如權(quán)利要求1所述的裝置,其特征在于,還包括上游穿越處理器,用于處理通過第二接口接收到的AS分組。
8.如權(quán)利要求7所述的裝置,其特征在于,還包括與下游穿越處理器和上游穿越處理器通信的上游隊列,所述上游隊列用于為要在PCIe組構(gòu)上傳送的基分組提供緩沖空間。
9.如權(quán)利要求7所述的裝置,其特征在于,還包括與下游穿越處理器和上游穿越處理器通信的上游隊列仲裁器,所述上游隊列仲裁器仲裁下游穿越處理器和上游穿越處理器之間對上游隊列的訪問。
10.如權(quán)利要求7所述的裝置,其特征在于,還包括與下游穿越處理器和上游穿越處理器通信的下游隊列仲裁器,所述下游隊列仲裁器仲裁下游穿越處理器和上游穿越處理器之間對AS穿越接口的訪問。
11.一種方法,包括處理第一組構(gòu)上接收到的分組用于在第二組構(gòu)上傳送,每個接收到的分組的處理包括根據(jù)與接收到的分組相關(guān)聯(lián)的下游端口標(biāo)識符將高級交換(AS)路徑綁定信息應(yīng)用于接收到的分組上。
12.如權(quán)利要求11所述的方法,其特征在于,第一組構(gòu)是快速外圍組件互連(PCIe)且第二組構(gòu)是AS組構(gòu)。
13.如權(quán)利要求11所述的方法,其特征在于,所述處理還包括通過所應(yīng)用的AS路徑綁定信息和接收到的分組,形成AS分組;以及將所述AS分組發(fā)送到AS組構(gòu)。
14.如權(quán)利要求11所述的方法,其特征在于,所述處理還包括將接收到的分組的地址標(biāo)識符與關(guān)聯(lián)于端口標(biāo)識符的一個或多個存儲器空間進(jìn)行比較,以確定接收到的分組是否要被傳遞到下游,如果是,則基于所述比較選擇下游端口標(biāo)識符。
15.如權(quán)利要求11所述的方法,其特征在于,還包括處理在AS組構(gòu)上接收到的AS分組,每個AS分組都包括AS報頭和AS有效負(fù)荷,每個AS分組的處理都包括比較AS有效負(fù)荷與關(guān)聯(lián)于端口標(biāo)識符的一個或多個存儲器空間,基于所述比較確定AS有效負(fù)荷是否包括要傳送到PCIe組構(gòu)的基分組,如果是,則將AS報頭從AS分組中去除以顯露所述基分組。
16.一種包含用于與高級交換(AS)組構(gòu)通信的機(jī)器可讀介質(zhì)的制品,指令使得機(jī)器處理快速外圍組件互連(PCIe)組構(gòu)上接收到的分組,用于處理每個接收到的分組的所述指令包括用于根據(jù)與接收到的分組相關(guān)聯(lián)的下游端口標(biāo)識符將AS路徑綁定信息應(yīng)用于接收到的分組上的指令。
17.如權(quán)利要求16所述的制品,其特征在于,還包括指令來比較接收到的分組的地址標(biāo)識符與關(guān)聯(lián)于端口標(biāo)識符的一個或多個存儲器空間,以確定接收到的分組是否要被傳遞到下游,如果是,則基于所述比較選擇下游端口標(biāo)識符。
18.如權(quán)利要求16所述的制品,其特征在于,用于將AS路徑綁定信息應(yīng)用于接收到的分組上的指令包括指令來通過所應(yīng)用的AS路徑綁定信息和接收到的分組,形成AS分組;以及將所述AS分組發(fā)送到AS組構(gòu)。
19.如權(quán)利要求16所述的制品,其特征在于,還包括指令來處理在AS組構(gòu)上接收到的AS分組,每個AS分組都包括AS報頭和AS有效負(fù)荷,用于處理每個AS分組的指令包括指令來比較AS有效負(fù)荷與關(guān)聯(lián)于端口標(biāo)識符的一個或多個存儲器空間,基于所述比較確定AS有效負(fù)荷是否包括要傳送到PCIe組構(gòu)的基分組,如果是,則將AS報頭從AS分組中去除以顯露所述基分組。
20.一種作為具有一個上游端口和N個下游端口的虛擬快速外圍組件互連(PCIe)交換機(jī)運作的系統(tǒng),該系統(tǒng)包括PCIe組構(gòu);與PCIe組構(gòu)相連的第一接口,用于在PCIe組構(gòu)和裝置之間傳遞通信;與高級交換(AS)組構(gòu)相連的第二接口,用于在裝置和AS組構(gòu)之間傳遞通信;以及易失性存儲器,可操作用于存儲處理通過第一接口接收到的分組的指令,其中用于處理每個接收到的分組的指令包括,根據(jù)與接收到的分組相關(guān)聯(lián)的下游端口標(biāo)識符將AS路徑綁定信息應(yīng)用于所述接收到的分組的指令。
21.如權(quán)利要求20所述的系統(tǒng),其特征在于,用于處理每個接收到的分組的指令還包括指令來比較接收到的分組的地址標(biāo)識符與關(guān)聯(lián)于端口標(biāo)識符的一個或多個存儲器空間,以確定接收到的分組是否要被傳遞到下游,如果是,則基于所述比較選擇下游端口標(biāo)識符。
全文摘要
各種包括計算機(jī)程序產(chǎn)品的方法和裝置實現(xiàn)了用于通過根據(jù)與分組相關(guān)聯(lián)的下游端口標(biāo)識符將AS路徑綁定信息應(yīng)用于在外圍組件互連一Express(PCIe)組構(gòu)上接收到的分組,而形成高級交換(AS)分組并將該AS分組發(fā)送給AS組構(gòu)的技術(shù)。這些包括計算機(jī)程序產(chǎn)品的方法和裝置實現(xiàn)了用于處理在AS組構(gòu)上接收到的AS分組的技術(shù),該處理是通過比較AS分組的AS有效負(fù)荷與關(guān)聯(lián)于端口標(biāo)識符的一個或多個存儲器空間,根據(jù)所述比較確定AS有效負(fù)荷是否包括要發(fā)送給PCIe組構(gòu)的基分組,且如果是,則從AS分組中去除AS報頭以顯露所述基分組,而得以進(jìn)行的。
文檔編號H04L12/56GK1787490SQ20051013164
公開日2006年6月14日 申請日期2005年12月12日 優(yōu)先權(quán)日2004年12月10日
發(fā)明者C·查普爾, J·米切爾 申請人:英特爾公司