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