專利名稱:提供同步信道的通用輸入/輸出體系結(jié)構(gòu)、協(xié)議和方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及通用輸入/輸出(GIO)總線體系結(jié)構(gòu)領(lǐng)域,更具體地說,本發(fā)明涉及一種體系結(jié)構(gòu)、協(xié)議以及相關(guān)的方法,用來在GIO總線體系結(jié)構(gòu)中提供同步通信信道。
背景技術(shù):
計(jì)算裝置例如計(jì)算機(jī)系統(tǒng)、服務(wù)器、網(wǎng)絡(luò)交換機(jī)和路由器、無線通信設(shè)備以及其它電子設(shè)備一般由許多電子組件或元件組成。這些元件通常包括處理器、微控制器或其它控制邏輯、存儲(chǔ)器系統(tǒng)、(多個(gè))輸入和輸出接口、外圍元件等。為了便于這些元件之間的通信,計(jì)算裝置長(zhǎng)期依賴于通用輸入/輸出(GIO)總線體系結(jié)構(gòu),以使得該計(jì)算裝置的這些根本不同的元件能夠互相通信來支持由這樣的裝置提供的種種應(yīng)用。
這種傳統(tǒng)的GIO總線體系結(jié)構(gòu)最普遍的一種形式或許就是外圍組件互連總線或PCI總線體系結(jié)構(gòu)。PCI總線標(biāo)準(zhǔn)(1998年12月18日發(fā)布的外圍組件互連(PCI)局域總線規(guī)范,修訂版2.2)規(guī)定了多接點(diǎn)式(multi-drop)、并行總線體系結(jié)構(gòu),用于在計(jì)算裝置中以仲裁的方式來互連芯片、擴(kuò)充板以及處理器/存儲(chǔ)器子系統(tǒng)。為了本發(fā)明的目的,PCI局域總線標(biāo)準(zhǔn)的內(nèi)容在這里作為參考而被明確地引用。
傳統(tǒng)的PCI總線實(shí)現(xiàn)具有133兆字節(jié)每秒的吞吐量(即,33兆赫茲32字節(jié)),而PCI2.2標(biāo)準(zhǔn)允許每個(gè)管腳64字節(jié)的并行連接,時(shí)鐘達(dá)到133MHz,從而產(chǎn)生超過1GBps的理論吞吐量。在這方面,由這樣的傳統(tǒng)多接點(diǎn)式PCI總線體系結(jié)構(gòu)提供的吞吐量到目前為止已經(jīng)提供了足夠的帶寬來適應(yīng)即使是最先進(jìn)的計(jì)算裝置(例如,多處理器服務(wù)器應(yīng)用、網(wǎng)絡(luò)裝置等)的內(nèi)部通信需要。然而,聯(lián)系到寬帶因特網(wǎng)訪問的廣泛應(yīng)用,處理能力的新近進(jìn)展將處理速度超過了1GHz的閾值,諸如PCI總線體系結(jié)構(gòu)的傳統(tǒng)GIO體系結(jié)構(gòu)已經(jīng)變成這樣的計(jì)算裝置中的瓶頸。
通常與傳統(tǒng)GIO體系結(jié)構(gòu)聯(lián)系在一起的另一個(gè)限制是,它們通常不能很好的適宜于操作/處理同步(或者說時(shí)間相關(guān))數(shù)據(jù)流。這樣的同步數(shù)據(jù)流的一個(gè)例子是多媒體數(shù)據(jù)流,該多媒體數(shù)據(jù)流需要同步傳輸機(jī)制來確保接收數(shù)據(jù)與使用數(shù)據(jù)同速,并且音頻部分與視頻部分同步。
傳統(tǒng)的GIO體系結(jié)構(gòu)異步處理數(shù)據(jù),或以帶寬允許的隨機(jī)時(shí)間間隔處理數(shù)據(jù)。這種同步數(shù)據(jù)的異步處理可能導(dǎo)致音頻與視頻的不重合,作為結(jié)果,某些同步多媒體內(nèi)容供應(yīng)商制定了使某些數(shù)據(jù)優(yōu)先于其它數(shù)據(jù)的規(guī)則,例如使音頻數(shù)據(jù)優(yōu)先于視頻數(shù)據(jù),從而最終用戶至少接收相對(duì)穩(wěn)定的音頻流(即,不被打斷),使得他們可以欣賞、了解或觀看正在被流式播放的歌曲、故事或高質(zhì)量視頻等等。
本發(fā)明以示例而非限制的方式被說明,附圖中類似的標(biāo)號(hào)指示類似的元件,并且其中圖1是電子裝置的方框圖,該電子裝置包括本發(fā)明的實(shí)施例的一個(gè)或多個(gè)方面以便于該裝置的一個(gè)或多個(gè)組成元件之間的通信;圖2是根據(jù)本發(fā)明一個(gè)示例性實(shí)施例的示例性通信棧的示圖,該通信棧由電子裝置的一個(gè)或多個(gè)元件使用以便于這些元件之間的通信;圖3是根據(jù)本發(fā)明教導(dǎo)的示例性事務(wù)層(transaction layer)數(shù)據(jù)報(bào)的示圖;圖4是根據(jù)本發(fā)明一個(gè)方面的示例性通信鏈路的示圖,該通信鏈路包括一個(gè)或多個(gè)虛擬信道以便于電子設(shè)備的一個(gè)或多個(gè)元件之間的通信;圖5是根據(jù)本發(fā)明的一個(gè)方面,用于在EGIO(增強(qiáng)型通用輸入/輸出)體系結(jié)構(gòu)中建立并管理同步通信資源的示例性方法的流程圖;圖6是根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的示例性通信代理以有選擇地實(shí)現(xiàn)本發(fā)明的一個(gè)或多個(gè)方面的方框圖;圖7是本發(fā)明的事務(wù)層中使用的各種分組頭部格式的方框圖;圖8是根據(jù)本發(fā)明示例性實(shí)施例的示例性存儲(chǔ)器體系結(jié)構(gòu)的方框圖,該存儲(chǔ)器體系結(jié)構(gòu)被用于幫助本發(fā)明的一個(gè)或多個(gè)方面;圖9是根據(jù)本發(fā)明一個(gè)方面的示例性鏈路狀態(tài)機(jī)圖的狀態(tài)圖;以及圖10是含有內(nèi)容的可訪問介質(zhì)的方框圖,所述內(nèi)容當(dāng)由電子設(shè)備訪問時(shí)實(shí)現(xiàn)本發(fā)明的一個(gè)或多個(gè)方面。
具體實(shí)施例方式
本發(fā)明的多個(gè)實(shí)施例一般地涉及通用輸入/輸出(GIO)體系結(jié)構(gòu)、協(xié)議和相關(guān)方法,以在其中提供同步通信信道。在這方面,介紹了創(chuàng)新的增強(qiáng)型通用輸入/輸出(EGIO)互連體系結(jié)構(gòu)、相關(guān)通信協(xié)議和有關(guān)方法。根據(jù)一個(gè)示例性實(shí)施例,EGIO體系結(jié)構(gòu)的元件包括根復(fù)合體(rootcomplex)(例如,在橋中實(shí)現(xiàn))、交換器、以及端點(diǎn)(end point)中的一個(gè)或多個(gè),每個(gè)元件至少包含EGIO特征的一個(gè)子集以支持這些元件之間的EGIO通信。
使用(多條)串行通信信道來執(zhí)行這些元件的EGIO設(shè)備之間的通信,所述串行通信信道使用EGIO通信協(xié)議,所述協(xié)議如下面將要詳細(xì)介紹的那樣支持一個(gè)或多個(gè)創(chuàng)新特征,所述特征包括但不局限于虛擬通信信道、基于尾部(tailer)的錯(cuò)誤轉(zhuǎn)發(fā)(error forwarding)、對(duì)老式(legacy)的基于PCI的設(shè)備及其中斷的支持、多種請(qǐng)求響應(yīng)類型、流控制和/或數(shù)據(jù)完整性管理功能。根據(jù)本發(fā)明的一個(gè)方面,通過引入EGIO通信協(xié)議棧,在每個(gè)計(jì)算裝置的元件中都支持了通信協(xié)議,該棧包括物理層、數(shù)據(jù)鏈路層和事務(wù)層。
在本說明書各處提及的“一個(gè)實(shí)施例”或“實(shí)施例”指的是,所描述的與該實(shí)施例有關(guān)的具體特征、結(jié)構(gòu)或特性被包括在本發(fā)明的至少一個(gè)實(shí)施例中。因此,在本說明書多個(gè)位置出現(xiàn)的短語“在一個(gè)實(shí)施例中”或“在實(shí)施例中”不必都指同一個(gè)實(shí)施例。此外,所述具體特征、結(jié)構(gòu)或特性可以適當(dāng)?shù)姆绞浇Y(jié)合在一個(gè)或多個(gè)實(shí)施例中。
根據(jù)前述內(nèi)容和下面的描述,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)意識(shí)到,本發(fā)明的一個(gè)或多個(gè)元件可以容易地以硬件、軟件、傳播的信號(hào)或它們的組合來實(shí)現(xiàn)。
術(shù)語在深入討論創(chuàng)新的EGIO互連體系結(jié)構(gòu)、通信協(xié)議和相關(guān)方法的細(xì)節(jié)之前,介紹將在該詳細(xì)描述中使用的詞匯表元素是很有幫助的·通告(Advertise)在EGIO流控制的上下文中使用,通過使用EGIO協(xié)議的流控制更新消息來指示接收器發(fā)送有關(guān)它的流控制信用(credit)可用性的信息的動(dòng)作;·完成器(Completer)請(qǐng)求所指向的邏輯設(shè)備;·完成器ID完成器的總線標(biāo)識(shí)符(例如,號(hào)碼)、設(shè)備標(biāo)識(shí)符和功能標(biāo)識(shí)符中的一個(gè)或多個(gè)的組合,其唯一標(biāo)識(shí)了請(qǐng)求的完成器;·完成(completion)用于終止或部分終止一個(gè)序列的分組被稱為完成。根據(jù)一個(gè)示例性實(shí)現(xiàn),完成對(duì)應(yīng)于在前請(qǐng)求,并且在某些情況下含有數(shù)據(jù);·配置空間EGIO體系結(jié)構(gòu)中的四個(gè)地址空間中的一個(gè)。具有配置空間地址的分組被用于配置設(shè)備;·組件物理設(shè)備(即,在單個(gè)封裝之中);·數(shù)據(jù)鏈路層EGIO體系結(jié)構(gòu)的中間層,位于事務(wù)層(上層)和物理層(下層)之間;·數(shù)據(jù)鏈路層分組(DLLP)數(shù)據(jù)鏈路層分組是在數(shù)據(jù)鏈路層產(chǎn)生并使用的分組,來支持在數(shù)據(jù)鏈路層處執(zhí)行的鏈路管理功能;·下行流(downstream)指的是元件的相對(duì)位置或離開主橋的信息流;
·端點(diǎn)具有00h類型配置空間頭部的EGIO設(shè)備;·流控制用于將來自接收器的接收緩沖器信息發(fā)送到發(fā)送器,以防止接收緩沖器溢出,并且允許發(fā)送器裝置服從排序規(guī)則;·流控制分組(FCP)事務(wù)層分組,用于將來自一個(gè)組件中的事務(wù)層的流控制信息發(fā)送到另一個(gè)組件中的事務(wù)層;·功能多功能設(shè)備的一個(gè)獨(dú)立部分,在配置空間中由唯一的功能標(biāo)識(shí)符(例如,功能號(hào)碼)標(biāo)識(shí);·層次(Hierarchy)定義了在EGIO體系結(jié)構(gòu)中實(shí)現(xiàn)的I/O互連拓?fù)浣Y(jié)構(gòu)。層次由對(duì)應(yīng)于最靠近枚舉設(shè)備(enumerating device)(例如,主CPU)的鏈路的根復(fù)合體來表征;·層次域EGIO層次被根復(fù)合體分成多個(gè)段,所述根復(fù)合體產(chǎn)生不只一個(gè)EGIO接口,其中這些段被稱為層次域;·主橋?qū)⒅鰿PU復(fù)合體連接到根復(fù)合體;主橋可以提供根復(fù)合體;·IO空間EGIO體系結(jié)構(gòu)的四個(gè)地址空間中的一個(gè);·管線(Lane)物理鏈路的一組差分信號(hào)對(duì),一對(duì)用于發(fā)送并且一對(duì)用于接收。N鏈路由N條管線組成;·鏈路兩個(gè)組件之間的雙單工(dual-simplex)通信路徑;兩個(gè)端口(一個(gè)發(fā)送,一個(gè)接收)的集合以及它們的(多條)互連管線的集合;·邏輯總線在配置空間中具有相同總線號(hào)碼的一系列設(shè)備之間的邏輯連接;·邏輯設(shè)備EGIO體系結(jié)構(gòu)的元件,其在配置空間中對(duì)應(yīng)于唯一的設(shè)備標(biāo)識(shí)符;·存儲(chǔ)器空間EGIO體系結(jié)構(gòu)的四個(gè)地址空間中的一個(gè);·消息具有消息空間類型的分組;·消息空間EGIO體系結(jié)構(gòu)的四個(gè)地址空間中的一個(gè)。如PCI中定義的特殊周期作為消息空間的子集而被包括在其中,并且因此提供了(多個(gè))與老式設(shè)備的接口;·(多個(gè))老式軟件模型初始化、發(fā)現(xiàn)、配置以及使用老式設(shè)備所需的(多個(gè))軟件模型(例如,在例如EGIO至老式橋中包含的PCI軟件模型有助于與老式設(shè)備的交互);·物理層EGIO體系結(jié)構(gòu)層,其直接面對(duì)兩個(gè)組件之間的通信介質(zhì);·端口與組件相關(guān)聯(lián)的接口,在該組件和EGIO鏈路之間;·接收器通過鏈路接收分組信息的組件是接收器(有時(shí)稱為目標(biāo));·請(qǐng)求用于開始序列的分組被稱為請(qǐng)求。請(qǐng)求包括一些操代碼,并且在某些情況下,包括地址和長(zhǎng)度、數(shù)據(jù)或其它信息;·請(qǐng)求器(requester)首先將序列引入到EGIO域的邏輯設(shè)備;·請(qǐng)求器ID請(qǐng)求器的總線標(biāo)識(shí)符(例如,總線號(hào)碼)、設(shè)備標(biāo)識(shí)符和功能標(biāo)識(shí)符中的一個(gè)或多個(gè)的組合,其唯一的標(biāo)識(shí)請(qǐng)求器。在大多數(shù)情況下,EGIO橋或交換器(switch)將請(qǐng)求從一個(gè)接口轉(zhuǎn)發(fā)到另一個(gè)接口而不修改請(qǐng)求器ID。來自除了EGIO總線的總線的橋通常應(yīng)當(dāng)存儲(chǔ)請(qǐng)求器ID,以在為該請(qǐng)求產(chǎn)生一個(gè)完成時(shí)使用。
·根復(fù)合體包括主橋和一個(gè)或多個(gè)根端口的實(shí)體;·根端口根復(fù)合體上的EGIO端口,其通過相關(guān)聯(lián)的虛擬PCI-PCI橋來映射EGIO互連層次的一部分;·序列與請(qǐng)求器執(zhí)行單個(gè)邏輯傳送相關(guān)聯(lián)的零個(gè)或多個(gè)完成以及單個(gè)請(qǐng)求;·序列ID請(qǐng)求器ID和標(biāo)記的一個(gè)和多個(gè)的組合,其中所述組合唯一地標(biāo)識(shí)作為公共序列一部分的完成和請(qǐng)求;·分裂事務(wù)(split transaction)含有初始事務(wù)(分裂請(qǐng)求)的單個(gè)邏輯傳送,目標(biāo)(完成器或橋)以分裂響應(yīng)終止該事務(wù),隨后由完成器(或橋)開始一個(gè)或多個(gè)事務(wù)(分裂完成),以將讀取數(shù)據(jù)(如果讀取)或完成消息發(fā)送回請(qǐng)求器;·符號(hào)(symbol)作為8比特/10比特編碼的結(jié)果而產(chǎn)生的10比特?cái)?shù)值;·符號(hào)時(shí)間在管線上放置符號(hào)所需的時(shí)間段;·標(biāo)記由請(qǐng)求器分配到給定序列以區(qū)分它和其它序列的號(hào)碼—序列ID的一部分;
·事務(wù)層分組(TLP)TLP是在事務(wù)層中產(chǎn)生以運(yùn)送請(qǐng)求或完成的分組;·事務(wù)層EGIO體系結(jié)構(gòu)的最外層(最上層),其在事務(wù)級(jí)別進(jìn)行操作(例如,讀取、寫入等等);·事務(wù)描述符分組頭部的元素,與地址、長(zhǎng)度和類型一起描述事務(wù)的屬性。
示例性電子裝置以及EGIO體系結(jié)構(gòu)圖1提供了根據(jù)本發(fā)明示例性實(shí)施例的電子裝置100的方框圖,該電子裝置100包括增強(qiáng)型通用輸入/輸出(EGIO)互連體系結(jié)構(gòu)、協(xié)議及相關(guān)方法。如所示,電子裝置100被描述為包含多個(gè)電子元件,包括(多個(gè))處理器102、根復(fù)合體(例如,包括主橋)104、交換器108以及端點(diǎn)110中的一個(gè)或多個(gè),每個(gè)元件都如所示進(jìn)行耦合。根據(jù)本發(fā)明的教導(dǎo),至少根復(fù)合體104、(多個(gè))交換器108以及端點(diǎn)110被賦予了EGIO通信接口106的一個(gè)或多個(gè)示例,以有助于本發(fā)明的實(shí)施例的一個(gè)或多個(gè)方面。
如所示,元件102、104、108和110中的每一個(gè)都經(jīng)由EGIO接口106通過通信鏈路112可進(jìn)行通信地耦合到至少一個(gè)其它元件,其中通信鏈路112支持一條或多條EGIO通信信道。根據(jù)一個(gè)示例性實(shí)現(xiàn),在主電子裝置的初始化事件期問或者在外圍設(shè)備動(dòng)態(tài)連接到電子裝置(例如,熱插拔設(shè)備)之后,建立了EGIO互連體系結(jié)構(gòu)的操作參數(shù)。如上面所介紹的,電子裝置100被確定為代表多種傳統(tǒng)和非傳統(tǒng)計(jì)算系統(tǒng)、服務(wù)器、網(wǎng)絡(luò)交換器、網(wǎng)絡(luò)路由器、無線通信用戶單元、無線通信電話基礎(chǔ)設(shè)施元件、個(gè)人數(shù)字助理、機(jī)頂盒或任何電子裝置中的任何一個(gè)或多個(gè),所述任何電子裝置將從通過這里描述的EGIO互連體系結(jié)構(gòu)、通信協(xié)議或相關(guān)方法的至少一個(gè)子集的綜合而產(chǎn)生的通信資源獲益。
根據(jù)圖1圖示的示例性實(shí)現(xiàn),電子裝置100具有一個(gè)或多個(gè)處理器102。如這里所使用的,(多個(gè))處理器102控制電子裝置100的功能性能力的一個(gè)或多個(gè)方面。在這個(gè)方面,(多個(gè))處理器102可以代表多種控制邏輯的任何一個(gè),控制邏輯包括但不局限于微處理器、可編程邏輯器件(PLD)、可編程邏輯陣列(PLA)、專用集成電路(ASIC)、微控制器等等的一個(gè)或多個(gè)。
如上所述,根復(fù)合體104提供電子裝置EGIO體系結(jié)構(gòu)的一個(gè)或多個(gè)其它元件108、110與處理器102和/或處理器/存儲(chǔ)器符合體之間的EGIO通信接口。如這里所使用的,根復(fù)合體104指的是最靠近于主控制器、存儲(chǔ)器控制器集線器、IO控制器集線器、上述的任何組合或芯片組/CPU元件的某種組合(即,處于計(jì)算系統(tǒng)環(huán)境)的EGIO層次的邏輯實(shí)體。在這方面,盡管在圖1中被描述為單個(gè)單元,根復(fù)合體104可以被認(rèn)為是由多個(gè)物理組件組成的單個(gè)邏輯實(shí)體。
根據(jù)圖1所圖示的示例性實(shí)現(xiàn),根復(fù)合體104組裝有一個(gè)或多個(gè)EGIO接口106以便于與其它外圍設(shè)備進(jìn)行通信,所述外圍設(shè)備例如是(多個(gè))交換器108、(多個(gè))端點(diǎn)110以及(多個(gè))老式橋114或116,盡管沒有對(duì)老式橋114或116進(jìn)行具體描述。根據(jù)一個(gè)示例性實(shí)現(xiàn),每個(gè)EGIO接口106代表不同的EGIO層次域。在此方面,圖1所圖示的實(shí)現(xiàn)表示了具有三(3)個(gè)層次域的根復(fù)合體104。應(yīng)當(dāng)知道,盡管所作的表述包括多個(gè)單獨(dú)EGIO接口106,但是可以預(yù)期其它的實(shí)施例,其中單個(gè)接口106具有多個(gè)端口以適應(yīng)和多個(gè)設(shè)備的通信。
根據(jù)一個(gè)示例性實(shí)現(xiàn),根復(fù)合體104負(fù)責(zé)識(shí)別EGIO體系結(jié)構(gòu)的每個(gè)元件的通信需求(例如,虛擬信道需求、同步信道需求等等)。根據(jù)一個(gè)示例性實(shí)現(xiàn),這樣的通信需求在主裝置100的初始化事件期間或它的任何元件的初始化事件期間(例如,熱插拔事件)被傳送到根復(fù)合體104。在另一個(gè)實(shí)施例中,根復(fù)合體104詢問這些元件以識(shí)別通信需求。一旦識(shí)別了這些通信參數(shù),根復(fù)合體104就例如通過協(xié)商過程來為體系結(jié)構(gòu)的每個(gè)元件建立EGIO通信設(shè)備的款項(xiàng)和條件。
在這里公開的EGIO體系結(jié)構(gòu)中,交換器有選擇地將端點(diǎn)耦合到多個(gè)EGIO層次和/或域以及它們之間。根據(jù)一個(gè)示例性實(shí)現(xiàn),EGIO交換器108具有至少一個(gè)上行流(upstream)端口(即、朝著根復(fù)合體104的方向)和至少一個(gè)下行流端口。根據(jù)一個(gè)實(shí)現(xiàn),交換器108將最靠近主橋的一個(gè)端口(即,接口的一個(gè)端口或接口106自身)作為上行流端口,而所有其它的端口是下行流端口。根據(jù)一個(gè)實(shí)現(xiàn),交換器108對(duì)于配置軟件(例如,老式配置軟件)表現(xiàn)為PCI到PCI橋的組合,并且使用PCI橋機(jī)制來對(duì)事務(wù)進(jìn)行路由。
在交換器108的上下文中,對(duì)等事務(wù)被定義為這樣的事務(wù),其中接收端口和發(fā)送端口都是下行流端口。根據(jù)一個(gè)實(shí)現(xiàn),交換器108支持除了那些與從任何端口到任何其它端口的鎖定事務(wù)序列相關(guān)聯(lián)的事務(wù)層分組(TLP)之外的所有類型的事務(wù)層分組。在這方面,所有廣播消息一般都會(huì)從交換器108上的接收端口被路由到它的所有其它端口。不能被路由到端口的事務(wù)層分組一般會(huì)被交換器108確定為不支持的TLP。當(dāng)將事務(wù)層分組(TLP)從接收端口傳送到發(fā)送端口時(shí),交換機(jī)108一般不修改它們,除非需要進(jìn)行修改以適應(yīng)發(fā)送端口(例如,耦合到老式橋114、116的發(fā)送端口)的不同協(xié)議需求。
應(yīng)當(dāng)意識(shí)到,交換器108代表其它設(shè)備工作,并且在這方面,它不會(huì)預(yù)先知道流量類型和模式。根據(jù)下面將要詳細(xì)討論的一個(gè)實(shí)現(xiàn),本發(fā)明的流控制和數(shù)據(jù)完整性方面以每個(gè)鏈路(per-link)為基礎(chǔ)而實(shí)現(xiàn),而不是以端到端(end-to-end)為基礎(chǔ)實(shí)現(xiàn)。因此,根據(jù)這樣的實(shí)現(xiàn),交換器108參與用于流控制和數(shù)據(jù)完整性的協(xié)議。為了參與流控制,交換器108為每個(gè)端口維持單獨(dú)的流控制以提高交換器108的性能特性。類似地,交換器108通過使用TLP檢錯(cuò)機(jī)制檢查進(jìn)入交換器的每個(gè)TLP而以每個(gè)鏈路為基礎(chǔ)來支持?jǐn)?shù)據(jù)完整性過程,這在下面將詳細(xì)描述。根據(jù)一個(gè)實(shí)現(xiàn),交換器108的下行流端口被準(zhǔn)許形成新的EGIO層次域。
繼續(xù)參考圖1,端點(diǎn)110被定義為具有00hex(十六進(jìn)制00)(00h)類型配置空間頭部的任何設(shè)備。端點(diǎn)設(shè)備110代表它自身或是代表截然不同的非EGIO設(shè)備,可以是EGIO語義事務(wù)的請(qǐng)求器或完成器。這樣的端點(diǎn)110示例包括但不局限于(多個(gè))EGIO兼容(EGIOcompliant)圖形設(shè)備、EGIO兼容存儲(chǔ)器控制器以及/或者實(shí)現(xiàn)了EGIO和諸如通用串行總線(USB)、以太網(wǎng)等某些其它接口之間的連接的設(shè)備。與下文詳細(xì)討論的老式橋114、116不同,擔(dān)當(dāng)非EGIO兼容設(shè)備的接口A的端點(diǎn)110不會(huì)為這些非EGIO兼容設(shè)備提供完全軟件支持。雖然將主處理器復(fù)合體102連接到EGIO體系結(jié)構(gòu)的設(shè)備是根復(fù)合體104,但是它可以與位于EGIO體系結(jié)構(gòu)中的其它端點(diǎn)具有相同的設(shè)備類型,它們只是通過其相對(duì)于處理器復(fù)合體102的位置來加以區(qū)分。
根據(jù)本發(fā)明的教導(dǎo),端點(diǎn)110可以被概括為下列三個(gè)類別的一個(gè)或多個(gè)(1)老式與EGIO兼容端點(diǎn),(2)老式端點(diǎn),以及(3)EGIO兼容端點(diǎn),每個(gè)在EGIO體系結(jié)構(gòu)中具有不同的操作規(guī)則。
如上所述,EGIO兼容端點(diǎn)110與老式端點(diǎn)(例如,118、120)不同,在于EGIO端點(diǎn)110將具有00h類型配置空間頭部。這些端點(diǎn)(110、118和120)的每個(gè)都作為完成器支持配置請(qǐng)求。這些端點(diǎn)允許產(chǎn)生配置請(qǐng)求,并且可以被分類為老式端點(diǎn)或EGIO兼容端點(diǎn),但是該分類需要遵守另外的規(guī)則。
老式端點(diǎn)(例如,118、120)被允許作為完成器來支持IO請(qǐng)求并且被允許產(chǎn)生IO請(qǐng)求。如果老式端點(diǎn)(118、120)的軟件支持需求要求,則它被允許例如根據(jù)傳統(tǒng)的PCI操作作為完成者來支持鎖定語義(locksemantics)。老式端點(diǎn)(118、120)一般不發(fā)布鎖定請(qǐng)求。
EGIO兼容端點(diǎn)110一般不作為完成器來支持IO請(qǐng)求并且不產(chǎn)生IO請(qǐng)求。EGIO端點(diǎn)110不作為完成器來支持鎖定請(qǐng)求,并且不作為請(qǐng)求器來產(chǎn)生鎖定請(qǐng)求。
EGIO至老式橋114、116是專用端點(diǎn)110,其包括用于老式設(shè)備(118、120)的基本軟件支持例如完全軟件支持,其中所述橋?qū)⑺隼鲜皆O(shè)備連接到EGIO體系結(jié)構(gòu)。在這方面,EGIO—老式橋114、116一般具有一個(gè)上行流端口(也可以具有多個(gè)),并具有多個(gè)下行流端口(也可以只有一個(gè))。根據(jù)老式軟件模型(例如,PCI軟件模型)來支持鎖定請(qǐng)求。EGIO-老式橋114、116的上行流端口應(yīng)當(dāng)以每個(gè)鏈路為基礎(chǔ)來支持流控制并且遵守EGIO體系結(jié)構(gòu)的流控制和數(shù)據(jù)完整性規(guī)則,這在下文將詳細(xì)介紹。
如這里所使用的,通信鏈路112被確定為代表多種通信介質(zhì)中的任何一個(gè),所述多種通信介質(zhì)包括但不局限于銅線、光纖、(多條)無線通信信道、紅外通信鏈路等等。根據(jù)一個(gè)示例性實(shí)現(xiàn),EGIO鏈路112是差分串行線路對(duì),一對(duì)中的每個(gè)都支持發(fā)送和接收通信,從而提供了對(duì)全雙工通信能力的支持。根據(jù)一個(gè)實(shí)現(xiàn),鏈路提供具有初始(基本)操作頻率為2.5Ghz的可變串行時(shí)鐘頻率。每個(gè)方向的接口寬度可依x1、x2、x4、x8、x12、x16、x32物理管線而變。如上所述以及下面將要詳細(xì)介紹的,EGIO鏈路112可以在設(shè)備之間支持多條虛擬信道,從而使用一條或多條虛擬信道在這些設(shè)備之間提供對(duì)同步流量的不間斷通信的支持,所述多條虛擬信道例如是一條音頻信道和一條視頻信道。
示例性EGIO接口體系結(jié)構(gòu)根據(jù)圖2所圖示的示例性實(shí)現(xiàn),EGIO接口106可以表示為包括了事務(wù)層202、數(shù)據(jù)鏈路層204和物理層206的通信協(xié)議棧。如所示,物理鏈路層接口被描述為包括邏輯子塊208和物理子塊210,其中每個(gè)都將在進(jìn)行下面詳細(xì)討論。
事務(wù)層202根據(jù)本發(fā)明的教導(dǎo),事務(wù)層202提供EGIO互連和設(shè)備核心之間的接口。在這方面,事務(wù)層202的主要職責(zé)是為主設(shè)備(或代理)中的一個(gè)或多個(gè)邏輯設(shè)備裝配和拆解分組(即,事務(wù)層分組或TLP)。
地址空間、事務(wù)類型和用途事務(wù)形成了在發(fā)起代理和目標(biāo)代理之間的信息傳送的基礎(chǔ)。根據(jù)一個(gè)示例性實(shí)施例,在創(chuàng)新的EGIO體系結(jié)構(gòu)中定義了四個(gè)地址空間,包括例如配置地址空間、存儲(chǔ)器地址空間、輸入/輸出地址空間以及消息地址空間,每個(gè)都具有自己唯一的既定用途(例如見圖7,下面進(jìn)行了詳細(xì)的說明)。
存儲(chǔ)器空間(706)事務(wù)包括讀取請(qǐng)求和寫入請(qǐng)求中的一個(gè)或多個(gè),以將數(shù)據(jù)發(fā)送到存儲(chǔ)器映射位置或從該位置取出數(shù)據(jù)。存儲(chǔ)器空間事務(wù)可以使用兩種不同的地址格式,例如短地址格式(例如,32比特地址)或長(zhǎng)地址格式(例如,64比特的長(zhǎng)度)。根據(jù)一個(gè)示例性實(shí)施例,EGIO體系結(jié)構(gòu)使用鎖定協(xié)議語義(即,代理可以鎖定對(duì)所修改的存儲(chǔ)器空間的訪問)來提供傳統(tǒng)的讀取、修改和寫入序列。更具體地說,根據(jù)特定設(shè)備規(guī)則(橋、交換器、端點(diǎn)、老式橋),允許對(duì)下行流鎖定的支持。如上所述,支持該鎖定語義以幫助老式設(shè)備。
IO空間(704)事務(wù)用于訪問IO地址空間(例如,16比特IO地址空間)中的輸入/輸出映射存儲(chǔ)器寄存器。諸如英特爾體系結(jié)構(gòu)處理器以及其它處理器的某些處理器102通過處理器的指令集而包括IO空間定義。因此,IO空間事務(wù)包括讀取請(qǐng)求和寫入請(qǐng)求以將數(shù)據(jù)傳送至IO映射位置或從該位置取出數(shù)據(jù)。
配置空間(702)事務(wù)用于訪問EGIO設(shè)備的配置空間。配置空間的事務(wù)包括讀取請(qǐng)求和寫入請(qǐng)求。由于如此多的傳統(tǒng)處理器一般不含有本地配置空間,所以通過一種機(jī)制來映射該空間,所述機(jī)制即是與傳統(tǒng)PCI配置空間訪問機(jī)制(例如,使用基于CFC/CFC8的PCI配置機(jī)制#1)相兼容的軟件?;蛘撸部梢允褂么鎯?chǔ)器別名機(jī)制來訪問配置空間。
消息空間(708)事務(wù)(或簡(jiǎn)稱為消息)被定義為支持通過(多個(gè))接口106而在EGIO代理之間進(jìn)行帶內(nèi)通信。由于傳統(tǒng)的處理器不包括對(duì)本地消息空間的支持,所以這是通過EGIO代理在接口106中實(shí)現(xiàn)的。根據(jù)一個(gè)示例性實(shí)現(xiàn),諸如中斷和電源管理請(qǐng)求的傳統(tǒng)“邊帶(side-band)”信號(hào)作為消息而被實(shí)現(xiàn)以減少所需的用來支持這些老式信號(hào)的引腳數(shù)目。一些處理器以及PCI總線包括“特殊周期”的概念,其也被映射到EGIO接口106中的消息。根據(jù)一個(gè)實(shí)施例,消息通常分為兩類標(biāo)準(zhǔn)消息和廠商定義消息。
根據(jù)所圖示的示例性實(shí)施例,標(biāo)準(zhǔn)消息包括通用消息組和系統(tǒng)管理消息組。通用消息可以是單一目的地消息或廣播/組播消息。系統(tǒng)管理消息組可以包括中斷控制消息、電源管理消息、排序控制原語(primitive)和錯(cuò)誤信令中的一個(gè)或多個(gè),它們的例子將在下文介紹。
根據(jù)一個(gè)示例性實(shí)現(xiàn),通用消息包括支持鎖定事務(wù)的消息。根據(jù)該示例性實(shí)現(xiàn),引入了UNLOCK(解鎖)消息,其中交換器(例如,108)一般會(huì)通過可能參與鎖定事務(wù)的任何端口來運(yùn)送UNLOCK消息。在沒有被鎖定的時(shí)候接收到UNLOCK消息的端點(diǎn)設(shè)備(例如,110、118、120)將忽略該消息。否則,將在接收到UNLOCK消息之后解鎖鎖定設(shè)備。
根據(jù)一個(gè)示例性實(shí)現(xiàn),系統(tǒng)管理消息組包括用于排序和/或同步的專用消息。一個(gè)這樣的消息是FENCE(防護(hù))消息,用于在由EGIO體系結(jié)構(gòu)的接收元件產(chǎn)生的事務(wù)上施加嚴(yán)格的排序規(guī)則。根據(jù)一個(gè)實(shí)現(xiàn),只是諸如端點(diǎn)的網(wǎng)絡(luò)元件的一個(gè)精選子集對(duì)該FENCE消息作出反應(yīng)。除了前述的內(nèi)容,例如通過使用下文討論的尾部(tailer)錯(cuò)誤轉(zhuǎn)發(fā),這里還預(yù)見了用于指示可校正錯(cuò)誤、不可校正錯(cuò)誤和致命錯(cuò)誤的消息。
根據(jù)上文所介紹的本發(fā)明的一個(gè)方面,系統(tǒng)管理消息組使用帶內(nèi)消息提供中斷信令。根據(jù)一個(gè)實(shí)現(xiàn),引入了ASSERT_INTx/DEASSERT_INTx消息對(duì),其中斷言(assert)中斷消息的發(fā)布通過主橋104被發(fā)送到處理器復(fù)合體。根據(jù)所圖示的示例性實(shí)現(xiàn),ASSERT_INTx/DEASSERT_INTx消息對(duì)的使用規(guī)則反映了PCI規(guī)范中的PCI INTx#信號(hào)的消息的使用規(guī)則,如上所述。對(duì)于來自任何一個(gè)設(shè)備的Assert_INTx的每次發(fā)送,通常都有對(duì)應(yīng)的Deassert_INTx的發(fā)送。對(duì)于特定‘x’(A、B、C或D),一般在發(fā)送Deassert_INTx之前只發(fā)送一次Assert_INTx。交換器一般會(huì)將Assert_INTx/Deassart_INTx消息路由到根復(fù)合體104,其中根復(fù)合體一般會(huì)跟蹤Assert_INTx/Deassart_INTx消息以產(chǎn)生虛擬中斷信號(hào),并且將這些信號(hào)映射到系統(tǒng)中斷資源。
除了通用和系統(tǒng)管理消息組之外,EGIO體系結(jié)構(gòu)建立了標(biāo)準(zhǔn)框架結(jié)構(gòu),其中核心邏輯(例如芯片組)廠商可以定義它們自己的廠商定義消息以迎合它們的平臺(tái)的特定操作需求。該框架結(jié)構(gòu)是通過公共消息頭部而建立的,在所述頭部中廠商定義消息的編碼被規(guī)定為“預(yù)留”。
事務(wù)描述符事務(wù)描述符是用于將事務(wù)信息從起點(diǎn)運(yùn)送到服務(wù)點(diǎn)并送回的機(jī)制。它提供可擴(kuò)展裝置用于提供可以支持新類型的新興應(yīng)用的一般互連解決方案。在這方面,事務(wù)描述符支持系統(tǒng)中的事務(wù)的標(biāo)識(shí)、缺省事務(wù)排序的修改,以及使用虛擬信道ID機(jī)制關(guān)聯(lián)事務(wù)與虛擬信道。參考圖3,示出了事務(wù)描述符的示圖。
參考圖3,根據(jù)本發(fā)明的教導(dǎo)示出了包括示例性事務(wù)描述符的數(shù)據(jù)報(bào)的示圖。根據(jù)本發(fā)明的教導(dǎo),示出的事務(wù)描述符300包括全局標(biāo)識(shí)符字段302、屬性字段304和虛擬信道標(biāo)識(shí)符字段306。在所圖示的示例性實(shí)現(xiàn)中,全局標(biāo)識(shí)符字段302被描述為包括本地事務(wù)標(biāo)識(shí)符字段308和源標(biāo)識(shí)符字段310。
·全局事務(wù)標(biāo)識(shí)符302如這里所使用的,全局事務(wù)標(biāo)識(shí)符對(duì)所有待處理的請(qǐng)求都是唯一的。根據(jù)圖3所圖示的示例性實(shí)現(xiàn),全局事務(wù)標(biāo)識(shí)符302包括兩個(gè)子字段本地事務(wù)標(biāo)識(shí)符字段308和源標(biāo)識(shí)符字段310。根據(jù)一個(gè)實(shí)現(xiàn),本地事務(wù)標(biāo)識(shí)符字段308是由每個(gè)請(qǐng)求器產(chǎn)生的8比特字段,并且對(duì)于需要該請(qǐng)求器的完成的所有待處理請(qǐng)求它是唯一的。源標(biāo)識(shí)符唯一地標(biāo)識(shí)EGIO層次中的EGIO代理。因此,本地事務(wù)標(biāo)識(shí)符字段和源ID一起提供了在層次域中的事務(wù)的全局標(biāo)識(shí)。
根據(jù)一個(gè)實(shí)現(xiàn),本地事務(wù)標(biāo)識(shí)符308允許來自單個(gè)請(qǐng)求源的請(qǐng)求/完成不依順序(遵守下面詳細(xì)討論的排序規(guī)則)而被操作。例如,讀取請(qǐng)求源可以產(chǎn)生讀取A1和A2。處理這些讀取請(qǐng)求的目的地代理會(huì)首先返回請(qǐng)求A2事務(wù)ID的完成,并且隨后返回A1的完成。在完成分組頭部中,本地事務(wù)ID信息將標(biāo)識(shí)哪個(gè)事務(wù)將被完成。這種機(jī)制對(duì)于使用分布式存儲(chǔ)器系統(tǒng)的裝置尤為重要,因?yàn)樗梢愿行У姆绞絹聿僮髯x取請(qǐng)求。應(yīng)當(dāng)注意,對(duì)這種不依順序讀取完成的支持假定了發(fā)布讀取請(qǐng)求的設(shè)備將確保完成的緩沖器空間的預(yù)先分配。如上所述,只要EGIO交換機(jī)108不是端點(diǎn)(即,僅僅傳送完成請(qǐng)求到適當(dāng)?shù)亩它c(diǎn)),它們就不需要預(yù)留緩沖器空間。
單個(gè)讀取請(qǐng)求可以產(chǎn)生多個(gè)完成。屬于單個(gè)讀取請(qǐng)求的完成可以相互不依順序的返回。這通過在完成分組頭部(即,完成頭部)中提供對(duì)應(yīng)于部分完成的初始請(qǐng)求的地址偏移來只支持。
根據(jù)一個(gè)示例性實(shí)現(xiàn),源標(biāo)識(shí)符字段310包含16比特值,其對(duì)每個(gè)邏輯EGIO設(shè)備是唯一的。應(yīng)當(dāng)注意單個(gè)EGIO設(shè)備可以包括多個(gè)邏輯設(shè)備。在系統(tǒng)配置期間以對(duì)標(biāo)準(zhǔn)PCI總線枚舉機(jī)制透明的方式分配源ID值。EGIO設(shè)備使用例如在對(duì)那些設(shè)備的初始配置訪問期間可用的總線號(hào)碼信息以及用于表示例如設(shè)備號(hào)碼和流號(hào)碼的內(nèi)部可用信息,在內(nèi)部自動(dòng)地建立源ID。根據(jù)一個(gè)實(shí)現(xiàn),該總線號(hào)碼信息是在EGIO配置周期期間使用與PCI配置所使用的相類似的機(jī)制而產(chǎn)生的。根據(jù)一個(gè)實(shí)現(xiàn),總線號(hào)碼由PCI初始化機(jī)制分配并由每個(gè)設(shè)備捕獲。在熱插拔和熱交換設(shè)備的情況下,這些設(shè)備將需要在每個(gè)配置周期訪問上重新捕獲該總線號(hào)碼信息以能夠?qū)岵灏慰刂破?例如,標(biāo)準(zhǔn)熱插拔控制器(SHPC))軟件棧透明。
根據(jù)EGIO體系結(jié)構(gòu)的一個(gè)實(shí)現(xiàn),物理組件可以包含一個(gè)或多個(gè)邏輯設(shè)備(或代理)。每個(gè)邏輯設(shè)備被設(shè)計(jì)成響應(yīng)于指定到其特定設(shè)備號(hào)碼的配置周期,即,在邏輯設(shè)備中加入了設(shè)備號(hào)碼的概念。根據(jù)一個(gè)實(shí)現(xiàn),在單個(gè)物理組件中允許多達(dá)十六個(gè)邏輯設(shè)備。每個(gè)這樣的邏輯設(shè)備可以包括一個(gè)或多個(gè)流化(streaming)引擎,例如最多16個(gè)。因此,單個(gè)物理組件可以包括多達(dá)256個(gè)流化引擎。
由不同源標(biāo)識(shí)符標(biāo)記的事務(wù)屬于不同的邏輯EGIO輸入/輸出(IO)源,并且從而從排序的方面來看可以相互完全獨(dú)立地操作這些事務(wù)。對(duì)于三方、對(duì)等事務(wù)的情況,如果需要可以使用防護(hù)排序控制原語(primitive)來強(qiáng)制排序。
如這里所使用的,事務(wù)描述符300的全局事務(wù)標(biāo)識(shí)符字段302遵守下列規(guī)則的至少一個(gè)子集(a)每個(gè)需要完成的請(qǐng)求用全局事務(wù)ID(GTID)來標(biāo)記;(b)由代理發(fā)起的所有待處理的需要完成的請(qǐng)求一般應(yīng)當(dāng)分配唯一的GTID;(c)不需要完成的請(qǐng)求不使用GTID的本地事務(wù)ID字段308,并且本地事務(wù)ID字段被認(rèn)為是預(yù)留的;(d)目標(biāo)不需要以任何方式來修改請(qǐng)求GTID,而只是為所有與請(qǐng)求相關(guān)聯(lián)的完成在完成分組的頭部中回應(yīng)它,其中發(fā)起者使用GTID將(多個(gè))完成與原始請(qǐng)求相匹配。
·屬性字段304如這里所使用的,屬性字段304指明了事務(wù)的特性和關(guān)系。在這方面,屬性字段304被用于提供允許修改事務(wù)的缺省操作的額外信息。這些修改可以應(yīng)用于在系統(tǒng)中操作事務(wù)的不同方面,例如排序、硬件一致性(coherency)管理(例如探聽(snoop)屬性)和優(yōu)先級(jí)。一種示例性格式以子字段312-318來表示屬性字段304。
如所示,屬性字段304包括優(yōu)先級(jí)子字段312。優(yōu)先級(jí)子字段可以由發(fā)起者修改以為事務(wù)分配優(yōu)先級(jí)。在一個(gè)示例性實(shí)現(xiàn)中,事務(wù)或代理的服務(wù)特性的等級(jí)或質(zhì)量可以在優(yōu)先級(jí)子字段312中實(shí)現(xiàn),從而影響其它系統(tǒng)元件進(jìn)行的處理。
預(yù)留屬性字段314為將來或廠商定義用途而被預(yù)留。通過使用預(yù)留屬性字段可以實(shí)現(xiàn)使用優(yōu)先級(jí)或安全屬性的用途模型。
排序?qū)傩宰侄?16被用于提供用來傳達(dá)排序類型的可選信息,所述信息可以修改同一排序平面(plane)(其中排序平面包括由具有對(duì)應(yīng)的源ID的IO設(shè)備和主處理器(102)發(fā)起的流量)內(nèi)的缺省排序規(guī)則。根據(jù)一個(gè)示例性實(shí)現(xiàn),排序?qū)傩浴?’表示將應(yīng)用缺省的排序規(guī)則,而排序規(guī)則‘1’表示松散(relaxed)排序,其中在同一方向上寫入可以超過寫入,并且在同一方向上讀取完成可以超過寫入。使用松散排序語義的設(shè)備主要用于以缺省排序來為讀取/寫入狀態(tài)信息移動(dòng)數(shù)據(jù)和事務(wù)。
探聽屬性字段318被用于提供用來傳達(dá)高速緩存一致性管理的類型的可選信息,所述信息可以修改同一排序平面內(nèi)的缺省高速緩存一致性管理規(guī)則,其中排序平面包括由具有對(duì)應(yīng)的源ID的IO設(shè)備和主處理器(102)發(fā)起的流量。根據(jù)一個(gè)示例性實(shí)現(xiàn),探聽屬性字段318值‘0’對(duì)應(yīng)于缺省高速緩存一致性管理方案,其中探聽事務(wù)以增強(qiáng)硬件級(jí)別的高速緩存一致性。另一方面,探聽屬性字段318中的值‘1’中止缺省高速緩存一致性管理方案,并且事務(wù)沒有被探聽。相反,所訪問的數(shù)據(jù)或者是非可高速緩存的(non-cacheable),或者其一致性由軟件來管理。
·虛擬信道ID字段306如這里所使用的,虛擬信道ID字段306標(biāo)識(shí)與事務(wù)相關(guān)聯(lián)的獨(dú)立虛擬信道。根據(jù)一個(gè)實(shí)施例,虛擬信道標(biāo)識(shí)符(VCID)是4比特字段,其允許以每個(gè)事務(wù)為基礎(chǔ)來標(biāo)識(shí)多達(dá)16個(gè)虛擬信道(VC)。下面的表I中提供了VCID定義的一個(gè)示例
表I虛擬信道ID編碼虛擬信道根據(jù)本發(fā)明的一個(gè)方面,EGIO接口106的事務(wù)層202支持在EGIO通信鏈路112的帶寬內(nèi)建立和使用(多條)虛擬信道。如上所述的本發(fā)明的虛擬信道(VC)方面被用于基于將要通過信道傳輸?shù)膬?nèi)容的所需的獨(dú)立性而在單個(gè)物理EGIO鏈路112中定義單獨(dú)的邏輯通信路徑。在這方面,虛擬信道可以基于一個(gè)或多個(gè)特性來建立,例如帶寬需求、服務(wù)等級(jí)、服務(wù)類型(例如系統(tǒng)服務(wù)信道)等等。
(多條)虛擬信道和流量(或事務(wù))等級(jí)標(biāo)識(shí)符的組合被提供以支持某些等級(jí)的應(yīng)用支持的有區(qū)別的服務(wù)和服務(wù)質(zhì)量(QoS)。如這里所使用的,流量(或事務(wù))等級(jí)是事務(wù)層分組標(biāo)簽,其通過EGIO組織結(jié)構(gòu)而未經(jīng)修改端到端地進(jìn)行傳輸。在每個(gè)服務(wù)點(diǎn)(例如,交換器、根復(fù)合體等等)處,服務(wù)點(diǎn)使用流量等級(jí)標(biāo)簽來應(yīng)用適當(dāng)?shù)姆?wù)策略。在這方面,單獨(dú)的VC被用于映射流量,所述流量將從不同操作策略和服務(wù)優(yōu)先級(jí)獲益。例如,就確保T時(shí)間段內(nèi)所傳輸?shù)臄?shù)據(jù)量X而言,需要確定性服務(wù)質(zhì)量的流量可以被映射到同步(或時(shí)間協(xié)同)虛擬信道。映射到不同虛擬信道的事務(wù)相互之間可以沒有任何排序需求。即,虛擬信道作為單獨(dú)邏輯接口來操作,其具有不同的流控制規(guī)則和屬性。
根據(jù)本發(fā)明的一個(gè)示例性實(shí)現(xiàn),EGIO兼容元件的每個(gè)EGIO通信端口(輸入或輸出)包括端口能力數(shù)據(jù)結(jié)構(gòu)(未具體描述)。包括(a)由端口支持的虛擬信道的數(shù)目,(b)與每個(gè)虛擬信道相關(guān)聯(lián)的流量等級(jí),(c)端口VC狀態(tài)寄存器,(d)端口VC控制寄存器,以及(e)與這樣的虛擬信道相關(guān)聯(lián)的仲裁方案中的一個(gè)或多個(gè)的關(guān)于端口能力的信息保持在端口能力數(shù)據(jù)結(jié)構(gòu)中。根據(jù)一個(gè)示例性實(shí)現(xiàn),以每個(gè)鏈路、每個(gè)VC為基礎(chǔ)在耦合的元件之間協(xié)商通信操作參數(shù)和關(guān)聯(lián)的端口能力參數(shù)。
對(duì)于由主處理器102發(fā)起的流量,虛擬信道可以要求基于缺省排序機(jī)制規(guī)則的排序控制,或者可以完全不依順序地操作流量。根據(jù)一個(gè)示例性實(shí)現(xiàn),VC包含下列兩種類型的流量通用IO流量和同步流量。即,根據(jù)該示例性實(shí)現(xiàn),描述了兩類虛擬信道(1)通用IO虛擬信道,和(2)同步虛擬信道。
如這里所使用的,事務(wù)層202為組件主動(dòng)支持的一個(gè)或多個(gè)虛擬信道的每個(gè)保持獨(dú)立流控制。如這里所使用的,所有的EGIO兼容組件一般都會(huì)支持缺省通用IO類型虛擬信道,例如虛擬信道0,它的服務(wù)等級(jí)是“盡最大努力(best effort)”,其中在這一類型的不同虛擬信道之間不需要排序關(guān)系。缺省地,VC0被用于通用IO流量,而VC1或更高(VC1-VC7)被分配用于操作同步流量。在另一個(gè)實(shí)現(xiàn)中,任何虛擬信道都可以被分配用于操作任何流量類型。參考圖4,示出了包括多條獨(dú)立管理的虛擬信道的EGIO鏈路的概念示圖。
參考圖4,根據(jù)本發(fā)明的一個(gè)方面,示出了包括多條虛擬信道(VC)的示例性EGIO鏈路112的示圖。根據(jù)圖4所圖示的示例性實(shí)現(xiàn),示出的EGIO鏈路112包括在EGIO接口106之間創(chuàng)建的多條虛擬信道402、404。根據(jù)一個(gè)示例性實(shí)現(xiàn),對(duì)于虛擬信道402,示出了來自多個(gè)源406A...N的流量,這些流量至少由它們的源ID來區(qū)分。如所示,建立了虛擬信道402,并且在來自不同源(例如,代理、接口等)的事務(wù)之間沒有排序需求。
類似地,示出的虛擬信道404包括來自多個(gè)源多個(gè)事務(wù)408A...N的流量,其中每個(gè)事務(wù)由至少一個(gè)源ID指示。根據(jù)圖示的示例,來自源ID0406A的事務(wù)被嚴(yán)格排序,除非由事務(wù)頭部的屬性字段304所修改,而來自源408N的事務(wù)沒有這樣的排序規(guī)則。
同步信道如上所述,建立同步信道以在電子裝置100的EGIO體系結(jié)構(gòu)中的請(qǐng)求器代理和(多個(gè))完成器代理之間傳輸對(duì)時(shí)間敏感的內(nèi)容(例如,多媒體內(nèi)容流)。根據(jù)一個(gè)示例性實(shí)現(xiàn),在EGIO體系結(jié)構(gòu)之間存在兩個(gè)不同的同步通信范例,例如,端點(diǎn)到根復(fù)合體模型以及對(duì)等(或端點(diǎn)到端點(diǎn))通信模型。
在端點(diǎn)到根復(fù)合體模型中,主要的同步流量是對(duì)根復(fù)合體104的存儲(chǔ)器讀取和寫入請(qǐng)求以及來自根復(fù)合體104的讀取完成。在對(duì)等模型中,同步流量局限為單播(unicast)、僅壓入(push-only)事務(wù)(例如,諸如存儲(chǔ)器寫入的公布事務(wù)或消息)。僅壓入事務(wù)可以在單個(gè)主域中或是多個(gè)主域中。
為了支持具有保證帶寬和確定性服務(wù)延遲的同步數(shù)據(jù)傳輸,在請(qǐng)求器/完成器對(duì)和EGIO通信組織結(jié)構(gòu)之間建立了同步“協(xié)定”。根據(jù)一個(gè)實(shí)施例,“協(xié)定”將執(zhí)行資源預(yù)留和流量調(diào)整以防止虛擬信道上的擁塞和過度預(yù)約。
參考圖5,示出了用于在EGIO體系結(jié)構(gòu)中建立并管理同步通信信道的示例性方法。根據(jù)圖5所圖示的示例性實(shí)施例,方法以方框502開始,其中識(shí)別了EGIO組織結(jié)構(gòu)的一個(gè)或多個(gè)元件(即、根復(fù)合體104、交換器108、端點(diǎn)110、鏈路112、橋114等等)的通信能力。
根據(jù)一個(gè)示例性實(shí)現(xiàn),EGIO組織結(jié)構(gòu)的至少一個(gè)子集的通信能力對(duì)根復(fù)合體104的帶寬管理器公開,該帶寬管理器管理EGIO體系結(jié)構(gòu)中的同步通信資源的地址分配。在元件的初始化期間發(fā)生元件的通信能力的公開,例如在主電子裝置100啟動(dòng)的時(shí)候,或者在EGIO兼容設(shè)備熱插拔到主電子裝置的時(shí)候。根據(jù)一個(gè)實(shí)施例,公開的信息(例如來自EGIO代理106中的數(shù)據(jù)結(jié)構(gòu))包括端口標(biāo)識(shí)、端口地址分配、(多個(gè))虛擬信道分配、帶寬能力等等中的一個(gè)或多個(gè)。該信息保存在可由帶寬管理器訪問的數(shù)據(jù)結(jié)構(gòu)中以用于生成同步協(xié)定,這在下文將詳細(xì)描述。
在電子裝置100的常規(guī)操作過程期間,可能需要或期望在裝置100中的兩個(gè)(或多個(gè))代理之間建立同步通信信道。在這種情況下,在方框504中,根復(fù)合體104的帶寬管理器從(或代表)請(qǐng)求器/完成器對(duì)接收對(duì)EGIO組織結(jié)構(gòu)中的同步通信資源的請(qǐng)求。如這里所使用的,請(qǐng)求包括諸如帶寬和服務(wù)延遲需求的期望通信資源的指示。
在方框506中,在接收到同步通信資源的請(qǐng)求之后,根復(fù)合體104的帶寬管理器分析EGIO體系結(jié)構(gòu)的至少一個(gè)適當(dāng)子集的可用通信資源,以在方框508中確定同步通信資源的請(qǐng)求是否合適。根據(jù)一個(gè)實(shí)施例,根復(fù)合體104的帶寬管理器分析包括了請(qǐng)求器和完成器之間的通信路徑的與端口106、(多個(gè))交換器108、(多條)鏈路112等相關(guān)聯(lián)的信息,來確定是否可以滿足合同步通信請(qǐng)求的帶寬和服務(wù)延遲需求。在另一個(gè)實(shí)施例中,請(qǐng)求器/完成器對(duì)只是以逐個(gè)鏈路為基礎(chǔ)在它們自身和任何介入元件之間建立同步協(xié)定(或關(guān)于操作參數(shù)的協(xié)商協(xié)約)如果在方框508中根復(fù)合體104的帶寬管理器確定請(qǐng)求的通信資源不可用,則根復(fù)合體丟棄同步信道的請(qǐng)求,并且在方框510中可以提供所請(qǐng)求的資源不可用的指示。根據(jù)某些實(shí)施例,可用資源的指示會(huì)提供給請(qǐng)求器/完成器對(duì),隨后請(qǐng)求器/完成器對(duì)還是根據(jù)所指示的可用資源,可以決定重新發(fā)布同步通信資源的請(qǐng)求。在另一個(gè)實(shí)施例中,帶寬管理器將通知請(qǐng)求了資源的實(shí)體分配了某個(gè)帶寬(其可能小于所請(qǐng)求的)。在這種情況下,請(qǐng)求實(shí)體不需要重新發(fā)布請(qǐng)求。
根據(jù)一個(gè)示例性實(shí)施例,在確定是否能滿足對(duì)同步通信資源的請(qǐng)求時(shí),并且在方框512中建立同步協(xié)定時(shí),根復(fù)合體104的帶寬管理器如下計(jì)算請(qǐng)求器/完成器對(duì)的帶寬需求BW=(N*Y)/T [1]公式將分配帶寬(BW)定義為在特定時(shí)間段(T)內(nèi)具有特定有效載荷大小(Y)的事務(wù)的特定數(shù)目(N)的函數(shù)。
同步協(xié)定中的另一個(gè)重要參數(shù)是延遲?;趨f(xié)定,同步事務(wù)可以在特定的延遲(L)內(nèi)完成。一旦帶寬管理器允許請(qǐng)求器/完成器對(duì)進(jìn)行同步通信,在常規(guī)操作條件下,完成器和介入的EGIO體系結(jié)構(gòu)元件(例如,交換器、(多條)鏈路、根復(fù)合體等等)向請(qǐng)求器保證帶寬和延遲。
因此,在方框512中產(chǎn)生的同步協(xié)定規(guī)定了由(多個(gè))EGIO接口106實(shí)現(xiàn)的特定服務(wù)紀(jì)律,該接口106參與了EGIO體系結(jié)構(gòu)中的同步通信。以下述方式將服務(wù)紀(jì)律作用于EGIO交換器108和完成器(例如,端點(diǎn)110、根復(fù)合體104等等),即注入請(qǐng)求的服務(wù)受特定服務(wù)時(shí)間間隔(t)支配。該機(jī)制用于提供當(dāng)請(qǐng)求器發(fā)出的同步分組被處理時(shí)的控制方法。
因此,在方框514中以下述方式管理同步流量,即只有遵照協(xié)商的同步協(xié)定而被注入到EGIO體系結(jié)構(gòu)的分組才允許立即前進(jìn),并且開始由EGIO體系結(jié)構(gòu)元件處理。通過流控制機(jī)制,阻止了試圖注入比按照協(xié)商協(xié)議允許的更多的同步流量的不兼容請(qǐng)求器進(jìn)行這樣的操作,這將在下文詳細(xì)描述(例如見數(shù)據(jù)鏈路層特征集)。
根據(jù)一個(gè)示例性實(shí)現(xiàn),同步時(shí)間段(T)被均勻的劃分為多個(gè)虛擬時(shí)隙(t)的單元。在一個(gè)虛擬時(shí)隙中最多允許一個(gè)同步請(qǐng)求。根據(jù)一個(gè)實(shí)施例,作為EGIO接口的數(shù)據(jù)結(jié)構(gòu)中的頭部信息來提供由EGIO組件支持的虛擬時(shí)隙的大小(或持續(xù)時(shí)間)。在另一個(gè)實(shí)現(xiàn)中,在接收到初始化事件(例如,冷啟動(dòng)、復(fù)位等等)時(shí),通過來自EGIO組件的廣播消息來報(bào)告虛擬時(shí)隙的大小。在另一個(gè)實(shí)現(xiàn)中,在接收到專用請(qǐng)求消息時(shí),通過來自EGIO組件的專用信息消息來報(bào)告虛擬時(shí)隙的大小。在另一個(gè)實(shí)現(xiàn)中,虛擬時(shí)隙的大小可以是固定的,并且同步帶寬管理器軟件可以下述方式交錯(cuò)嵌入有效(active)和無效(inactive)時(shí)隙(在帶寬分配期間),所述方式有效地創(chuàng)建“較寬”的時(shí)隙。
根據(jù)一個(gè)實(shí)施例,虛擬時(shí)隙(t)的持續(xù)時(shí)間是100ns。同步時(shí)間段(T)的持續(xù)時(shí)間取決于所支持的基于時(shí)間仲裁方案(例如,基于時(shí)間加權(quán)輪詢(weighted round-robin,WRR) (或加權(quán)順序))的階段(phase)數(shù)目。根據(jù)一個(gè)實(shí)施例,階段數(shù)目由同步虛擬時(shí)隙的數(shù)目規(guī)定,并且由每個(gè)元件中保持的端口仲裁表中的條目數(shù)目指示。當(dāng)端口仲裁表大小等于128時(shí),在同步時(shí)間段中有128個(gè)虛擬時(shí)隙(t),即,T=12.8μs。
根據(jù)一個(gè)示例性實(shí)施例,在EGIO配置期間建立同步事務(wù)的最大有效載荷大小(Y)。在配置之后,在給定EGIO層次域最大有效載荷大小是固定的。固定最大有效載荷大小的值被用于同步帶寬預(yù)算,而不考慮與請(qǐng)求器/完成器之間的同步事務(wù)相關(guān)聯(lián)的數(shù)據(jù)有效載荷的實(shí)際大小。
在討論了同步時(shí)間段(T)、虛擬時(shí)隙(t)和最大有效載荷(Y)的條件下,時(shí)間段中的虛擬時(shí)隙的最大數(shù)目是Nmax=T/t [2]并且,最大可指定同步帶寬是BWmax=Y(jié)/t [3]從而,同步帶寬可以分配的粒度(granularity)定義如下BW粒度=Y(jié)/T[4]將同步帶寬BW鏈路分配給通信鏈路112與按照每個(gè)同步時(shí)間段(T)分配N鏈路虛擬時(shí)隙相類似,其中N鏈路由下式給出N鏈路=BW鏈路/BW粒度[5]為了保持對(duì)鏈路的受調(diào)節(jié)的訪問,用作同步流量的出口(egressport)的交換器端口建立具有多達(dá)Nmax個(gè)條目的數(shù)據(jù)結(jié)構(gòu),其中Nmax是在給定鏈路帶寬、粒度和延遲需求的條件下容許的同步會(huì)話的最大數(shù)目。表中的一個(gè)條目代表同步時(shí)間段(T)中的一個(gè)虛擬時(shí)隙。當(dāng)表?xiàng)l目被給定端口號(hào)碼(PN)的值時(shí),意味著該時(shí)隙被分配給由端口號(hào)碼指定的入口(ingress port)。因此,當(dāng)端口仲裁表中的N鏈路條目被給定了PN的值時(shí),N鏈路虛擬時(shí)隙被分配給入口。只有當(dāng)由出口的同步時(shí)間計(jì)數(shù)器(其每隔t時(shí)間增加1,并且當(dāng)?shù)竭_(dá)T時(shí)重新開始計(jì)數(shù))訪問的表?xiàng)l目被設(shè)定為PN時(shí),出口才會(huì)容許來自入口的對(duì)其它服務(wù)的一個(gè)同步請(qǐng)求事務(wù)。即使在入口中準(zhǔn)備好了待處理的同步請(qǐng)求,直到下一輪仲裁(例如,基于時(shí)間、加權(quán)輪詢(WRR)仲裁)才會(huì)處理它。以此方式,基于時(shí)間的端口仲裁數(shù)據(jù)結(jié)構(gòu)用作同步帶寬分配和流量調(diào)節(jié)。
如這里所使用的,上面討論的事務(wù)延遲由通過EGIO組織結(jié)構(gòu)的延遲和完成器產(chǎn)生的延遲兩者組成。為每個(gè)事務(wù)定義同步事務(wù)延遲,并且以虛擬時(shí)隙t為單位測(cè)量同步事務(wù)延遲。
對(duì)于端點(diǎn)到根復(fù)合體通信模型中的請(qǐng)求器,讀取延遲定義為往返程延遲,即,從設(shè)備向它的事務(wù)層遞交存儲(chǔ)器讀取請(qǐng)求分組(在發(fā)送方)時(shí)到對(duì)應(yīng)的讀取完成到達(dá)設(shè)備的事務(wù)層(接收方)時(shí)的延時(shí)。對(duì)于任一個(gè)通信模型中的請(qǐng)求器,寫入延遲定義為從請(qǐng)求器發(fā)送存儲(chǔ)器寫入請(qǐng)求到其事務(wù)層的發(fā)送端時(shí)到數(shù)據(jù)寫入變得在完成器的存儲(chǔ)器子系統(tǒng)中全局可見時(shí)的延時(shí)。當(dāng)訪問存儲(chǔ)器地址的所有代理獲得更新數(shù)據(jù)時(shí),對(duì)存儲(chǔ)器的寫入達(dá)到全局可見的情況。
作為同步協(xié)定的一部分,提供了同步事務(wù)延遲的上邊界和下邊界。請(qǐng)求器中的同步數(shù)據(jù)緩沖器大小可以使用最小和最大同步事務(wù)延遲來確定。如下文所詳細(xì)介紹的,最小同步事務(wù)延遲比最大同步事務(wù)延遲小得多。
對(duì)于請(qǐng)求器,可以根據(jù)下面的等式(6)來計(jì)算最大同步(讀取或?qū)懭?事務(wù)延遲(L),L=L組織結(jié)構(gòu)+L完成器[6]其中L組織結(jié)構(gòu)是EGIO組織結(jié)構(gòu)的最大延遲,而L完成器是完成器的最大延遲。
EGIO鏈路112或EGIO組織結(jié)構(gòu)的事務(wù)延遲定義為從事務(wù)在發(fā)送端公布時(shí)到它在接收端可用時(shí)的延時(shí)。這適用于讀取和寫入事務(wù)兩者。在這方面,L組織結(jié)構(gòu)取決于拓?fù)浣Y(jié)構(gòu)、由每條鏈路112引起的延遲以及從請(qǐng)求器到完成器的路徑中的仲裁點(diǎn)。
事務(wù)排序盡管使所有響應(yīng)依次序被處理可能更簡(jiǎn)單,但是事務(wù)層202試圖通過準(zhǔn)許事務(wù)的重新排序來提高性能。為了便于這樣的重新排序,事務(wù)層202“標(biāo)記”事務(wù)。即根據(jù)一個(gè)實(shí)施例,事務(wù)層202添加事務(wù)描述符到每個(gè)分組,使得它的傳輸時(shí)間可以由EGIO體系結(jié)構(gòu)中的元件來優(yōu)化(例如,通過重新排序),且不會(huì)丟失分組最初被處理的相對(duì)順序。這樣的事務(wù)描述符被用于幫助請(qǐng)求和完成分組通過EGIO接口層次而進(jìn)行路由。
因而,EGIO互連體系結(jié)構(gòu)和通信協(xié)議的創(chuàng)新方面之一是它提供了不依順序通信,從而通過減少空閑或等待狀態(tài)來提高數(shù)據(jù)吞吐量。在這方面,事務(wù)層202使用了一組規(guī)則來定義EGIO事務(wù)的排序需求。定義了事務(wù)排序需求來確保軟件的正確操作,所述軟件被設(shè)計(jì)成支持生產(chǎn)者—消費(fèi)者排序模型,同時(shí)允許基于不同排序模型(例如,圖形附著應(yīng)用的松散排序)的應(yīng)用的改進(jìn)的事務(wù)操作靈活性。下文描述了兩種不同類型的排序需求單個(gè)排序平面模型和多個(gè)排序平面模型。
·基本事務(wù)排序—單個(gè)“排序平面”模型假定以下兩個(gè)組件通過與圖1相似的EGIO體系結(jié)構(gòu)連接起來存儲(chǔ)器控制集線器,提供到主處理器和存儲(chǔ)器子系統(tǒng)的接口;以及IO控制集線器,提供到IO子系統(tǒng)的接口。兩個(gè)集線器都含有用于操作輸入和輸出流量的內(nèi)部隊(duì)列,并且在這個(gè)簡(jiǎn)單模型中所有IO流量都被映射到單個(gè)“排序平面”。(注意,事務(wù)描述符源ID信息為EGIO層次中的每個(gè)代理都提供了唯一的標(biāo)識(shí)符,還要注意,映射到源ID的IO流量可以攜帶不同事務(wù)排序?qū)傩?。在IO發(fā)起(IO-initiated)的流量和主發(fā)起(host-initiated)的流量之間規(guī)定了本系統(tǒng)配置的排序規(guī)則。根據(jù)上述說法,映射到源ID的IO流量和主處理器發(fā)起的流量代表在單個(gè)“排序平面”中傳遞的流量。
參考表II,下面提供了該事務(wù)排序規(guī)則的示例。該表中定義的規(guī)則普遍適用于包括存儲(chǔ)器、IO配置和消息的EGIO系統(tǒng)中的所有類型的事務(wù)。在下面的表II中,列代表兩個(gè)事務(wù)的第一個(gè),而行代表第二個(gè)。表?xiàng)l目指明了兩個(gè)事務(wù)之間的排序關(guān)系。表?xiàng)l目定義如下是—一般會(huì)允許第二個(gè)事務(wù)超過第一個(gè)事務(wù)以避免死鎖。(當(dāng)發(fā)生阻塞時(shí),需要第二個(gè)事務(wù)超過第一個(gè)事務(wù)。一般應(yīng)當(dāng)考慮公平以防止饑餓(starvation))。
Y/N—沒有需求。第一個(gè)事務(wù)可選地超過第二個(gè)事務(wù)或者被其阻塞。
否—一般不會(huì)允許第二個(gè)事務(wù)超過第一個(gè)事務(wù)。這需要保持嚴(yán)格的排序。
表II單個(gè)排序平面的事務(wù)排序和死鎖避免
表III事務(wù)排序解釋·高級(jí)事務(wù)排序一“多個(gè)平面”事務(wù)排序模型前述部分定義了單個(gè)“排序平面”內(nèi)的排序規(guī)則。如上所述,EGIO互連體系結(jié)構(gòu)和通信協(xié)議使用唯一的事務(wù)描述符機(jī)制來關(guān)聯(lián)事務(wù)和額外的信息,以支持更復(fù)雜的排序關(guān)系。事務(wù)描述符中的字段允許創(chuàng)建多個(gè)“排序平面”,從IO流量排序來看這些排序平面是互相獨(dú)立的。
每個(gè)“排序平面”都包括對(duì)應(yīng)于具體IO設(shè)備(由唯一的源ID指定)的排隊(duì)/緩沖邏輯以及傳輸主處理器發(fā)起的流量的排隊(duì)/緩沖邏輯。“平面”內(nèi)的排序一般只在這兩者之間定義。對(duì)獨(dú)立于其它“排序平面”的每個(gè)“排序平面”都實(shí)施了在前述部分規(guī)定的用來支持生產(chǎn)者/消費(fèi)者用途模型并且防止死鎖的規(guī)則。例如,由“平面”N發(fā)起的請(qǐng)求的讀取完成可以繞過由“平面”M發(fā)起的請(qǐng)求的讀取完成。然而,平面N的讀取完成和平面M的讀取完成都不能繞過由主機(jī)發(fā)起的公布存儲(chǔ)器寫入。
盡管平面映射機(jī)制的使用允許存在多個(gè)排序平面,但是排序平面中的一些或全部可以“折疊”到一起以簡(jiǎn)化實(shí)現(xiàn)(即,將多個(gè)單獨(dú)控制的緩沖器/FIFO結(jié)合成單個(gè))。當(dāng)所有平面折疊在一起時(shí),僅使用事務(wù)描述符源ID機(jī)制來幫助事務(wù)的路由,并且它不用于在IO流量的獨(dú)立流之問松散排序。
除了上述的內(nèi)容,事務(wù)描述符機(jī)制規(guī)定了使用排序?qū)傩栽趩蝹€(gè)排序平面內(nèi)修改缺省排序。從而可以以每個(gè)事務(wù)為基礎(chǔ)而控制排序的修改。
事務(wù)層協(xié)議分組格式如上所述,創(chuàng)新EGIO體系結(jié)構(gòu)使用基于分組的協(xié)議以在相互通信的兩個(gè)設(shè)備的事務(wù)層之間交換信息。EGIO體系結(jié)構(gòu)通常支持存儲(chǔ)器、IO、配置和消息事務(wù)類型。一般使用要求或完成分組運(yùn)送這些事務(wù),其中只有當(dāng)要求時(shí),即要求返回?cái)?shù)據(jù)或請(qǐng)求事務(wù)的確認(rèn)接收時(shí),才使用完成分組。
參考圖6,根據(jù)本發(fā)明的教導(dǎo)示出了示例性事務(wù)層協(xié)議的示圖。根據(jù)圖6所圖示的示例性實(shí)現(xiàn),圖示的TLP頭部600包括格式字段、類型字段、擴(kuò)展類型/擴(kuò)展長(zhǎng)度(ET/EL)字段和長(zhǎng)度字段。應(yīng)當(dāng)知道,某些TLP在頭部之后包括如頭部中列出的格式字段確定的數(shù)據(jù)。沒有TLP可以含有多于MAX_PAYLOAD_SIZE設(shè)定的極限的數(shù)據(jù)。根據(jù)一個(gè)示例性實(shí)現(xiàn),TLP數(shù)據(jù)是4字節(jié)自然對(duì)齊的,并且以4字節(jié)雙字(DW)增加。
如這里所使用的,根據(jù)下面的定義格式(FMT)字段規(guī)定了TLP的格式·000-2DW頭部,無數(shù)據(jù)·001-3DW頭部,無數(shù)據(jù)·010-4DW頭部,無數(shù)據(jù)·101-3DW頭部,有數(shù)據(jù)·110-4DW頭部,有數(shù)據(jù)·預(yù)留所有其它的編碼類型字段用于指示TLP中使用的類型編碼。根據(jù)一個(gè)實(shí)現(xiàn),一般應(yīng)該解碼格式[2:0]和類型[3:0]兩者來確定TLP格式。根據(jù)一個(gè)實(shí)現(xiàn),類型[3:0]字段中的值用于確定擴(kuò)展類型/擴(kuò)展長(zhǎng)度字段是否被用于擴(kuò)展類型字段或長(zhǎng)度字段。ET/EL字段一般只用于擴(kuò)展存儲(chǔ)器類型讀取請(qǐng)求的長(zhǎng)度字段。
長(zhǎng)度字段提供了有效載荷長(zhǎng)度的指示,還是以DW增加,如下所示0000 0000=1DW0000 0001=2DW......1111 1111=256DW下面提供了示例性TLP事務(wù)類型的至少一個(gè)子集、它們對(duì)應(yīng)的頭部格式以及描述的總結(jié),表IV中
表IVTLP類型總結(jié)附錄A中提供了有關(guān)請(qǐng)求和完成的其它細(xì)節(jié),其中的說明在這里作為參考而被明確引入。
流控制與傳統(tǒng)流控制方案普遍關(guān)聯(lián)的限制之一是它們對(duì)可能發(fā)生的問題有反應(yīng)(reactive),而不是在預(yù)先(proactively)降低發(fā)生這些問題首先發(fā)生的機(jī)會(huì)。例如在傳統(tǒng)的PCI系統(tǒng)中,發(fā)送者將向接收者發(fā)送信息直到它接收到停止/中止發(fā)送的消息。其中停止/中止發(fā)送直到下一個(gè)通知。這些請(qǐng)求隨后可以跟隨有重新發(fā)送起始于發(fā)送的給定點(diǎn)處的分組的請(qǐng)求。本領(lǐng)域技術(shù)人員將理解,這一反應(yīng)(reactive)方法導(dǎo)致周期浪費(fèi),并且在這方面可能效率較低。
為了解決這個(gè)限制,EGIO接口106的事務(wù)層202包括流控制機(jī)制,其預(yù)先降低發(fā)生溢出情況的機(jī)會(huì),同時(shí)還規(guī)定以發(fā)起者和(多個(gè))完成者之間建立的虛擬信道的每個(gè)鏈路為基礎(chǔ)來遵守排序規(guī)則。根據(jù)本發(fā)明的一個(gè)方面,引入了流控制“信用”的概念,其中接收者共享下列信息(a)緩沖器(信用)大小,和(b)對(duì)于發(fā)送者和接收者之間建立的每條虛擬信道(即以每條虛擬信道為基礎(chǔ))的發(fā)送者當(dāng)前可用緩沖器空間。這使得發(fā)送者的事務(wù)層202能夠保持可用緩沖器空間的估值(例如,可用信用的計(jì)數(shù)),并且如果確定發(fā)送將在接收緩沖器內(nèi)產(chǎn)生溢出情況則能夠預(yù)先節(jié)流通過任何虛擬信道進(jìn)行的發(fā)送,其中所述可用緩沖器空間分配給通過被識(shí)別的虛擬信道進(jìn)行的發(fā)送。
根據(jù)本發(fā)明的一個(gè)方面,如上所述,事務(wù)層202引入流控制來防止接收緩沖器的溢出并且能夠遵循排序規(guī)則。根據(jù)一個(gè)實(shí)現(xiàn),由請(qǐng)求器使用事務(wù)層202的流控制機(jī)制以通過EGIO鏈路112來跟蹤代理中的可用隊(duì)列/緩沖器空間。如這里所使用的,流控制沒有暗示請(qǐng)求已經(jīng)到達(dá)它的最終完成器。
根據(jù)本發(fā)明的教導(dǎo),流控制與數(shù)據(jù)完整性機(jī)制相互獨(dú)立,其中所述數(shù)據(jù)完整性機(jī)制用于實(shí)現(xiàn)發(fā)送者和接收者之間的可靠信息交換。即,流控制能夠保證從發(fā)送者到接收者的事務(wù)層分組(TLP)信息流完好,這是由于數(shù)據(jù)完整性機(jī)制保證通過重新傳輸改正錯(cuò)誤的和丟失的TLP。如這里所使用的,流控制包括EGIO鏈路112的虛擬信道。在這方面,將在由接收者通告的流控制信用(FCC)中反映由接收者支持的每個(gè)虛擬信道。
根據(jù)本發(fā)明的教導(dǎo),由事務(wù)層202和數(shù)據(jù)鏈路層204合作來執(zhí)行流控制。為了方便描述流控制機(jī)制,區(qū)分出下列分組信息類型(a)公布請(qǐng)求頭部(PRH)(b)公布請(qǐng)求數(shù)據(jù)(PRD)(c)非公布請(qǐng)求頭部(NPRH)
(d)非公布請(qǐng)求數(shù)據(jù)(NPRD)(e)讀取、寫入和消息完成頭部(CPLH)(f)讀取和消息完成數(shù)據(jù)(CPLD)如上所述,預(yù)先流控制的EGIO實(shí)現(xiàn)中的測(cè)量單元是流控制信用(FCC)。根據(jù)僅僅一個(gè)實(shí)現(xiàn),對(duì)于數(shù)據(jù),流控制信用是16字節(jié)。對(duì)于頭部,流控制信用的單元是一個(gè)頭部。如上所述,每個(gè)虛擬信道都具有獨(dú)立流控制。對(duì)于每個(gè)虛擬信道,為分組信息的每個(gè)前述類型(如上所指示的(a)-(f))以每個(gè)VC為基礎(chǔ)來維持并跟蹤信用的單獨(dú)的指示符。根據(jù)所圖示的示例性實(shí)現(xiàn),分組的發(fā)送根據(jù)下述內(nèi)容來消耗流控制信用-存儲(chǔ)器/IO/配置讀取請(qǐng)求1NPRH單元-存儲(chǔ)器寫入請(qǐng)求1PRH+nPRD單元(其中n與數(shù)據(jù)有效載荷的大小相關(guān)聯(lián),例如由流控制單元大小(例如,16字節(jié))劃分的數(shù)據(jù)的長(zhǎng)度)-IO/配置寫入請(qǐng)求1NPRH+1NPRD-消息請(qǐng)求取決于消息,至少1PRH和/或1NPRH單元-帶有數(shù)據(jù)的完成1CPLH+nCPLD單元(其中n與由諸如16字節(jié)的流控制數(shù)據(jù)單元大小劃分的數(shù)據(jù)大小有關(guān))-沒有數(shù)據(jù)的完成1CPLH對(duì)于所跟蹤的每種類型的信息,有三個(gè)概念寄存器來監(jiān)測(cè)消耗的信用(發(fā)送者內(nèi))、信用極限(發(fā)送者內(nèi))和分配的信用(接收者內(nèi))信用消耗寄存器含有自從初始化以來所消耗的流控制單元模256的總量的計(jì)數(shù)。在初始化時(shí)信用消耗寄存器被設(shè)定為全零(0),并且當(dāng)事務(wù)層承諾發(fā)送信息到數(shù)據(jù)鏈路層時(shí)增加。增加的大小與承諾發(fā)送的信息消耗的信用數(shù)量有關(guān)。根據(jù)一個(gè)實(shí)現(xiàn),當(dāng)達(dá)到或超過最大計(jì)數(shù)(例如,全1)時(shí),計(jì)數(shù)器翻轉(zhuǎn)為零。根據(jù)一個(gè)實(shí)現(xiàn),使用無符號(hào)8比特模算術(shù)來維持計(jì)數(shù)器。
信用極限寄存器含有可能消耗的流控制單元的最大數(shù)值的極限。在接口初始化后,該寄存器設(shè)定為全零,并且在接收消息后被設(shè)定為在流控制更新消息(上文進(jìn)行了描述)中指示的值。
信用分配寄存器保持了自從初始化以來授與發(fā)送者的信用總數(shù)的計(jì)數(shù)。根據(jù)接收者的緩沖器大小和分配策略來初始設(shè)定該計(jì)數(shù)。該值可以包括在流控制更新消息中。該值隨著接收者事務(wù)層從它的接收緩沖器移除已處理的信息而增加。增加的大小與產(chǎn)生可用空間的大小有關(guān)。根據(jù)一個(gè)實(shí)施例,接收者一般會(huì)將分配的信用最初設(shè)定為等于或大于下列值的值-PRH1流控制單元(FCU);-PRDFCU等于設(shè)備最大有效載荷大小的極大可能設(shè)定-NPRH1FCU-NPRDFCU等于設(shè)備最大有效載荷大小的極大可能設(shè)定-交換設(shè)備—CPLH1FCU-交換設(shè)備—CPLDFCU等于設(shè)備最大有效載荷大小的極大可能設(shè)定和設(shè)備將產(chǎn)生的極大讀取請(qǐng)求中的較小的一個(gè)。
-根和端點(diǎn)設(shè)備—CPLH或CPLD255FCU(全1),發(fā)送者認(rèn)為該值無窮大,因而其從不會(huì)阻塞。
根據(jù)該實(shí)現(xiàn),接收者一般不會(huì)為任何消息類型而將信用分配寄存器值設(shè)定為大于127FCU。
根據(jù)另一個(gè)實(shí)現(xiàn),與上述使用計(jì)數(shù)器方法保持信用分配寄存器不同,或發(fā)送者可以基于下述等式動(dòng)態(tài)計(jì)算分配的信用C_A=(最近接收的發(fā)送的信用單元數(shù)值)+(可用的接收緩沖器空間)[7]如上所述,發(fā)送者為發(fā)送者將使用的每個(gè)虛擬信道實(shí)現(xiàn)概念寄存器(消耗的信用,信用極限)。類似地,接收者為接收者支持的每個(gè)虛擬信道實(shí)現(xiàn)概念寄存器(分配的信用)。
為了預(yù)先制止如果這樣做將引起接收緩沖器溢出的信息的發(fā)送,如果消耗的信用的計(jì)數(shù)加上與將要發(fā)送的數(shù)據(jù)相關(guān)的信用單元的數(shù)目,小于或等于信用極限值,當(dāng)發(fā)送者接收指示非無窮信用(即,<255FCU)的完成的流控制信息時(shí),發(fā)送者將根據(jù)可用信用來節(jié)流完成。當(dāng)考慮信用使用及返回時(shí),來自不同事務(wù)的信息不混合在一個(gè)信用中。類似地,當(dāng)考慮信用使用及返回時(shí),來自一個(gè)事務(wù)的頭部和數(shù)據(jù)信息也從不混合在一個(gè)使用中。因此,當(dāng)某個(gè)分組由于缺乏流控制信用而被阻塞傳輸時(shí),發(fā)送者在確定應(yīng)當(dāng)準(zhǔn)許哪個(gè)類型的分組繞過“停滯”分組時(shí)將遵循排序規(guī)則(上文)。
事務(wù)的流控制信用的返回不認(rèn)為是意味著事務(wù)已經(jīng)完成或事務(wù)已經(jīng)實(shí)現(xiàn)系統(tǒng)可見(visibility)。使用存儲(chǔ)器寫入請(qǐng)求語義的消息信號(hào)中斷(MSI)象任何其它存儲(chǔ)器寫入一樣被處理。如果隨后的FC更新消息(來自接收者)指示了比最初指示的值更低的信用極限值,則發(fā)送者應(yīng)當(dāng)承認(rèn)新的較低極限,并且提供一個(gè)消息錯(cuò)誤。
根據(jù)這里所描述的流控制機(jī)制,如果接收者接收到比分配的信用更多的信息(超過分配的信用),則接收者將向違規(guī)的發(fā)送者指示接收者溢出錯(cuò)誤,并且對(duì)引起溢出的分組發(fā)起數(shù)據(jù)鏈路級(jí)別的重試請(qǐng)求。
·流控制分組(FCP)根據(jù)一個(gè)實(shí)現(xiàn),使用流控制分組(FCP)在設(shè)備之間傳輸保持上述寄存器所需的流控制信息。參考圖7,示出了示例性流控制分組。根據(jù)一個(gè)實(shí)施例,流控制分組700包括用于具體虛擬信道的關(guān)于六個(gè)信用寄存器的狀態(tài)的輸送信息和2-DW頭部格式,其中六個(gè)信用寄存器由接收事務(wù)層的流控制邏輯為每個(gè)VC保持。
根據(jù)本發(fā)明的教導(dǎo)的一個(gè)實(shí)施例,如圖7所示有兩種類型的FCP初始FCP和更新FCP。如上所述,在初始化事務(wù)層時(shí),發(fā)布初始FCP702。在初始化事務(wù)層之后,更新FCP704被用于更新寄存器中的信息。
在常規(guī)操作期間接收到初始FCP702引起本地流控制機(jī)制的復(fù)位以及初始FCP702的發(fā)送。初始FCP702的內(nèi)容包括為PRH、PRD、NPRH、NPRD、CPH、CPD和信道ID(例如,與應(yīng)用FC信息相關(guān)聯(lián)的虛擬信道)中的每個(gè)所通告的信用的至少一個(gè)子集。
更新FCP704的格式與初始FCP702的格式類似。應(yīng)當(dāng)知道,盡管FC頭部不包括其它事務(wù)層分組頭部格式普遍具有的長(zhǎng)度字段,但是分組的大小是明確的,因?yàn)闆]有與該分組相關(guān)的額外DW數(shù)據(jù)。
錯(cuò)誤轉(zhuǎn)發(fā)與傳統(tǒng)的錯(cuò)誤轉(zhuǎn)發(fā)機(jī)制不同,EGIO體系結(jié)構(gòu)依靠附加到被識(shí)別為由于如下描述的多個(gè)原因而具有的缺陷的(多個(gè))數(shù)據(jù)報(bào)上的尾部信息。根據(jù)一個(gè)示例性實(shí)現(xiàn),事務(wù)層202使用了多種公知錯(cuò)誤檢測(cè)技術(shù)中的任何一種,例如循環(huán)冗余校驗(yàn)(CRC)錯(cuò)誤控制等等。
根據(jù)一個(gè)實(shí)現(xiàn),為了有助于錯(cuò)誤轉(zhuǎn)發(fā)特征,EGIO體系結(jié)構(gòu)使用了“尾部”,其附加到攜帶已知壞數(shù)據(jù)的TLP上??赡苁褂梦膊垮e(cuò)誤轉(zhuǎn)發(fā)的情況示例包括示例#1來自主存儲(chǔ)器的讀取遇到無法糾正的ECC錯(cuò)誤示例#2向主存儲(chǔ)器的PCI寫入的奇偶錯(cuò)誤示例#3內(nèi)部數(shù)據(jù)緩沖器或高速緩存中的數(shù)據(jù)完整性錯(cuò)誤根據(jù)一個(gè)示例性實(shí)現(xiàn),錯(cuò)誤轉(zhuǎn)發(fā)僅用于讀取完成數(shù)據(jù)或?qū)懭霐?shù)據(jù)。即,對(duì)于與數(shù)據(jù)報(bào)相關(guān)的管理開銷中發(fā)生錯(cuò)誤的情形,例如頭部中的錯(cuò)誤(例如請(qǐng)求階段、地址/命令等等),一般不使用錯(cuò)誤轉(zhuǎn)發(fā)。如這里所使用的,具有頭部錯(cuò)誤的請(qǐng)求/完成通常不能被轉(zhuǎn)發(fā),這是由于不能確定地識(shí)別真實(shí)目的地,并且因此該錯(cuò)誤轉(zhuǎn)發(fā)可能引起直接或間接影響,例如數(shù)據(jù)損壞、系統(tǒng)故障等等。根據(jù)一個(gè)實(shí)施例,錯(cuò)誤轉(zhuǎn)發(fā)用于傳播錯(cuò)誤通過系統(tǒng)以及系統(tǒng)診斷。錯(cuò)誤轉(zhuǎn)發(fā)不使用數(shù)據(jù)鏈路層重試,因此只有在EGIO鏈路112上出現(xiàn)如TLP錯(cuò)誤檢測(cè)機(jī)制(例如,循環(huán)冗余校驗(yàn)(CRC)等等)所確定的發(fā)送錯(cuò)誤時(shí),才重試以尾部結(jié)束的TLP。因此尾部可能最終引起請(qǐng)求的發(fā)起者重新發(fā)布它(在上述的事務(wù)層)或者采取某個(gè)其它的動(dòng)作。
如這里所使用的,所有EGIO接收者(例如,位于EGIO接口106中)都能夠處理以尾部結(jié)束的TLP。在發(fā)送者中對(duì)加入尾部的支持是可選的(因而與老式設(shè)備兼容)。交換器108對(duì)尾部和TLP的其余部分一起進(jìn)行路由。具有對(duì)等(peer)路由支持的主橋104一般會(huì)一起路由尾部和TLP的其余部分,但不是必需如此。錯(cuò)誤轉(zhuǎn)發(fā)一般適用于寫入請(qǐng)求(公布的或非公布的)或讀取完成中的數(shù)據(jù)。發(fā)送者知道的含有壞數(shù)據(jù)的TLP應(yīng)當(dāng)以尾部結(jié)束。根據(jù)一個(gè)示例性實(shí)現(xiàn),尾部由2DW組成,其中字節(jié)[7:5]是全零(例如,000),并且比特[4:1]是全一(例如,1111),而預(yù)留所有其它比特。EGIO接收者會(huì)認(rèn)為以尾部結(jié)束的TLP中的所有數(shù)據(jù)都是損壞的。如果應(yīng)用錯(cuò)誤轉(zhuǎn)發(fā),則接收者將指定TLP的所有數(shù)據(jù)標(biāo)記為壞(“中毒”)。在事務(wù)層中,分析器(parser)一般會(huì)分析到整個(gè)TLP的末端并馬上校驗(yàn)隨后的數(shù)據(jù),以了解數(shù)據(jù)是否結(jié)束。
數(shù)據(jù)鏈路層204如上所述,圖2的數(shù)據(jù)鏈路層204充當(dāng)事務(wù)層202和物理層206之間的中間級(jí)(stage)。數(shù)據(jù)鏈路層204的主要責(zé)任是提供用于通過EGIO鏈路112在兩個(gè)組件之間交換事務(wù)層分組(TLP)的可靠機(jī)制。數(shù)據(jù)鏈路層204的發(fā)送方接收由事務(wù)層202裝配的TLP、應(yīng)用分組序列標(biāo)識(shí)符(例如,標(biāo)識(shí)號(hào)碼)、計(jì)算并應(yīng)用錯(cuò)誤檢測(cè)代碼(例如,CRC代碼)并且向物理層206遞交修改的TLP,用于通過挑選的一條或多條在EGIO鏈路112的帶寬中建立的虛擬信道而進(jìn)行傳輸。
接收數(shù)據(jù)鏈路層204負(fù)責(zé)校驗(yàn)所接收TLP的完整性(例如,使用CRC機(jī)制等等),并且負(fù)責(zé)向事務(wù)層204遞交完整性校驗(yàn)是肯定的那些TLP,以用于在轉(zhuǎn)發(fā)到設(shè)備核心之前進(jìn)行分解。由數(shù)據(jù)鏈路層204提供的服務(wù)通常包括數(shù)據(jù)交換、錯(cuò)誤檢測(cè)與重試、初始化與電源管理服務(wù),以及數(shù)據(jù)鏈路層內(nèi)部通信服務(wù)?;谇笆龇诸愄峁┑拿糠N服務(wù)列舉如下數(shù)據(jù)交換服務(wù)-從發(fā)送事務(wù)層接受用于發(fā)送的TLPi.接受通過鏈路從物理層接收的TLP,并且將它們傳輸?shù)浇邮帐聞?wù)層錯(cuò)誤檢測(cè)&重試-TLP序列號(hào)碼與CRC生成-已發(fā)送TLP存儲(chǔ)器,用于數(shù)據(jù)鏈路層重試-數(shù)據(jù)完整性校驗(yàn)-確認(rèn)以及重試DLLP-記錄機(jī)制和錯(cuò)誤報(bào)告的錯(cuò)誤指示
i.鏈路Ack超時(shí)定時(shí)器初始化與電源管理服務(wù)-跟蹤鏈路狀態(tài)并能夠傳輸有效/復(fù)位/斷開連接狀態(tài)到事務(wù)層數(shù)據(jù)鏈路層內(nèi)部通信服務(wù)-用于包括錯(cuò)誤檢測(cè)以及重試的鏈路管理功能-在兩個(gè)直接相連的組件的數(shù)據(jù)鏈路層之間進(jìn)行傳輸-沒有暴露給事務(wù)層如在EGIO接口106中所使用的,數(shù)據(jù)鏈路層204對(duì)于事務(wù)層202表現(xiàn)為具有不同延遲的信息導(dǎo)管(conduit)。饋送到發(fā)送數(shù)據(jù)鏈路層的所有信息在較晚的時(shí)間處將出現(xiàn)在接收數(shù)據(jù)鏈路層的輸出端。延遲將取決于許多因素,包括管道延遲、鏈路112的寬度和操作頻率、通過介質(zhì)的通信信號(hào)的發(fā)送、以及由數(shù)據(jù)鏈路層重試引起的延時(shí)。由于這些延時(shí),發(fā)送數(shù)據(jù)鏈路層可以向發(fā)送事務(wù)層202施加反壓力(backpressure),并且接收數(shù)據(jù)鏈路層將有效信息的存在和缺失傳輸?shù)浇邮帐聞?wù)層202。
根據(jù)一個(gè)實(shí)現(xiàn),數(shù)據(jù)鏈路層204跟蹤EGIO鏈路112的狀態(tài)。在這方面,DLL204與事務(wù)202和物理層206傳輸鏈路狀態(tài),并且通過物理層206執(zhí)行鏈路管理。根據(jù)一個(gè)實(shí)現(xiàn),數(shù)據(jù)鏈路層含有鏈路控制與管理狀態(tài)機(jī)來執(zhí)行這樣的管理任務(wù),參考圖9圖示了所述狀態(tài)機(jī)的一個(gè)示例。根據(jù)圖9的示例性實(shí)現(xiàn),鏈路控制與管理狀態(tài)機(jī)的狀態(tài)定義如下示例性DLL鏈路狀態(tài)·LinkDown(鏈路停用)(LD)—物理層報(bào)告鏈路是不可操作的,或者沒有連接端口·LinkInit(鏈路初始化)(LI)—物理層報(bào)告鏈路是可操作的并且正在初始化·LinkActive(鏈路有效)(LA)—常規(guī)操作模式·LinkActDefer(鏈路動(dòng)作延期)(LAD)—常規(guī)操作中斷,物理層試圖恢復(fù)每個(gè)狀態(tài)的對(duì)應(yīng)管理規(guī)則
·LinkDown(LD)跟隨在組件復(fù)位之后的初始狀態(tài)在進(jìn)入LD后-將所有數(shù)據(jù)鏈路層狀態(tài)信息復(fù)位成缺省值在LD中時(shí)-不和事務(wù)層或物理層交換TLP信息-不和物理層交換DLLP信息-不產(chǎn)生或接受DLLP退出轉(zhuǎn)入LI,如果-來自事務(wù)層的指示是鏈路沒有被SW禁用·LinkInit(LI)在LI中時(shí)-不和事務(wù)層或物理層交換TLP信息-不和物理層交換DLLP信息-不產(chǎn)生或接受DLLP退出轉(zhuǎn)入LA,如果-來自物理層的指示是鏈路訓(xùn)練(training)成功退出轉(zhuǎn)入LD,如果-來自物理層的指示是鏈路訓(xùn)練失敗·LinkActive(LA)在LinkActive中時(shí)-和事務(wù)層與物理層交換TLP信息-和物理層交換DLLP信息-產(chǎn)生并接受DLLP。
退出進(jìn)入LinkActDefer,如果-來自數(shù)據(jù)鏈路層重試管理機(jī)制的指示是需要鏈路的重新訓(xùn)練,或者如果物理層報(bào)告重新訓(xùn)練正在進(jìn)行中。
·LinkActDefer(LAD)在LinkActDefer中時(shí)
-不和事務(wù)層或物理層交換TLP信息-不和物理層交換DLLP信息-不產(chǎn)生或接受DLLP退出進(jìn)入LinkActive,如果-來自物理層的指示是重新訓(xùn)練成功退出進(jìn)入LinkDown,如果-來自物理層的指示是重新訓(xùn)練失敗數(shù)據(jù)完整性管理如這里所使用的,數(shù)據(jù)鏈路層分組(DLLP)被用于支持EGIO鏈路數(shù)據(jù)完整性機(jī)制。在這方面,根據(jù)一個(gè)實(shí)現(xiàn),EGIO體系結(jié)構(gòu)規(guī)定了下列DLLP來支持鏈路完整性管理·Ack DLLPTLP序列號(hào)碼確認(rèn)—用于指示成功接收了某些數(shù)量的TLP·Nak DLLPTLP序列號(hào)碼否定確認(rèn)—用于指示數(shù)據(jù)鏈路層重試·Ack超時(shí)DLLP指示最近發(fā)送的序列號(hào)碼—用于檢測(cè)某些形式的TLP丟失如上所述,事務(wù)層202向數(shù)據(jù)鏈路層204提供TLP邊界信息,使得DLL 204能夠?qū)⑿蛄刑?hào)碼和循環(huán)冗余校驗(yàn)(CRC)錯(cuò)誤檢測(cè)應(yīng)用于TLP。根據(jù)一個(gè)示例性實(shí)現(xiàn),接收數(shù)據(jù)鏈路層通過校驗(yàn)序列號(hào)碼、CRC代碼和來自接收物理層的任何錯(cuò)誤指示來驗(yàn)證接收的TLP。如果TLP中有錯(cuò)誤,則使用數(shù)據(jù)鏈路層重試來恢復(fù)。
CRC、序列號(hào)碼以及重試管理(發(fā)送者)在概念“計(jì)數(shù)器”和“標(biāo)志”方面,以下描述了用于確定TLP、CRC和序列號(hào)碼以支持?jǐn)?shù)據(jù)鏈路層重試的機(jī)制CRC與序列號(hào)碼規(guī)則(發(fā)送者)·使用下列8比特計(jì)數(shù)器o TRANS_SEQ—存儲(chǔ)應(yīng)用于正在準(zhǔn)備發(fā)送的TLP的序列號(hào)碼
.在LinkDown狀態(tài)下設(shè)定為全‘0’.在每個(gè)TLP發(fā)送后,增加1.當(dāng)全‘1’時(shí),增加引起翻轉(zhuǎn)使得全‘0’.Nak DLLP的接收引起值被重新設(shè)定為Nak DLLP中指示的序列號(hào)碼o ACKD_SEQ—存儲(chǔ)在最近接收的鏈路到鏈路確認(rèn)DLLP中確認(rèn)的序列號(hào)碼。
.在LinkDown狀態(tài)下設(shè)定為全‘1’·每個(gè)TLP被分配8比特序列號(hào)碼o計(jì)數(shù)器TRANS_SEQ存儲(chǔ)這個(gè)號(hào)碼o如果TRANS_SEQ等于(ACKD_SEQ—1)模256,則發(fā)送者一般不會(huì)發(fā)送另一TLP,直到Ack DLLP更新ACKD_SEQ,使得條件(TRANS_SEQ==ACKD_SEQ-1)模256不再準(zhǔn)確。
·TRANS_SEQ應(yīng)用于TLP,通過o為TLP預(yù)先準(zhǔn)備(prependirg)單個(gè)字節(jié)值o為TLP預(yù)先準(zhǔn)備單個(gè)預(yù)留字節(jié)·使用下述算法為TLP計(jì)算32b CRC,并將其附加在TLP末端o使用的多項(xiàng)式是0x04C11DB7-與以太網(wǎng)使用的相同的CRC-32o計(jì)算過程是1)CRC-32計(jì)算的初始值是通過為序列號(hào)碼預(yù)先準(zhǔn)備24個(gè)‘0’而形成的DW2)以從包括頭部的字節(jié)0的DW到TLP的最后DW的順序,使用來自事務(wù)層的TLP的每個(gè)DW而繼續(xù)CRC計(jì)算3)取來自計(jì)算的比特序列的補(bǔ)碼,結(jié)果是TLP CRC4)CRC DW附加在TLP的末端·已發(fā)送TLP的拷貝一般會(huì)存儲(chǔ)在數(shù)據(jù)鏈路層重試緩沖器中·當(dāng)從其它設(shè)備接收到Ack DLLP時(shí)o ACKD_SEQ裝入在DLLP中指定的值
o重試緩沖器清除序列號(hào)碼在下述范圍內(nèi)的TLP.從ACKD_SEQ的先前值+1.到ACKD_SEQ的新值·當(dāng)從鏈路上的其它組件接收到Nak DLLP時(shí)o如果正在向物理層傳輸TLP,則繼續(xù)該傳輸直到該TLP的傳輸完成o不從事務(wù)層獲得另外的TLP,直到完成了下述步驟o重試緩沖器清除序列號(hào)碼在下述范圍內(nèi)的TLP.從ACKD_SEQ的先前值+1.到在Nak DLLP的Nak序列號(hào)碼字段中指定的值o重試緩沖器中所有剩余的TLP都重新提交到物理層,用于以原始順序重新發(fā)送.注意這將包括序列號(hào)碼在下述范圍內(nèi)的所有TLPo在Nak DLLP的Nak序列號(hào)碼字段中指定的值+1o TRANS_SEQ的值-1.如果在重試緩沖器中沒有剩余的TLP,則Nak DLLP錯(cuò)誤o根據(jù)錯(cuò)誤跟蹤和記錄部分,一般會(huì)報(bào)告錯(cuò)誤的Nak DLLPo發(fā)送者不需要其它的動(dòng)作CRC與序列號(hào)碼(接收者)類似地,在概念“計(jì)數(shù)器”和“標(biāo)志”方面,以下描述了用于校驗(yàn)TLP、CRC和序列號(hào)碼以支持?jǐn)?shù)據(jù)鏈路層重試的機(jī)制·使用下列8比特計(jì)數(shù)器o NEXT_RCV_SEQ—為下一個(gè)TLP存儲(chǔ)期望的序列號(hào)碼.在LinkDown狀態(tài)下設(shè)定為全‘0’.對(duì)于接受的每個(gè)TLP,增加1,或者當(dāng)通過接受TLP而清除DLLR_IN_PROGRESS標(biāo)志(下文描述)時(shí).每次接收到鏈路層DLLP并且DLLR_IN_PROGRESS標(biāo)志被清除時(shí),裝入值(Trans.Seq.Num+1)o如果NEXT_RCV_SEQ的值與已接收的TLP或Ack超時(shí)DLLP指定的值不同,則指示在發(fā)送者和接收者之間的序列號(hào)碼同步丟失;在這種情況下·如果設(shè)定了DLLR_IN_PROGRESS標(biāo)志,則o復(fù)位DLLR_IN_PROGRESS標(biāo)志o發(fā)送“發(fā)送壞DLLR DLLP”錯(cuò)誤到錯(cuò)誤記錄/跟蹤o注意這指示錯(cuò)誤地發(fā)送了DLLR DLLP(Nak)·如果沒有設(shè)定DLLR_IN_PROGRESS標(biāo)志,則o設(shè)定DLLR_IN_PROGRESS標(biāo)志并且發(fā)起Nak DLLPo注意這指示TLP丟失·使用下述3比特計(jì)數(shù)器o DLLRR_COUNT—對(duì)在特定時(shí)間段內(nèi)發(fā)布的DLLR DLLP的次數(shù)進(jìn)行計(jì)數(shù).在LinkDown狀態(tài)下設(shè)定為b’100.對(duì)于發(fā)布的每個(gè)Nak DLLP,增加1·當(dāng)計(jì)數(shù)達(dá)到b’100時(shí)o鏈路控制狀態(tài)機(jī)從LinkActive移動(dòng)到LinkActDefero DLLRR_COUNT隨后被復(fù)位為b’000·如果DLLRR_COUNT不等于b’000,每256個(gè)符號(hào)時(shí)間減1o即,在b’000飽和·使用下述標(biāo)志o DLLR_IN_PROGESS·下面描述設(shè)定/清除條件·當(dāng)設(shè)定了DLLR_IN_PROGESS時(shí),丟棄所有已接收的TLP(直到接收到由DLLR_DLLP指示的TLP)
·當(dāng)DLLR_IN_PROGESS是清空的時(shí),如下所述校驗(yàn)已接收的TLP·對(duì)于將要接受的TLP,下述條件一般應(yīng)當(dāng)為真o已接收的TLP序列號(hào)碼等于NEXT_RCV_SEQo物理層沒有指示在TLP接收過程中的任何錯(cuò)誤o TLP CRC校驗(yàn)不指示錯(cuò)誤·當(dāng)接受了TLP時(shí)o TLP的事務(wù)層部分被轉(zhuǎn)發(fā)到接收事務(wù)層o如果設(shè)定,則清空DLLR_IN_PROGESS標(biāo)志o增加NEXT_RCV_SEQ·當(dāng)沒有接受TLP時(shí)o設(shè)定DLLR_IN_PROGESS標(biāo)志o發(fā)送Nak DLLP·Ack/Nak序列號(hào)碼字段一般會(huì)包含值(NEXT_RCV_SEQ-1)·Nak類型(NT)字段一般會(huì)指示Nak的原因o b’00—由物理層識(shí)別的接收錯(cuò)誤o b’01—TLP CRC校驗(yàn)失敗o b’10—序列號(hào)碼不準(zhǔn)確o b’11—由物理層識(shí)別的成幀錯(cuò)誤·接收者一般不會(huì)允許從接收TLP的CRC到發(fā)送Nak的時(shí)間超過1023個(gè)符號(hào)時(shí)間,如從組件的端口所測(cè)量的那樣。
o注意沒有增加NEXT_RCV_SEQ·如果接收數(shù)據(jù)鏈路層沒有接收到在其后的512符號(hào)時(shí)間內(nèi)跟隨著NakDLLP的期望TLP,則重復(fù)Nak DLLP。
o如果經(jīng)過四次嘗試后仍然沒有接收到期望的TLP,則接收者將.進(jìn)入LinkActDefer狀態(tài),并啟動(dòng)由物理層進(jìn)行的鏈路重新訓(xùn)練
.將主要錯(cuò)誤的發(fā)生指示給錯(cuò)誤跟蹤與記錄·當(dāng)下列條件為真時(shí),一般會(huì)發(fā)送數(shù)據(jù)鏈路層確認(rèn)DLLPo數(shù)據(jù)鏈路控制與管理狀態(tài)機(jī)處于LinkActive狀態(tài)o已經(jīng)接受了TLP,但還沒有通過發(fā)送確認(rèn)DLLP進(jìn)行確認(rèn)o從最后的確認(rèn)DLLP起已經(jīng)經(jīng)過了超過512個(gè)符號(hào)時(shí)間·可以比所需要的更頻繁地發(fā)送數(shù)據(jù)鏈路層確認(rèn)DLLP·數(shù)據(jù)鏈路層確認(rèn)DLLP在Ack序列Num字段內(nèi)規(guī)定值(NEXT_RCV_SEQ-1)Ack超時(shí)機(jī)制考慮TLP在鏈路112上被損壞使得接收者不能檢測(cè)到TLP的存在的情況。當(dāng)發(fā)送隨后的TLP時(shí)將檢測(cè)到丟失的TLP,因?yàn)門LP序列號(hào)碼與接收者處的期望序列號(hào)碼不匹配。然而發(fā)送數(shù)據(jù)鏈路層204通常不能限定下一TLP從發(fā)送傳輸層到在發(fā)送數(shù)據(jù)鏈路層204上面出現(xiàn)的時(shí)間。Ack超時(shí)機(jī)制允許發(fā)送者限定接收者所需的檢測(cè)丟失TLP的時(shí)間。
Ack超時(shí)機(jī)制規(guī)則.如果發(fā)送重試緩沖器含有沒有接收到Ack DLLP的TLP,并且如果在超過1024個(gè)符號(hào)時(shí)間的時(shí)間段內(nèi)沒有發(fā)送TLP或鏈路DLLP,則一般會(huì)發(fā)送Ack超時(shí)DLLP。
.在發(fā)送Ack超時(shí)DLLP之后,數(shù)據(jù)鏈路層一般不會(huì)傳送任何TLP到物理層用于發(fā)送,直到從鏈路的另一方的組件接收到確認(rèn)DLLP。
o如果在超過1023個(gè)符號(hào)時(shí)間的時(shí)間段內(nèi)沒有接收到確認(rèn)DLLP,則再次發(fā)送Ack超時(shí)DLLP,在第四次連續(xù)發(fā)送Ack超時(shí)DLLP之后的1024個(gè)符號(hào)時(shí)間內(nèi)仍沒有接收到確認(rèn)DLLP,進(jìn)入LinkActDefer狀態(tài)并且啟動(dòng)由物理層進(jìn)行的鏈路保持.將主要錯(cuò)誤的發(fā)生指示給錯(cuò)誤跟蹤與記錄。
物理層206繼續(xù)參考圖2,示出了物理層206。如這里所使用的,物理層206使事務(wù)202和數(shù)據(jù)鏈路204與用于鏈路數(shù)據(jù)相互交換的信令技術(shù)相隔離。根據(jù)圖2所圖示的示例性實(shí)現(xiàn),物理層劃分為邏輯208和物理210功能子塊。
如這里所使用的,邏輯子塊208負(fù)責(zé)物理層206的“數(shù)字”功能。在這方面,邏輯子塊204具有兩個(gè)主要?jiǎng)澐职l(fā)送部分,準(zhǔn)備輸出信息用于由物理子塊210進(jìn)行發(fā)送;以及接收者部分,用于在將所接收信息傳送到鏈路層204之前識(shí)別并準(zhǔn)備該信息。邏輯子塊208和物理子塊210通過狀態(tài)與控制寄存器接口協(xié)調(diào)端口狀態(tài)。由邏輯子塊208指導(dǎo)物理層206的控制與管理功能。
根據(jù)一個(gè)示例性實(shí)現(xiàn),EGIO體系結(jié)構(gòu)使用8b/10b發(fā)送代碼。使用該方案,8比特字符被視為3比特和5比特,所述3比特和5比特各自映射到4比特代碼組和6比特代碼組。這些代碼組被連接以形成10比特符號(hào)。EGIO體系結(jié)構(gòu)使用的8b/10b編碼方案提供了專用符號(hào),其與用來表示字符的數(shù)據(jù)符號(hào)完全不同。這些專用符號(hào)用于下面的多種鏈路管理機(jī)制。專用符號(hào)還用于成幀DLLP和TLP,使用完全不同的專用符號(hào)允許快速便捷地區(qū)分這兩類分組。
物理子塊210包括發(fā)送者和接收者。邏輯子塊208向發(fā)送者供應(yīng)符號(hào),發(fā)送者串行化這些符號(hào)并將其發(fā)送到鏈路112。鏈路112向接收者供應(yīng)串行化符號(hào)。接收者將所接收信號(hào)轉(zhuǎn)換為比特流,比特流被解串行化,并且連同從輸入串行流中恢復(fù)的符號(hào)時(shí)鐘一起被供應(yīng)到邏輯子塊208。應(yīng)當(dāng)理解,如這里所使用的,EGIO鏈路112可以代表多種通信介質(zhì)中的任何一種,包括電通信鏈路、光通信鏈路、RF通信鏈路、紅外線通信鏈路、無線通信鏈路等等。在這方面,包括物理層206的物理子塊210的(多個(gè))發(fā)送者和/或(多個(gè))接收者中的每一個(gè)都適合于一種或多種上述通信鏈路。
示例性通信代理根據(jù)本發(fā)明的一個(gè)示例性實(shí)現(xiàn),圖6示出了含有與本發(fā)明相關(guān)聯(lián)的特征的至少一個(gè)子集的示例性通信代理的方框圖。根據(jù)圖6所圖示的示例性實(shí)現(xiàn),所描述的通信代理600包括控制邏輯602、EGIO通信引擎604、數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)器空間606、以及可選的一個(gè)或多個(gè)應(yīng)用608。
如這里所使用的,控制邏輯602向EGIO通信引擎604的一個(gè)或多個(gè)元件中的每個(gè)提供處理資源以有選擇地實(shí)現(xiàn)本發(fā)明的一個(gè)或多個(gè)方面。在這個(gè)方面,控制邏輯602被規(guī)定為代表微處理器、微控制器、有限狀態(tài)機(jī)、可變成邏輯器件、現(xiàn)場(chǎng)可編程門陣列、或當(dāng)執(zhí)行時(shí)使控制邏輯實(shí)現(xiàn)上述之一功能的內(nèi)容中的一個(gè)或多個(gè)。
所描述的EGIO通信引擎604包括事務(wù)層接口202、數(shù)據(jù)鏈路層接口204、以及包括邏輯子塊208和物理子塊210以連接通信代理600和EGIO鏈路112的物理層接口206中的一個(gè)或多個(gè)。如這里所使用的,EGIO通信引擎604的元件執(zhí)行與上述的功能相同或類似的功能。
根據(jù)圖6所圖示的示例性實(shí)現(xiàn),所描述的通信代理600包括數(shù)據(jù)結(jié)構(gòu)606。如下文參考圖8將要詳細(xì)介紹的,數(shù)據(jù)結(jié)構(gòu)606可以包括存儲(chǔ)器空間、IO空間、配置空間和消息空間,所述空間由通信引擎604使用以便于電子裝置設(shè)備之間進(jìn)行通信。
如這里所使用的,應(yīng)用608被規(guī)定為代表由通信引擎600有選擇地調(diào)用的多種應(yīng)用的任何一種,以實(shí)現(xiàn)EGIO通信協(xié)議和相關(guān)的管理功能。示例性(多種)數(shù)據(jù)結(jié)構(gòu)參考圖8,描述了(多個(gè))EGIO接口106使用的一種或多種數(shù)據(jù)結(jié)構(gòu)的示圖。根據(jù)本發(fā)明的一個(gè)實(shí)現(xiàn),更具體地說,參考圖8所圖示的示例性實(shí)現(xiàn),定義了四(4)個(gè)地址空間以在EGIO體系結(jié)構(gòu)中使用配置空間810、IO空間820、存儲(chǔ)器空間830以及消息空間840。如所示,配置空間810包括頭部字段812,其包括定義了EGIO類別的信息,其中主設(shè)備(例如,端點(diǎn)、交換器、根復(fù)合體等等)屬于該類別。這些地址空間的每個(gè)都執(zhí)行他們?nèi)缟纤龅母髯怨δ堋?br>
其它實(shí)施例圖10是根據(jù)本發(fā)明另一個(gè)實(shí)施例的其上存有多個(gè)指令的存儲(chǔ)器介質(zhì)的方框圖,其中所述指令包括實(shí)現(xiàn)EGIO互連體系結(jié)構(gòu)和通信協(xié)議的一個(gè)或多個(gè)方面的指令。
大體而言,圖10圖示了其上(中)存儲(chǔ)有內(nèi)容的機(jī)器可訪問介質(zhì)/設(shè)備1000,所述內(nèi)容包括以下內(nèi)容的至少一個(gè)子集,即當(dāng)訪問機(jī)器執(zhí)行所述內(nèi)容時(shí),所述內(nèi)容實(shí)現(xiàn)了本發(fā)明的創(chuàng)新EGIO接口106。如這里所使用的,機(jī)器可訪問介質(zhì)1000被規(guī)定為代表本領(lǐng)域技術(shù)人員公知的多種介質(zhì)的任何一個(gè),例如易失性存儲(chǔ)器設(shè)備、非易失性存儲(chǔ)器設(shè)備、磁存儲(chǔ)介質(zhì)、光存儲(chǔ)介質(zhì)、傳播信號(hào)等等。類似地,可執(zhí)行指令被規(guī)定為表達(dá)本領(lǐng)域公知的多種軟件語言的任何一種,例如C++、Visual Basic、超文本標(biāo)記語言(HTML)、Java、可擴(kuò)充標(biāo)記語言(XML)等等。此外,應(yīng)當(dāng)認(rèn)識(shí)到介質(zhì)1000不需要與任何主系統(tǒng)共處在一起。即,介質(zhì)1000可以位于遠(yuǎn)程服務(wù)器中,所述服務(wù)器可通信地耦合到執(zhí)行系統(tǒng)并可由執(zhí)行系統(tǒng)訪問。因此,圖10的軟件實(shí)現(xiàn)應(yīng)當(dāng)認(rèn)為是示例性的,因?yàn)榱硪粋€(gè)存儲(chǔ)介質(zhì)與軟件實(shí)施例被認(rèn)為位于本發(fā)明的精神和范圍之內(nèi)。
盡管以詳細(xì)的描述以及對(duì)結(jié)構(gòu)特征和/或方法步驟的專用語言的抽象描述了本發(fā)明,但是應(yīng)當(dāng)理解,在所附權(quán)利要求中定義的本發(fā)明不必限制為所描述的具體特征或步驟。相反,所述具體特征和步驟只是作為實(shí)現(xiàn)所主張的發(fā)明的示例性形式而被公開。然而很明顯,可以對(duì)其進(jìn)行各種修改和變化而不會(huì)背離本發(fā)明較寬的精神和范圍。因此本說明書和附圖被認(rèn)為是示例性的而不是限制性的。說明書和摘要沒有被規(guī)定為是窮盡性的或是要將本發(fā)明限制為所公開的確定形式。
所附權(quán)利要求中使用的術(shù)語不應(yīng)被解釋成將本發(fā)明限制為說明書中公開的具體實(shí)施例。相反,所附權(quán)利要求完全確定了本發(fā)明的范圍,其中根據(jù)已有權(quán)利要求解釋原則來解釋所述權(quán)利要求。
權(quán)利要求
1.一種方法,包括接收對(duì)電子裝置的通用輸入/輸出組織結(jié)構(gòu)中的同步通信資源的請(qǐng)求;并且確定與所述所接收請(qǐng)求相關(guān)聯(lián)的一個(gè)或多個(gè)操作需求是否可以由所述通用輸入/輸出組織結(jié)構(gòu)的合適子集適應(yīng)以支持所述所請(qǐng)求的同步通信。
2.如權(quán)利要求1所述的方法,其中從所述所請(qǐng)求的同步通信的至少一個(gè)請(qǐng)求器/完成器對(duì)接收所述請(qǐng)求。
3.如權(quán)利要求1所述的方法,其中在所述通用輸入/輸出組織結(jié)構(gòu)的根復(fù)合體的帶寬管理器處接收所述請(qǐng)求。
4.如權(quán)利要求1所述的方法,其中所述操作參數(shù)包括帶寬和服務(wù)延遲的一個(gè)或多個(gè)。
5.如權(quán)利要求1所述的方法,所述確定步驟包括識(shí)別所述通用輸入/輸出組織結(jié)構(gòu)的至少一個(gè)子集的通信能力,所述通用輸入/輸出組織結(jié)構(gòu)的至少一個(gè)子集構(gòu)成從所述同步通信資源的請(qǐng)求器到所述同步通信資源的完成器的通信路徑;并且確定所述所識(shí)別的通信能力是否足以適應(yīng)與所述所接收的對(duì)同步通信資源的請(qǐng)求相關(guān)聯(lián)的一個(gè)或多個(gè)操作需求。
6.如權(quán)利要求1所述的方法,還包括在所述同步通信的請(qǐng)求器和所述通用輸入/輸出組織結(jié)構(gòu)之間產(chǎn)生同步協(xié)定,所述同步協(xié)定詳述一個(gè)或多個(gè)操作參數(shù),所述通用輸入/輸出組織結(jié)構(gòu)借助所述操作參數(shù)支持所述同步通信。
7.如權(quán)利要求6所述的方法,還包括提供參與和所述同步協(xié)定相關(guān)聯(lián)的所述同步通信信息的通用輸入/輸出元件的至少一個(gè)子集;并且根據(jù)所述所產(chǎn)生的同步協(xié)定,調(diào)整并監(jiān)控請(qǐng)求器或完成器的注入請(qǐng)求。
8.如權(quán)利要求7所述的方法,還包括使用基于時(shí)間、加權(quán)輪詢、端口仲裁機(jī)制來調(diào)整并監(jiān)控同步事務(wù)。
9.如權(quán)利要求8所述的方法,還包括根據(jù)所產(chǎn)生的同步協(xié)定,在一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu)中保持事務(wù)服務(wù)分配。
10.如權(quán)利要求7所述的方法,還包括由已建立同步通信信道的一個(gè)或多個(gè)元件有選擇地調(diào)用流控制,以阻止超過基于同步協(xié)定提供的一個(gè)或多個(gè)權(quán)限的注入請(qǐng)求。
11.如權(quán)利要求1所述的方法,還包括在主電子裝置的復(fù)位事件之后,從所述通用輸入/輸出組織結(jié)構(gòu)中的元件的至少一個(gè)子集接收通信需求和/或能力的指示。
12.如權(quán)利要求11所述的方法,還包括基于或至少部分基于從所述通用輸入/輸出組織結(jié)構(gòu)中的元件的至少一個(gè)子集接收到的所述指示,產(chǎn)生能力表。
13.如權(quán)利要求12所述的方法,所述確定步驟包括識(shí)別所述通用輸入/輸出組織結(jié)構(gòu)元件的至少一個(gè)子集的通信能力,所述通用輸入/輸出組織結(jié)構(gòu)元件的至少一個(gè)子集構(gòu)成來自所述能力表的所述同步通信的請(qǐng)求器和完成器之間的通信路徑;并且確定所述所識(shí)別的通信能力是否足以適應(yīng)與所接收請(qǐng)求相關(guān)聯(lián)的一個(gè)或多個(gè)操作需求。
14.如權(quán)利要求1所述的方法,所述同步通信資源在兩個(gè)或多個(gè)元件之間的通信鏈路中構(gòu)成一個(gè)或多個(gè)虛擬時(shí)隙,所述兩個(gè)或多個(gè)元件構(gòu)成在同步流量的請(qǐng)求器和完成器之間的通用輸入/輸出通信路徑。
15.一種裝置,包括多個(gè)通用輸入/輸出元件,構(gòu)成通用輸入/輸出通信組織結(jié)構(gòu);和帶寬管理器,響應(yīng)于所述通用輸入/輸出元件的至少一個(gè)子集來識(shí)別該通用輸入/輸出元件的至少一個(gè)子集的通信能力,并且有選擇地將同步帶寬授與同步通信的請(qǐng)求器/完成器對(duì)。
16.如權(quán)利要求15所述的裝置,其中所述帶寬管理器在所述通用輸入/輸出組織結(jié)構(gòu)的根復(fù)合體中實(shí)現(xiàn)。
17.如權(quán)利要求15所述的裝置,其中所述通用輸入/輸出元件的至少一個(gè)子集將它們的通信需求和能力暴露給所述帶寬管理器。
18.如權(quán)利要求17所述的裝置,其中所述帶寬管理器基于或至少部分基于介入通用輸入/輸出元件的所述所識(shí)別的通信能力來有選擇地將同步帶寬授與所述請(qǐng)求器/完成器對(duì)。
19.如權(quán)利要求17所述的裝置,其中所述通信能力包括可用通信帶寬和服務(wù)延遲的一個(gè)或多個(gè)。
20.一個(gè)包括內(nèi)容的制造商物件,所述內(nèi)容當(dāng)由訪問機(jī)器執(zhí)行時(shí)引起所述機(jī)器實(shí)現(xiàn)方法,所述方法包括接收對(duì)電子裝置的通用輸入/輸出組織結(jié)構(gòu)中的同步通信資源的請(qǐng)求;并且確定與所述所接收請(qǐng)求相關(guān)聯(lián)的一個(gè)或多個(gè)操作需求是否可以由所述通用輸入/輸出組織結(jié)構(gòu)的合適子集適應(yīng)以支持所述所請(qǐng)求的同步通信。
21.如權(quán)利要求20所述的制造商物件,還包括以下內(nèi)容,所述內(nèi)容用于在所述同步通信的請(qǐng)求器和所述通用輸入/輸出組織結(jié)構(gòu)之間有選擇地產(chǎn)生同步協(xié)定,所述同步協(xié)定詳述一個(gè)或多個(gè)操作參數(shù),如果可以適應(yīng)所述一個(gè)或多個(gè)操作需求,則所述通用輸入/輸出組織結(jié)構(gòu)借助所述操作參數(shù)支持所述同步通信。
22.如權(quán)利要求20所述的制造商物件,還包括以下內(nèi)容,所述內(nèi)容用于發(fā)送所述同步協(xié)定的至少一個(gè)子集到所述通用輸入/輸出組織結(jié)構(gòu)的一個(gè)或多個(gè)元件,這將有助于所述請(qǐng)求器和所述完成器之間的所述同步通信,并且所述內(nèi)容還用于監(jiān)控所述請(qǐng)求器和/或完成器對(duì)所述同步協(xié)定的遵守。
23.如權(quán)利要求20所述的制造商物件,其中用來確定是否能夠支持所述同步通信的所述內(nèi)容包括識(shí)別至少在所述請(qǐng)求器和所述完成器之間的介入元件的通信能力,并且將這個(gè)所識(shí)別的能力和與所述所接收的請(qǐng)求相關(guān)聯(lián)的操作需求做比較。
24.一種通用輸入/輸出元件,包括一個(gè)或多個(gè)輸入/輸出端口,耦合到通用輸入/輸出組織結(jié)構(gòu)的一個(gè)或多個(gè)其它元件;以及帶寬管理器,從請(qǐng)求器/完成器對(duì)接收對(duì)同步通信資源的請(qǐng)求,并且在確定所述通用輸入/輸出組織結(jié)構(gòu)的至少一個(gè)子集可以支持與所述同步通信相關(guān)聯(lián)的一個(gè)或多個(gè)操作需求后,有選擇地授與所述所請(qǐng)求的同步通信資源。
25.如權(quán)利要求24所述的通用輸入/輸出元件,其中所述帶寬管理器從所述所耦合的通用輸入/輸出元件的至少一個(gè)子集接收通信能力的指示,根據(jù)所述指示來確定是否同意所述對(duì)同步通信資源的請(qǐng)求。
26.如權(quán)利要求25所述的通用輸入/輸出元件,其中所述帶寬管理器在確定是否同意對(duì)所述同步資源的請(qǐng)求時(shí),將與所述同步請(qǐng)求相關(guān)聯(lián)的所述操作需求和所述請(qǐng)求器和所述完成器之間的通用輸入/輸出元件的至少一個(gè)子集的所述通信能力相比較。
27.如權(quán)利要求25所述的通用輸入/輸出元件,其中所述帶寬管理器在所述請(qǐng)求器/完成器對(duì)和所述通用輸入/輸出組織結(jié)構(gòu)之間建立同步協(xié)定,所述同步協(xié)定指示一個(gè)或多個(gè)操作參數(shù),基于所述操作參數(shù)已將所述同步通信資源分配給所述請(qǐng)求器/完成器對(duì)。
28.如權(quán)利要求27所述的通用輸入/輸出元件,其中所述帶寬管理器向在所述請(qǐng)求器/完成器對(duì)之間的每個(gè)介入通用輸入/輸出元件提供所述同步協(xié)定,以實(shí)施在所述協(xié)定中指示的所述操作參數(shù)。
29.如權(quán)利要求28所述的通用輸入/輸出元件,其中所述介入通用輸入/輸出元件使用基于時(shí)間、加權(quán)輪詢、端口仲裁機(jī)制來調(diào)整并監(jiān)控同步事務(wù)。
30.如權(quán)利要求28所述的通用輸入/輸出元件,其中所述介入通用輸入/輸出元件包含一個(gè)或多個(gè)可編程數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)含有依照所產(chǎn)生同步協(xié)定的事務(wù)服務(wù)分配。
31.如權(quán)利要求28所述的通用輸入/輸出元件,其中所述介入通用輸入/輸出元件有選擇地調(diào)用流控制機(jī)制,以阻止沒能遵守所述同步協(xié)定的向所述同步通信資源的計(jì)劃的注入。
32.如權(quán)利要求24所述的通用輸入/輸出元件,其中所述通用輸入/輸出元件是根復(fù)合體。
33.如權(quán)利要求24所述的通用輸入/輸出元件,其中所述通用輸入/輸出元件是交換器。
全文摘要
本發(fā)明公開了一種增強(qiáng)型通用輸入/輸出通信體系結(jié)構(gòu)、協(xié)議以及相關(guān)的方法。
文檔編號(hào)G06F13/00GK1547706SQ02816583
公開日2004年11月17日 申請(qǐng)日期2002年8月23日 優(yōu)先權(quán)日2001年8月24日
發(fā)明者賈斯明·阿亞諾維奇, 洪·江, 戴維·L·哈里曼, L 哈里曼, 賈斯明 阿亞諾維奇 申請(qǐng)人:英特爾公司