專利名稱:使用多個(gè)消息組的計(jì)算機(jī)系統(tǒng)中的代理之間的通信消息請求事務(wù)類型的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及計(jì)算機(jī)系統(tǒng)領(lǐng)域。更具體地說,本發(fā)明涉及高速點(diǎn)對點(diǎn)互連和通信體系結(jié)構(gòu)領(lǐng)域。
背景技術(shù):
計(jì)算裝置,例如計(jì)算機(jī)系統(tǒng)、服務(wù)器、網(wǎng)絡(luò)交換機(jī)和路由器、無線通信設(shè)備以及其它電子設(shè)備,一般由許多不同的元件組成。這些元件通常包括處理器、系統(tǒng)控制邏輯、存儲器系統(tǒng)、輸入和輸出接口等。為了促進(jìn)這樣的元件之間的通信,計(jì)算裝置長期依賴于通用輸入/輸出總線,以使得該計(jì)算系統(tǒng)的這些不同的元件能夠互相通信來支持由這樣的裝置提供的種種應(yīng)用。
這種通用總線體系結(jié)構(gòu)最普遍的一種形式或許就是外圍組件互連(PCI)總線。PCI總線標(biāo)準(zhǔn)(1998年12月18日發(fā)布的外圍組件互連(PCI)局域總線規(guī)范,修訂版2.2)定義了多接點(diǎn)式(multi-drop)、并行總線體系結(jié)構(gòu),用于在計(jì)算裝置中以仲裁的方式來互連芯片、擴(kuò)充板以及處理器/存儲器子系統(tǒng)。典型的PCI總線實(shí)現(xiàn)具有133Mbps的吞吐量(即,33兆赫茲32位),而PCI 2.2標(biāo)準(zhǔn)允許每個(gè)管腳64位的并行連接,時(shí)鐘達(dá)到133MHz,從而產(chǎn)生超過1Gbps的理論吞吐量。
直到最近,由PCI總線體系結(jié)構(gòu)提供的吞吐量已經(jīng)提供了足夠的帶寬來適應(yīng)即使是最先進(jìn)的計(jì)算裝置(例如,多處理器服務(wù)器應(yīng)用、網(wǎng)絡(luò)裝置等)的內(nèi)部通信需要。然而,最近處理能力的發(fā)展和輸入/輸出帶寬需求的增長產(chǎn)生了這樣的情形諸如PCI總線體系結(jié)構(gòu)的現(xiàn)有的通用體系結(jié)構(gòu)已經(jīng)變成這樣的計(jì)算裝置中的瓶頸。
與現(xiàn)有體系結(jié)構(gòu)相關(guān)聯(lián)的另一個(gè)限制是,它們通常不能很好的適合于處理同步(時(shí)間相關(guān))數(shù)據(jù)流。同步數(shù)據(jù)流的一個(gè)例子是多媒體數(shù)據(jù)流,該多媒體數(shù)據(jù)流需要傳輸機(jī)制來確保數(shù)據(jù)消耗與數(shù)據(jù)接收一樣快,并且保證音頻部分與視頻部分同步。傳統(tǒng)的通用輸入/輸出體系結(jié)構(gòu)異步處理數(shù)據(jù),或以帶寬允許的隨機(jī)時(shí)間間隔處理數(shù)據(jù)。這種多媒體數(shù)據(jù)的異步處理可能導(dǎo)致丟失數(shù)據(jù)和/或音頻和視頻錯(cuò)位。
從下面給出的詳細(xì)描述和本發(fā)明的實(shí)施例的附圖,將更完整地理解本發(fā)明,但是不應(yīng)該將它們認(rèn)為是將本發(fā)明限制到所描述的具有的實(shí)施例,它們只是用于解釋和理解。
圖1是計(jì)算機(jī)系統(tǒng)的一個(gè)實(shí)施例的方框圖。
圖2是示例性增強(qiáng)型通用輸入/輸出端口的圖形表示。
圖3是示出了事務(wù)層分組頭部的開始的一個(gè)實(shí)施例的格式的示圖。
圖4是支持32位地址格式的請求分組頭部的示圖。
圖5是支持64位地址格式的請求分組頭部的示圖。
圖6是消息的分組頭部的示圖。
圖7是示出了配置事務(wù)的請求頭部格式的示圖。
圖8是示出了完成頭部的格式的一個(gè)實(shí)施例的示圖。
圖9a和9b結(jié)合形成用于處理接收的事務(wù)層分組的方法的示例性實(shí)施例的流程圖。
圖10是用于處理與接收的請求分組相關(guān)聯(lián)的錯(cuò)誤情況的方法的一個(gè)圖11是用于處理系統(tǒng)代理不期望的完成分組的方法的一個(gè)實(shí)施例的流程圖。
圖12是請求設(shè)備處理具有除了“成功完成”以外的完成狀態(tài)的完成分組的方法的一個(gè)實(shí)施例的流程圖。
圖13是完成設(shè)備處理具有除了“成功完成”以外的完成狀態(tài)的完成分組的方法的一個(gè)實(shí)施例的流程圖。
具體實(shí)施例方式
下面描述用于提供在電子裝置中使用的可升級和可擴(kuò)展的通用輸入/輸出通信平臺的基于分組的點(diǎn)對點(diǎn)互連體系結(jié)構(gòu)、通信協(xié)議和相關(guān)方法的實(shí)施例。所公開的實(shí)施例涉及增強(qiáng)型通用輸入/輸出互連體系結(jié)構(gòu)和相關(guān)聯(lián)的通信協(xié)議。一個(gè)示例性實(shí)施例包括根復(fù)合體(root complex)、交換器或端點(diǎn)(endpoint)中的一個(gè)或多個(gè),所述根復(fù)合體包括主橋,其中每個(gè)至少結(jié)合了增強(qiáng)型通用輸入/輸出特征的一個(gè)子集以支持這些元件之間的增強(qiáng)型通用輸入/輸出通信。
在一個(gè)實(shí)施例中,使用串行通信信道來執(zhí)行這些元件的增強(qiáng)型通用輸入/輸出設(shè)備之間的通信,所述串行通信信道使用這樣的通信協(xié)議,所述協(xié)議支持一個(gè)或多個(gè)創(chuàng)新特征,所述創(chuàng)新特征包括但不局限于虛擬通信信道、基于尾部(tailer)的錯(cuò)誤轉(zhuǎn)發(fā)(error forwarding)(“尾部”附接在事務(wù)層分組以指示錯(cuò)誤情況)、對老式(legacy)的基于PCI的設(shè)備的支持、多種請求響應(yīng)類型、流控制和/或數(shù)據(jù)完整性管理功能。在該實(shí)施例中支持的通信協(xié)議包括通信協(xié)議棧,該通信協(xié)議棧包括物理層、數(shù)據(jù)鏈路層和事務(wù)層。
在另一個(gè)實(shí)施例中,通信代理結(jié)合了增強(qiáng)型通用輸入/輸出引擎,該引擎包括上述特征的子集。此外,各種實(shí)施例的一個(gè)或多個(gè)元件可以以硬件、軟件、傳播信號或它們的結(jié)合來實(shí)現(xiàn)。
圖1提供了電子裝置100的方框圖,對于本實(shí)施例,該電子裝置100是計(jì)算機(jī)系統(tǒng)。系統(tǒng)100包括處理器102、作為根復(fù)合體104的一部分的主橋103、交換器108以及端點(diǎn)110,每個(gè)元件都如所示地進(jìn)行耦合。根復(fù)合體104、交換器108以及端點(diǎn)110包括增強(qiáng)型通用輸入/輸出通信端口106的一個(gè)或多個(gè)實(shí)例。如所示,元件102、104、108和110中的每一個(gè)都經(jīng)由增強(qiáng)型通用輸入/輸出通信端口,通過通信鏈路112,耦合到至少一個(gè)其它元件,其中通信鏈路112支持一條或多條增強(qiáng)型通用輸入/輸出通信信道。系統(tǒng)100意于代表多種傳統(tǒng)和非傳統(tǒng)計(jì)算系統(tǒng)、服務(wù)器、網(wǎng)絡(luò)交換器、網(wǎng)絡(luò)路由器、無線通信用戶單元、無線通信電話基礎(chǔ)設(shè)施元件、個(gè)人數(shù)字助理、機(jī)頂盒或任何電子裝置中的任何一個(gè)或多個(gè),所述任何電子裝置將從通過集成這里描述的增強(qiáng)型通用輸入/輸出互連體系結(jié)構(gòu)和/或通信協(xié)議的至少一個(gè)子集而引入的通信資源獲益。
在該示例性實(shí)施例中,處理器102控制電子裝置100的功能性能力的一個(gè)或多個(gè)方面。在這個(gè)方面,處理器102可以代表多種控制邏輯設(shè)備的任何一個(gè),控制邏輯設(shè)備包括但不局限于微處理器、可編程邏輯器件(PLD)、可編程邏輯陣列(PLA)、專用集成電路(ASIC)、微控制器等等的一個(gè)或多個(gè)。
根復(fù)合體104提供處理器102和交換機(jī)108和端點(diǎn)110之間的通信接口。如這里所使用的,術(shù)語“根復(fù)合體”指的是最靠近于主控制器、存儲器控制器中心、IO控制器中心或者上述元件的任何組合或芯片組/CPU元件的某種組合(即,處于計(jì)算系統(tǒng)環(huán)境)的增強(qiáng)型通用輸入/輸出層次的邏輯實(shí)體。盡管在圖1中被描述為單個(gè)單元,根復(fù)合體104可以由多個(gè)物理組件實(shí)現(xiàn)。根復(fù)合體104組裝有一個(gè)或多個(gè)增強(qiáng)型通用輸入/輸出端口106以便于與其它外圍設(shè)備進(jìn)行通信,所述外圍設(shè)備例如是交換器108、端點(diǎn)110以及老式橋114或116,盡管沒有對老式橋114或116進(jìn)行具體描述。在一個(gè)實(shí)施例中,每個(gè)增強(qiáng)型通用輸入/輸出接口端口代表不同的層次域。在此方面,圖1的實(shí)施例表示了具有三個(gè)層次域的根復(fù)合體104。
圖2是示例性增強(qiáng)型通用輸入/輸出端口106的圖形表示。如所示,在該實(shí)施例中,增強(qiáng)型通用輸入/輸出端口106實(shí)現(xiàn)了通信棧,該通信棧包括事務(wù)層202、數(shù)據(jù)鏈路層204和物理層206,該物理層206包括邏輯子塊208和物理子塊210。事務(wù)層的每個(gè)元素都將在下面進(jìn)行詳細(xì)討論。
事務(wù)層202提供增強(qiáng)型通用輸入/輸出體系結(jié)構(gòu)和設(shè)備核心之間的接口。事務(wù)層202的主要職責(zé)是為代理中的一個(gè)或多個(gè)邏輯設(shè)備裝配和拆解分組。
增強(qiáng)型通用輸入/輸出體系結(jié)構(gòu)的一個(gè)主要目標(biāo)是最大化設(shè)備間通信效率。在一個(gè)實(shí)施例中,事務(wù)層實(shí)現(xiàn)了管道完全分離事務(wù)協(xié)議(pipelined fullsplit-transaction protocol)和用于區(qū)分事務(wù)層分組的排序和處理需求的機(jī)制。事務(wù)層還包括事務(wù)層分組構(gòu)造和處理。
增強(qiáng)型通用輸入/輸出體系結(jié)構(gòu)的一個(gè)實(shí)施例支持下面的基本事務(wù)類型和地址空間存儲器、I/O、配置和消息。支持兩種尋址類型32位和64位。
使用請求和完成分組來承載事務(wù),請求和完成分組可以簡稱為請求和完成。只有在需要例如返回讀取數(shù)據(jù)或者通知I/O和配置寫入事務(wù)的完成時(shí),才使用完成。完成通過分組頭部的請求器ID(下面討論)中的值來與它們對應(yīng)的請求相關(guān)聯(lián)。
在本實(shí)施例中的所有事務(wù)層分組以定義的頭部開始。某些事務(wù)層分組包括有跟隨頭部的數(shù)據(jù),這是由在事務(wù)層分組頭部中指明的格式字段決定的。事務(wù)層分組的大小受到預(yù)定最大有效負(fù)載大小值的限制。在本實(shí)施例中的事務(wù)層分組數(shù)據(jù)是四字節(jié)自然對齊的,并且以四字節(jié)雙字來遞增。
圖3是示出了事務(wù)層分組頭部的開始的一個(gè)實(shí)施例的格式的示圖。每個(gè)事務(wù)層分組頭部包括三位格式字段(格式[2:0])。事務(wù)層分組頭部還包括四位類型字段(類型[3:0])。格式字段和類型字段都需要被解碼以決定事務(wù)層分組格式。下面的表1示出了用于格式字段的示例性編碼。
表1—格式字段編碼本實(shí)施例的事務(wù)層頭部還包括2位擴(kuò)展類型/擴(kuò)展長度字段(Et/El)。該字段用于擴(kuò)展類型字段或者長度字段,這取決于類型字段中的值。該實(shí)施例的長度字段一般是八位字段,但是如果類型字段的值指示要使用Et/El字段來擴(kuò)展長度字段,則長度字段可以擴(kuò)展為十位字段。取決于類型[3:0]字段中的值,通過附接Et/El字段,類型字段可以被擴(kuò)展為六位字段。見下面的圖2示例的格式、類型和Et/El字段編碼(其他的實(shí)施例可以使用其他編碼策略)。除非特別指出,Et/El字段被用作類型字段的擴(kuò)展。
表2—格式、類型和Et/El編碼請求分組包括請求頭部,對于某些類型的請求分組,所述請求頭部將跟隨有一定數(shù)量的雙字的數(shù)據(jù)。這里使用的術(shù)語“雙字”指示32位長度的數(shù)據(jù)。對于該示例性實(shí)施例,除了對于明確引用數(shù)據(jù)長度的消息外,不使用消息請求頭部的長度字段。并且對于該實(shí)施例,對于存儲器讀請求和存儲器寫請求,El/Et字段與長度字段連接以形成十位長度字段。十位長度字段允許指示多達(dá)4kB的數(shù)據(jù)的讀取和寫入請求。其他類型的事務(wù)層分組受到長度[7:0]字段的大小的限制而指示最多1kB的數(shù)據(jù)。在一個(gè)實(shí)施例中,任何事務(wù)層分組所包含的數(shù)據(jù)量都受預(yù)定最大有效負(fù)載大小的限制。對于包括數(shù)據(jù)的事務(wù)層分組,長度字段中的值應(yīng)該與實(shí)際的數(shù)據(jù)量相等。如果接收者判斷長度字段值與真實(shí)的數(shù)據(jù)量不匹配,則該分組被認(rèn)為是畸形事務(wù)層分組。下面描述畸形事務(wù)層分組。
圖4是支持32位地址格式的請求分組頭部的示圖,并且圖5是支持64位地址格式的請求分組頭部的示圖。對于一個(gè)實(shí)施例,存儲器讀取請求和存儲器寫入請求情況或者使用32位地址格式,或者使用64位地址格式。對于低于4GB的地址,使用32位格式。
圖4和圖5的請求分組頭部還包括第一雙字字節(jié)使能字段(1stDWBE)和最后雙字字節(jié)使能字段(最后DW BE)。第一雙字字節(jié)使能字段包括用于任何存儲器讀取或?qū)懭胝埱蟮牡谝浑p字的字節(jié)使能。該字段還包括用于輸入/輸出或配置請求的僅有雙字的字節(jié)使能。最后雙字字節(jié)使能字段包括用于任何存儲器讀取或?qū)懭胝埱蟮淖詈箅p字的字節(jié)使能。字節(jié)使能字段不用于消息,這是因?yàn)檫@些字段覆蓋消息請求頭部的消息編碼字段(見圖7,下面討論)。
對于一個(gè)實(shí)施例,對于字節(jié)使能字段的每個(gè)位,值“0”指示在完成器處,對應(yīng)的數(shù)據(jù)的字節(jié)未被寫,或者,如果是不可預(yù)取的則未被讀。這里使用的術(shù)語“完成器”意為指示由請求分組頭部尋址的邏輯設(shè)備。值“1”指示在完成器處,對應(yīng)的數(shù)據(jù)的字節(jié)被寫,或者,如果是不可預(yù)取的則被讀。對于第一雙字字節(jié)使能字段,位0對應(yīng)于數(shù)據(jù)的第一雙字的字節(jié)0。位1對應(yīng)于數(shù)據(jù)的第一雙字的字節(jié)1。位2對應(yīng)于數(shù)據(jù)的第一雙字的字節(jié)2。位3對應(yīng)于數(shù)據(jù)的第一雙字的字節(jié)3。對于最后雙字字節(jié)使能字段,位0對應(yīng)于數(shù)據(jù)的最后雙字的字節(jié)0。位1對應(yīng)于數(shù)據(jù)的最后雙字的字節(jié)1。位2對應(yīng)于數(shù)據(jù)的最后雙字的字節(jié)2。位3對應(yīng)于數(shù)據(jù)的最后雙字的字節(jié)3。
圖4、5、6和8的示例性分組頭部包括請求器ID字段、標(biāo)簽字段、屬性字段和虛擬信道ID字段。請求器ID字段和標(biāo)簽字段一起形成事務(wù)ID字段。請求器ID字段被分成總線號碼字段、設(shè)備號碼字段和功能號碼字段。
標(biāo)簽字段是由每個(gè)請求設(shè)備生成的5位字段。標(biāo)簽值對于需要為該請求設(shè)備完成的所有未完成請求是唯一的。所有的請求和完成包括事務(wù)ID字段。對于這些示例性實(shí)施例,請求器ID字段是對于每個(gè)功能(功能是由唯一功能號碼在配置空間中標(biāo)識的多功能設(shè)備的一個(gè)獨(dú)立段)唯一的16位值。功能捕獲總線號碼,該總線號碼被提供有由該功能完成的所有配置寫入,并且在請求器ID字段的總線號碼字段中供應(yīng)該號碼。元件中的每個(gè)邏輯設(shè)備被設(shè)計(jì)為響應(yīng)唯一的設(shè)備號碼,以用于尋址該元件的配置請求。對于這些示例性實(shí)施例,元件可以包含許多(可能多達(dá)幾十個(gè))邏輯設(shè)備。與元件中的邏輯設(shè)備相關(guān)聯(lián)的每個(gè)功能被設(shè)計(jì)來響應(yīng)唯一的功能號碼,以用于尋址該元件和邏輯設(shè)備的配置請求。每個(gè)邏輯設(shè)備可以包含多達(dá)八個(gè)邏輯功能。
屬性字段指明事務(wù)的特征??梢栽趯傩宰侄沃兄该鞯膶傩园▋?yōu)先級屬性、事務(wù)排序?qū)傩院透咚倬彺嬉恢滦怨芾韺傩浴?br>
虛擬信道ID字段標(biāo)識虛擬信道。對于這些示例性實(shí)施例,虛擬信道ID字段是4位字段,其允許標(biāo)識為每個(gè)事務(wù)標(biāo)識多達(dá)16個(gè)虛擬信道。對于這些示例性實(shí)施例,虛擬信道0用于通用流量,而除了0的虛擬信道用于同步流量。
圖6是消息的分組頭部的示圖。如表2所示,消息可以包括或不包括數(shù)據(jù),并且可以需要或不需要完成。消息由支持增強(qiáng)型通用輸入/輸出互連體系結(jié)構(gòu)的系統(tǒng)中的所有設(shè)備解碼。
對于消息請求,消息字段被解碼以判斷特殊循環(huán)并且判斷消息是否包括數(shù)據(jù)以及消息是否需要完成。該實(shí)施例的消息字段是8位字段,其位于對于其他事務(wù)類型而言字節(jié)使能字段通常駐留的位置。接收設(shè)備把不支持的消息作為無需完成來對待(下面討論無需完成事務(wù))。
該示例性實(shí)施例的消息被分成組。有八組包含伴隨請求的數(shù)據(jù),有八組不包含。利用不同數(shù)目的組的其他實(shí)施例是可能的。對于該實(shí)施例,如表2所示,包括伴隨請求的數(shù)據(jù)的八組在格式字段具有值b110。不包含數(shù)據(jù)的八組在格式字段中具有值b010。子字段s[2:0]結(jié)合來自類型字段的一位和來自Et/El字段的兩位。子字段s[2:0]指示八組之一。
可以實(shí)現(xiàn)的各種消息的示例包括,但不限于下列消息用于解鎖設(shè)備的消息;用于復(fù)位設(shè)備的消息;指示可糾正錯(cuò)誤情況的消息;指示不可糾正錯(cuò)誤情況的消息;指示致命錯(cuò)誤情況的消息;用于報(bào)告壞請求分組的消息;關(guān)于功率管理的消息;關(guān)于排序控制/管理的消息和用于模擬老式(例如,PCI)中斷信號(或其他老式信號)的消息。這些各個(gè)消息類型可以劃分到前面討論的組的一個(gè)中。例如,所有的功率管理消息可以包括在一個(gè)組中,而中斷信令消息可以包括在另一個(gè)中。也有可能有這樣的實(shí)施例一個(gè)或多個(gè)組保留由廠商使用。
圖7是示出了配置事務(wù)的請求頭部格式的示圖。配置空間是這些示例性實(shí)施例的四個(gè)支持的地址空間的一個(gè)。
圖8是示出了完成頭部的格式的一個(gè)實(shí)施例的示圖。所有讀取請求和某些寫入請求需要完成。完成包括完成頭部,對于某些類型的完成,完成頭部跟隨有一定數(shù)量的雙字的數(shù)據(jù)。示于圖8中的完成狀態(tài)[2:0]字段指示完成的狀態(tài)。表3示出了一個(gè)示例性編碼策略。
表3—完成狀態(tài)字段編碼策略完成器ID[15:0]字段包含與上面描述的請求器ID字段相同類型的信息。在完成器ID字段中提供的值對應(yīng)于完成該請求的代理的總線/設(shè)備/功能。完成頭部包含的請求器ID、標(biāo)簽和信道ID的值與在請求分組的頭部中供應(yīng)的相同。完成頭部在屬性字段包含的值也與初始供給請求的頭部的相同。完成分組被交換機(jī)和根復(fù)合體路由到發(fā)起對應(yīng)的請求事務(wù)的端口。
對于存儲器讀取請求事務(wù),單個(gè)完成分組可能提供少于對應(yīng)的讀取請求所請求的完全的數(shù)據(jù)量,只要與該對應(yīng)的讀取請求相關(guān)聯(lián)的所有完成分組結(jié)合起來返回指明的數(shù)據(jù)量即可。對于這些示例性實(shí)施例,I/O和配置讀取請求僅由一個(gè)完成分組來完成。
包括數(shù)據(jù)的完成指明分組頭部中的數(shù)據(jù)量。如果完成分組實(shí)際上包含不同于指明的量的數(shù)據(jù)量,則產(chǎn)生畸形事務(wù)層分組。
圖9a和9b結(jié)合形成用于處理接收的事務(wù)層分組的方法的示例性實(shí)施例的流程圖。下面描述的操作不必以連續(xù)的方式發(fā)生。一些實(shí)施例可以同時(shí)進(jìn)行某些操作。在方框905,進(jìn)行檢查以判斷接收的分組的格式和長度字段中包含的值是否匹配分組的真實(shí)大小。不匹配指示畸形分組,并且產(chǎn)生錯(cuò)誤情況,如方框925所示。下面將討論錯(cuò)誤情況處理。如果接收的分組的真實(shí)大小不指示與格式和長度字段的不匹配,則處理繼續(xù)到方框910。
如果接收的分組是使用64位尋址的存儲器請求,則在方框910,檢查地址位[63:32]以觀察是否地址位[63:32]的任何一個(gè)為非零。如果地址位[63:32]都不是非零,則結(jié)果是畸形分組,并且處理進(jìn)行到錯(cuò)誤情況方框925。如果地址位[63:32]的至少一個(gè)為非零,則處理繼續(xù)到方框915。
在方框915,進(jìn)行檢查以判斷是否分組頭部中的任何字段包含保留值。如果發(fā)現(xiàn)保留值,則結(jié)果是畸形分組,并且處理進(jìn)行到方框925。如果沒有發(fā)現(xiàn)保留值,則處理進(jìn)行到方框930。
在方框930,進(jìn)行關(guān)于分組是請求分組還是完成分組的判斷。如果分組是完成分組,則處理進(jìn)行到完成處理方框935。下面將更完整地討論完成處理。如果接收的分組不是完成分組,則處理繼續(xù)到方框940。注意,所有流到方框940的分組都是請求分組。
在方框940,進(jìn)行檢查以判斷請求分組是否是完成設(shè)備支持的請求類型。如果不支持該請求類型,則結(jié)果是不支持的請求,并且處理進(jìn)行到錯(cuò)誤情況方框925。對于該示例性實(shí)施例,如果不支持請求類型是廣播消息或者使用為廣播消息保留的編碼的消息,則分組被默默地丟棄,并且不產(chǎn)生錯(cuò)誤情況。如果完成設(shè)備支持該請求類型,則處理繼續(xù)到方框945。
如果,如方框945所示,完成設(shè)備由于內(nèi)部錯(cuò)誤而不能響應(yīng)請求分組,則結(jié)果是“完成器中止”,并且處理進(jìn)行到錯(cuò)誤情況方框925。否則,在方框950服務(wù)該請求。在服務(wù)該請求中,可能需要重復(fù)方框940和945的處理。
一旦成功地服務(wù)該請求,則處理繼續(xù)到方框955。如方框955所指示的,如果所處理的請求需要完成,則在方框960返回完成分組。
圖10是用于處理與接收的請求分組相關(guān)聯(lián)的錯(cuò)誤情況的方法的一個(gè)實(shí)施例的流程圖。如在方框1010所見到的,如果接收的請求期望完成,則在方框1020傳輸具有適合的完成狀態(tài)的完成。該完成被路由回請求設(shè)備。如果接收請求不期望完成,則在方框1030向請求設(shè)備傳輸錯(cuò)誤消息。在方框1040向系統(tǒng)報(bào)告錯(cuò)誤。在方框1030指示的錯(cuò)誤消息傳輸操作可以實(shí)現(xiàn)為可編程的選項(xiàng)。
某些系統(tǒng)除了可以包括前面討論的增強(qiáng)型通用輸入/輸出互連結(jié)構(gòu)外,還可以包括一個(gè)或多個(gè)PCI總線。對于經(jīng)過了增強(qiáng)型通用輸入/輸出互連結(jié)構(gòu)并且目的地為PCI總線上的設(shè)備的存儲器、I/O和配置請求,這些實(shí)施例的完成狀態(tài)表示該周期的真實(shí)PCI結(jié)束。例如,非公布PCI周期必須在可以確定完成狀態(tài)之前真實(shí)地在PCI總線上被服務(wù)。對于所有其他情況,完成狀態(tài)值定義如下。
當(dāng)請求被完成設(shè)備成功地完成時(shí),產(chǎn)生的完成狀態(tài)值是“成功完成”(對于該實(shí)施例,如表3中所示,在完成狀態(tài)字段編碼為“000”)。例如,來自主橋的讀取請求被路由通過交換機(jī)到達(dá)完成器端點(diǎn)。完成器以指示成功完成狀態(tài)的完成分組來響應(yīng),并且還以該讀取請求的數(shù)據(jù)來響應(yīng)。交換機(jī)將該完成分組路由回主橋。
當(dāng)完成設(shè)備接收并解碼請求,但是完成分組不支持所請求的事務(wù)并且該請求需要完成時(shí),產(chǎn)生的完成狀態(tài)是“不支持的請求”(對于該實(shí)施例,如表3中所示,在完成狀態(tài)字段編碼為“001”)。不支持的請求的一個(gè)示例是對于超范圍地址的存儲器讀取請求。在這種情況下,完成器不能支持該請求,并且該請求期望完成。
對于完成設(shè)備接收并解碼請求并且完成設(shè)備不能支持所請求的事務(wù)并且請求設(shè)備不期望完成時(shí),產(chǎn)生的完成狀態(tài)是不支持的請求。因?yàn)檎埱笤O(shè)備不期望完成,所以完成狀態(tài)經(jīng)由如上面聯(lián)系圖10描述的消息被傳遞到請求設(shè)備。請求設(shè)備不期望完成的不支持請求的一個(gè)示例是對超范圍地址的存儲器寫入事務(wù)。經(jīng)由消息的完成狀態(tài)的通信可以實(shí)現(xiàn)為可選的特征。
當(dāng)完成設(shè)備接收并解碼請求,但是完成設(shè)備由于內(nèi)部錯(cuò)誤而不能響應(yīng)時(shí),產(chǎn)生的完成狀態(tài)是“完成器中止”(對于該實(shí)施例在完成狀態(tài)字段中編碼為“100”)。
當(dāng)完成設(shè)備接收違反分組格式規(guī)則的分組時(shí),結(jié)果是“畸形分組”。完成設(shè)備通過傳輸“畸形分組”錯(cuò)誤消息來響應(yīng)這種情況,該錯(cuò)誤消息被路由到請求設(shè)備。對于本實(shí)施例,如果沒有其他端口可以被確定地識別為預(yù)期的目的地端口,則接收畸形分組的交換機(jī)必須將該分組路由到上游端口。
當(dāng)讀取完成具有除了“成功完成”以外的完成狀態(tài)時(shí),沒有數(shù)據(jù)與完成分組一起返回。具有非成功完成狀態(tài)的讀取完成是為該請求而傳輸?shù)淖詈蟮耐瓿?。例如,完成器可以將讀取請求分成四部分來服務(wù),并且第二完成分組導(dǎo)致完成器中止完成狀態(tài)。最后兩個(gè)完成分組不被傳輸。一旦請求設(shè)備接收具有非成功完成狀態(tài)的完成分組,則認(rèn)為請求結(jié)束,并且不應(yīng)該期望對應(yīng)于該讀取請求的其他完成分組。
圖11是用于處理系統(tǒng)代理不期望的完成分組的方法的一個(gè)實(shí)施例的流程圖。當(dāng)代理接收了不對應(yīng)于由同一代理發(fā)出的任何未完成請求的完成時(shí),發(fā)生“不期望的完成”。對于圖11的示例性方法,方框1110指出如果沒有不期望的完成,則在方框1120處繼續(xù)正常的操作,但是,如果接收了不期望的完成,則該不期望的完成分組在方框1130被丟棄。在分組被丟棄之后,上述錯(cuò)誤情況可以在方框1140被報(bào)告給系統(tǒng)。對于該示例性實(shí)施例,錯(cuò)誤報(bào)告可以是由軟件可編程的選項(xiàng)。
圖12是請求設(shè)備處理具有除了“成功完成”以外的完成狀態(tài)的完成分組的方法的一個(gè)實(shí)施例的流程圖。方框1210指出如果完成狀態(tài)是“成功完成”,則在方框1220處繼續(xù)正常的操作。如果完成狀態(tài)不是“成功完成”,則在方框1230記錄完成器ID字段的值。對于該實(shí)施例,完成器ID值存儲在寄存器中。接著,在方框1240,在該實(shí)施例的請求設(shè)備中的寄存器中設(shè)置“接收不成功完成”位??梢栽诜娇?250報(bào)告上述錯(cuò)誤情況。錯(cuò)誤情況報(bào)告可以實(shí)現(xiàn)為可編程的選項(xiàng)。軟件代理可以使用完成器ID值和“接收未成功完成”位來跟蹤錯(cuò)誤情況的源。
圖13是完成設(shè)備處理具有除了“成功完成”以外的完成狀態(tài)的完成分組的方法的一個(gè)實(shí)施例的流程圖。方框1310指出如果傳輸?shù)耐瓿煞纸M的完成狀態(tài)是“成功完成”,則在方框1320處繼續(xù)正常的操作。如果完成狀態(tài)不是“成功完成”,則在方框1330記錄請求器ID和標(biāo)簽字段的值。對于該實(shí)施例,請求器ID和標(biāo)簽值存儲在一個(gè)或多個(gè)寄存器中。接著,在方框1340,在該實(shí)施例的完成設(shè)備中的寄存器中設(shè)置“傳輸不成功完成”位??梢栽诜娇?350報(bào)告上述錯(cuò)誤情況。錯(cuò)誤情況報(bào)告可以實(shí)現(xiàn)為可編程的選項(xiàng)。軟件代理可以使用請求器ID和標(biāo)簽值和“傳輸未成功完成”位來跟蹤錯(cuò)誤情況的源。
在前面的說明中,已經(jīng)參照本發(fā)明的具體的示例性實(shí)施例描述了本發(fā)明。但是,明顯的是,可以對其做出各種修改和變化,而不背離本發(fā)明的所附權(quán)利要求中闡明的更廣的技術(shù)構(gòu)思和范圍。因此,說明書和附圖應(yīng)該被認(rèn)為是說明性的,而不是限制性的。
在說明書中引用的“實(shí)施例”、“一個(gè)實(shí)施例”、“某些實(shí)施例”或“其他實(shí)施例”是指結(jié)合該實(shí)施例描述的特定的特征、結(jié)構(gòu)和特性至少包括在本發(fā)明的某些實(shí)施例中,但不必是所有實(shí)施例中。出現(xiàn)的各種“實(shí)施例”、“一個(gè)實(shí)施例”或“某些實(shí)施例”不必指相同的實(shí)施例。
權(quán)利要求
1.一種裝置,包括輸出用于消息請求事務(wù)的分組頭部的數(shù)據(jù)路徑輸出單元,所述分組頭部包括指示多個(gè)消息組之一的第一字段。
2.如權(quán)利要求1所述的裝置,所述分組頭部還包括指示所述消息請求事務(wù)是否包括數(shù)據(jù)的第二字段。
3.如權(quán)利要求2所述的裝置,所述分組頭部還包括消息碼字段。
4.如權(quán)利要求3所述的裝置,其中所述第二字段是格式字段。
5.如權(quán)利要求4所述的裝置,其中所述第一字段是包括來自類型字段的一位和來自擴(kuò)展類型字段的兩位的三位子字段。
6.一種裝置,包括接收用于消息請求事務(wù)的分組頭部的數(shù)據(jù)路徑輸入單元,所述分組頭部包括指示多個(gè)消息組之一的第一字段。
7.如權(quán)利要求6所述的裝置,所述分組頭部還包括指示所述消息請求事務(wù)是否包括數(shù)據(jù)的第二字段。
8.如權(quán)利要求7所述的裝置,所述分組頭部還包括消息碼字段。
9.如權(quán)利要求8所述的裝置,其中所述第二字段是格式字段。
10.如權(quán)利要求9所述的裝置,其中所述第一字段是包括來自類型字段的一位和來自擴(kuò)展類型字段的兩位的三位子字段。
11.一種系統(tǒng),包括傳輸用于消息請求事務(wù)的分組頭部的傳輸設(shè)備,所述分組頭部包括指示多個(gè)消息組之一的第一字段;和耦合到所述傳輸設(shè)備的接收設(shè)備,所述接收設(shè)備接收所述分組頭部。
12.如權(quán)利要求11所述的系統(tǒng),所述分組頭部還包括指示所述消息請求事務(wù)是否包括數(shù)據(jù)的第二字段。
13.如權(quán)利要求12所述的系統(tǒng),所述分組頭部還包括消息碼字段。
14.如權(quán)利要求13所述的系統(tǒng),其中所述第二字段是格式字段。
15.如權(quán)利要求14所述的系統(tǒng),其中所述第一字段是包括來自類型字段的一位和來自擴(kuò)展類型字段的兩位的三位子字段。
全文摘要
在計(jì)算機(jī)系統(tǒng)中,傳輸設(shè)備和接收設(shè)備經(jīng)由高速串行接口而耦合。傳輸設(shè)備傳輸用于消息請求事務(wù)的分組頭部,該分組頭部包括指示多個(gè)消息組之一的消息組子字段。所述分組頭部還包括指示消息請求分組是否包括數(shù)據(jù)的格式字段。所述分組頭部還包括指示具體消息類型的消息碼字段。
文檔編號G06F13/40GK1608256SQ02826165
公開日2005年4月20日 申請日期2002年12月5日 優(yōu)先權(quán)日2001年12月28日
發(fā)明者戴維·哈里曼 申請人:英特爾公司