專利名稱:動(dòng)態(tài)調(diào)制鏈路寬度的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及鏈路管理,更具體而言,涉及鏈路寬度的動(dòng)態(tài)調(diào)制。
背景技術(shù):
當(dāng)今計(jì)算機(jī)系統(tǒng)由因?yàn)楦鞣N原因而相互通信的許多組件構(gòu)成。例如,在多處理器系統(tǒng)中,為了獲取本地需要的數(shù)據(jù),一個(gè)處理器可能訪問另一處理器的內(nèi)存,反之亦然。在另一示例中,為了和耦合到芯片組的I/O集線器的輸入/輸出(I/O)設(shè)備交換數(shù)據(jù),處理器可以和芯片組通信。
互連計(jì)算機(jī)組件的鏈路提供了用于傳送數(shù)據(jù)的機(jī)制,并且每個(gè)點(diǎn)對點(diǎn)的鏈路通常由多個(gè)“信道(lane)”組成,其中每個(gè)信道可以在給定的周期內(nèi)傳送少量數(shù)據(jù)。在通信期間使用的信道的數(shù)目定義了鏈路寬度,所述鏈路寬度有效地控制鏈路的帶寬。簡言之,較寬的鏈路比較窄的鏈路提供更大的帶寬。另一方面,由于為支持額外信道所必需的額外電路,所以較寬的鏈路傾向于消耗較多的功率。在傳統(tǒng)方法中,鏈路寬度通常是在冗長的初始化過程期間協(xié)商的并且一旦設(shè)定便相對固定。雖然這些方法在特定的環(huán)境下曾經(jīng)是合適的,但是還留有相當(dāng)大的改進(jìn)空間。
具體而言,已確定組件的操作狀況經(jīng)常隨時(shí)間變化而且?guī)捫枨笠搽S種類變化。例如,處理器可能從運(yùn)行需要相對較大量鏈路帶寬的線程轉(zhuǎn)換到運(yùn)行需要相對較小量鏈路帶寬的線程。但是,在傳統(tǒng)技術(shù)中,因?yàn)槌跏蓟^程如此復(fù)雜并且耗時(shí),所以鏈路寬度通常不變。結(jié)果,鏈路可能比需要的寬。
發(fā)明內(nèi)容
據(jù)此,本發(fā)明的目標(biāo)是提供動(dòng)態(tài)調(diào)制鏈路寬度的系統(tǒng)、裝置和方法。
根據(jù)本發(fā)明的一種方法包括在鏈路初始化期間,接收遠(yuǎn)程寬度容量,遠(yuǎn)程寬度容量對應(yīng)于遠(yuǎn)程端口;以及根據(jù)遠(yuǎn)程寬度容量,在多個(gè)鏈路寬度上操作本地端口和遠(yuǎn)程端口間的鏈路。
根據(jù)本發(fā)明的裝置包括具有控制邏輯的本地端口,控制邏輯在鏈路初始化期間接收遠(yuǎn)程寬度容量,并且根據(jù)遠(yuǎn)程寬度容量在多個(gè)鏈路寬度上操作本地端口和遠(yuǎn)程端口間的鏈路,遠(yuǎn)程寬度容量對應(yīng)于遠(yuǎn)程端口。
根據(jù)本發(fā)明的系統(tǒng)包括遠(yuǎn)程端口;耦合到遠(yuǎn)程端口的單向鏈路;以及耦合到所述鏈路的本地端口,本地端口包括控制邏輯,控制邏輯在鏈路初始化期間接收遠(yuǎn)程寬度容量,并且根據(jù)遠(yuǎn)程寬度容量在多個(gè)鏈路寬度上操作所述鏈路。
根據(jù)本發(fā)明的另一種方法包括在本地端口和遠(yuǎn)程端口之間的鏈路初始化期間,接收遠(yuǎn)程寬度容量,遠(yuǎn)程寬度容量對應(yīng)于遠(yuǎn)程端口,并且包括一個(gè)或多個(gè)支持的鏈路寬度以及對應(yīng)的信道標(biāo)識(shí)符;以及基于遠(yuǎn)程寬度容量和本地寬度容量,為鏈路建立第一鏈路寬度;基于遠(yuǎn)程寬度容量和本地端口的操作狀況選擇第二鏈路寬度;將所述鏈路調(diào)制到第二鏈路寬度;檢測與本地端口的活動(dòng)部分相關(guān)聯(lián)的空事務(wù)隊(duì)列;以及將活動(dòng)部分置于中間功率狀態(tài),所述中間功率狀態(tài)具有相對較短的再激活等待時(shí)間。
通過閱讀權(quán)利要求書和下面的說明并且參照下面的圖,對本領(lǐng)域的技術(shù)人員而言,本發(fā)明的實(shí)施例的各種優(yōu)點(diǎn)將變得很清楚,在所述附圖中圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例的具有經(jīng)動(dòng)態(tài)調(diào)制的寬度的鏈路示例的框圖;圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的管理鏈路的方法示例的流程圖;圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施例的在多個(gè)鏈路寬度上操作鏈路的過程示例的流程圖;圖4是根據(jù)本發(fā)明的一個(gè)實(shí)施例的鏈路寬度調(diào)制示例的消息傳遞(messaging)圖;圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例的在經(jīng)修改的鏈路寬度上傳輸數(shù)據(jù)的過程示例的流程圖;圖6是根據(jù)本發(fā)明的一個(gè)實(shí)施例的管理鏈路傳輸錯(cuò)誤的過程示例的流程圖;以及圖7是根據(jù)本發(fā)明的一個(gè)實(shí)施例的點(diǎn)對點(diǎn)網(wǎng)絡(luò)互連示例的框圖。
具體實(shí)施例方式
圖1示出了計(jì)算機(jī)系統(tǒng)10,其具有第一組件12a和第二組件12b。計(jì)算機(jī)系統(tǒng)10可以是臺(tái)式個(gè)人計(jì)算機(jī)(PC)、筆記本PC、服務(wù)器等的一部分,并且通常包括比所示出的兩個(gè)多得多的組件。因而出于討論的目的所示出的示例已被簡化,并且這里描述的技術(shù)可以很容易地?cái)U(kuò)大到較大數(shù)目的組件。組件12(12a-12b)可以包括微處理器、芯片組輸入/輸出(I/O)集線器、圖形控制器、存儲(chǔ)器控制器等,或者他們的任何組合。第一組件12a具有耦合到點(diǎn)對點(diǎn)鏈路14的第一端的端口16,第二組件12b具有耦合到鏈路14的第二端的端口18。
鏈路14可以是雙向鏈路,即將數(shù)據(jù)從第一組件12a運(yùn)送到第二組件12b以及從第二組件12b運(yùn)送到第一組件12a。雙向鏈路可以是同時(shí)雙向(SBD)鏈路,其中數(shù)據(jù)可以在單一物理信道的兩個(gè)方向并發(fā)流動(dòng);或者雙向鏈路可以是共享雙向鏈路,其中數(shù)據(jù)在任一給定時(shí)刻僅在一個(gè)方向流動(dòng)。或者,鏈路14可以是僅在一個(gè)方向運(yùn)送數(shù)據(jù)的單向鏈路。在這種情況下,可以使用諸如鏈路14的兩個(gè)鏈路來提供端口16、18間的完全雙向通信。簡言之,雖然將參考一種類型的鏈路討論多個(gè)示例,但是可以使用其它類型的鏈路而不背離這里所描述的實(shí)施例的精神和范圍。然而,所述實(shí)施例非常適合于單向鏈路的許多方面。
在所示出的示例中,端口16具有控制邏輯20,控制邏輯20能夠基于各種操作狀況調(diào)制鏈路14的寬度“w”。例如,當(dāng)要經(jīng)由鏈路14傳送的數(shù)據(jù)的帶寬需求相對較低時(shí),控制邏輯可以減少鏈路14的帶寬以節(jié)省功率。同樣地,如果帶寬需求增加,則可以增加鏈路14的寬度以滿足需求。因而鏈路寬度調(diào)制可以即時(shí)(on the fly)發(fā)生,而不需要端口16、18間額外的鏈路初始化或者協(xié)商。通過使端口16能夠動(dòng)態(tài)調(diào)制鏈路寬度,系統(tǒng)10可以利用在傳統(tǒng)方法中可能失去的功率節(jié)省的機(jī)會(huì)。簡言之,通過消除對鏈路初始化的需要,可以獲得實(shí)時(shí)鏈路調(diào)制方案,該方案減少了調(diào)制寬度所需時(shí)間并且提供了實(shí)質(zhì)的功率節(jié)省。應(yīng)該注意,盡管所示出的示例示出了僅第一組件12a的端口16具有鏈路調(diào)制控制邏輯,但是第二組件12b的端口18也可以包括調(diào)制鏈路寬度的控制邏輯。實(shí)際上,在具有多個(gè)互連組件的多節(jié)點(diǎn)系統(tǒng),為了提供全面的功率節(jié)省,組件中的每個(gè)都可以配備有動(dòng)態(tài)調(diào)制鏈路寬度的能力。
如已經(jīng)討論的,鏈路14可以是雙向的或單向的。在單向鏈路對的情形下,每個(gè)單向鏈路可以潛在地在不同的寬度上操作,其中傳輸端口基于本地操作狀況選擇最優(yōu)的鏈路寬度。在雙向鏈路的情形下,鏈路的每個(gè)方向可以在不同的寬度上操作。這樣的方法提供了在功率降低方面最大的自由度,并且代表了對傳統(tǒng)技術(shù)的顯著改進(jìn)。
出于鏈路寬度調(diào)制的目的,鏈路14可以被劃分成“象限”。例如,如果鏈路14為20位寬,則位0到4可以定義為第一象限,位5到9可以定義為第二象限,等等。這樣,調(diào)制到較窄的鏈路寬度可能涉及使與一個(gè)或更多象限相關(guān)聯(lián)的輸入/輸出(I/O)電路處于不活動(dòng)狀態(tài)。類似地,調(diào)制到較寬的鏈路寬度可能涉及使一個(gè)或更多象限的I/O電路處于活動(dòng)狀態(tài)。I/O電路是負(fù)責(zé)向/從鏈路傳輸和/或接收信號(hào)的端口的物理部分?;诹6?granularity)和復(fù)雜度之間的預(yù)期折衷可以使用其它的方案。例如,如果復(fù)雜度不是顯著的問題,則可以以逐個(gè)信道為基礎(chǔ)調(diào)制鏈路寬度,而不背離這里描述的原則的精神和范圍。
如上面所提到的,鏈路14可以表示點(diǎn)對點(diǎn)結(jié)構(gòu)的一部分,鏈路14互連計(jì)算機(jī)系統(tǒng)10中的所有組件。圖7中示出了這種拓?fù)涞囊粋€(gè)示例。在所示出的實(shí)施例中,計(jì)算機(jī)系統(tǒng)10’包括耦合到組件12’(12a-12d)的點(diǎn)對點(diǎn)網(wǎng)絡(luò)互連24,在點(diǎn)對點(diǎn)的結(jié)構(gòu)拓?fù)渲?,每個(gè)組件具有到系統(tǒng)中其它節(jié)點(diǎn)的直接鏈路。網(wǎng)絡(luò)互連24也可以具有分層通信協(xié)議,其中在鏈路層從“片(flit)”構(gòu)造鏈路寬度調(diào)制消息并且在協(xié)議層以分組的形式在組件間傳送。片本質(zhì)上是鏈路層處的流控制單元,其中片包括多個(gè)物理層“物理數(shù)位(phit)”并且多個(gè)片構(gòu)成協(xié)議層的“分組”。分層體系中還可以包括諸如傳輸層和路由層的其它層。表1總結(jié)了實(shí)現(xiàn)分層通信協(xié)議的一個(gè)方法。
表1傳輸層和路由層可能僅對某些平臺(tái)選項(xiàng)來說是需要的。例如,在臺(tái)式機(jī)/移動(dòng)通信和雙處理器系統(tǒng)中,路由層的功能可以被嵌入在鏈路層中。簡言之,可以從協(xié)議中添加或去除多個(gè)層,而不背離所示出的實(shí)施例的精神和范圍。
現(xiàn)在轉(zhuǎn)向圖2,示出了管理鏈路的方法26??梢允褂萌魏我阎挠布?或軟件技術(shù)在諸如上面討論的控制邏輯20(圖1)的端口的控制邏輯中實(shí)現(xiàn)方法26。處理框28用于在鏈路初始化期間在本地端口接收遠(yuǎn)程寬度容量,其中遠(yuǎn)程寬度容量對應(yīng)于遠(yuǎn)程端口。鏈路初始化過程可以涉及握手過程,在握手過程中,端口交換訓(xùn)練數(shù)據(jù)以確定鏈路中哪個(gè)信道可用。在一個(gè)示例中,遠(yuǎn)程寬度容量包括所支持的鏈路寬度和對應(yīng)的信道標(biāo)識(shí)符。這樣,遠(yuǎn)程寬度容量可以標(biāo)識(shí)各種寬度,例如“全寬”、“半寬”和“四分之一寬”,還可以標(biāo)識(shí)在這些寬度上使用的象限。遠(yuǎn)程寬度容量可以作為專用訓(xùn)練序列的一部分來進(jìn)行傳遞。
本地端口可以將遠(yuǎn)程寬度容量和內(nèi)部產(chǎn)生的或以其它方式獲知的本地寬度容量相比較,并且選擇兩個(gè)端口都支持的共用鏈路映射(CLM)???0用于根據(jù)遠(yuǎn)程寬度容量在多個(gè)鏈路寬度上操作本地端口和遠(yuǎn)程端口間的鏈路。
圖3在框30’更詳細(xì)地示出了在多個(gè)鏈路寬度上操作鏈路的方法。在所示出的示例中,在框32基于遠(yuǎn)程寬度容量和本地寬度容量建立第一鏈路寬度???4用于確定存在功率節(jié)省機(jī)會(huì)還是存在增加帶寬需求。增加帶寬需求可能和諸如流式視頻的相對復(fù)雜的過程相關(guān)聯(lián),而功率節(jié)省機(jī)會(huì)可能源自鏈路上很少或者無任何的預(yù)期活動(dòng)。如果帶寬需求增加,則在框36基于遠(yuǎn)程寬度容量選擇更寬的鏈路寬度。
框37用于通知遠(yuǎn)程端口該更寬的鏈路寬度。然后本地端口可以等待預(yù)定的時(shí)間量(例如,TWAKEUP),其確保遠(yuǎn)程端口的鏈路層已有充分的時(shí)間來理解所述通知并且通知遠(yuǎn)程端口的物理層?;蛘撸锢韺犹幍淖灾蔚牡凸β释顺鲂蛄锌梢杂糜趯︽溌穬蓚?cè)的不活動(dòng)信道進(jìn)行加電。在這種方法中,功率退出序列可以利用預(yù)定的喚醒時(shí)間(即,TLOS_WAKE),所述喚醒時(shí)間對兩個(gè)端口來說是共用的并且被編程到功率管理寄存器內(nèi)。這樣,預(yù)定的喚醒時(shí)間的期滿為鏈路的兩側(cè)變成活動(dòng)狀態(tài)提供通知。
在框38,將對應(yīng)于額外寬度的本地端口輸入/輸出電路從低功率狀態(tài)帶出,并且在框40將鏈路調(diào)制到更寬的鏈路寬度。應(yīng)該注意,將I/O電路從低功率狀態(tài)帶出可能會(huì)花費(fèi)相當(dāng)多的時(shí)間。具體而言,低功率狀態(tài)越低,將花費(fèi)越長時(shí)間以退出該狀態(tài)(雖然功率節(jié)省越多)。為了最小化這個(gè)等待時(shí)間的影響,在框40調(diào)制到更寬鏈路寬度之前,在框38退出低功率狀態(tài)。這種方法使得能夠在電路在后臺(tái)加電的同時(shí)在先前的鏈路寬度上操作鏈路,從而顯著改進(jìn)了鏈路寬度調(diào)制時(shí)間。而且,因?yàn)樵诤笈_(tái)進(jìn)行加電過程,所以低功率狀態(tài)可以被設(shè)計(jì)得比常態(tài)低,從而提供了甚至更多的功率節(jié)省。
如果存在功率節(jié)省機(jī)會(huì),則框42用于基于遠(yuǎn)程寬度容量選擇更窄的鏈路寬度。在框44將鏈路調(diào)制到更窄的鏈路寬度。框44處的調(diào)制向遠(yuǎn)程端口提供關(guān)于更窄鏈路寬度的建設(shè)性通知。在框46將對應(yīng)于多余寬度的本地端口的部分置于低功率狀態(tài)。應(yīng)該注意,可以在框44調(diào)制到更窄的鏈路寬度后,在框46實(shí)施進(jìn)入低功率狀態(tài)的操作,以避免與使鏈路電路處于不活動(dòng)狀態(tài)的過程相關(guān)聯(lián)的等待時(shí)間。這樣,當(dāng)電路在后臺(tái)斷電時(shí),可以盡快在新的鏈路寬度上操作鏈路。這樣的操作進(jìn)一步改進(jìn)了鏈路寬度調(diào)制時(shí)間并且利于使用更低的低功率狀態(tài)。框48用于在第二鏈路寬度上向遠(yuǎn)程端口傳輸數(shù)據(jù)。
現(xiàn)在轉(zhuǎn)向圖4,示出了消息傳遞圖50,其中本地端口(端口A)將鏈路調(diào)制到新的鏈路寬度。在所示出的示例中,本地端口通過向遠(yuǎn)程端口發(fā)送“PM.LinkWidthConfit”分組通知遠(yuǎn)程端口(端口B)待處理的轉(zhuǎn)變。時(shí)間參數(shù)“tLWM_PKT[UI]”對應(yīng)于通知分組的長度并且不影響鏈路寬度調(diào)制序列。一旦發(fā)送了通知分組,本地端口的鏈路層就發(fā)送空閑片“Idle#1-n”直到已經(jīng)過時(shí)間段TLWM_ENTER_NOP[UI]。這個(gè)時(shí)間段對應(yīng)于遠(yuǎn)程端口的鏈路層將新的鏈路寬度傳達(dá)到遠(yuǎn)程端口的物理層所需的時(shí)間量。該值可以存儲(chǔ)在本地端口的功率管理寄存器中,其中功率管理寄存器值可以是靜態(tài)的也可以是動(dòng)態(tài)的。
靜態(tài)值可以被硬編碼并且在加電后不再改變,而動(dòng)態(tài)值可以被更新用于更積極主動(dòng)的計(jì)時(shí)。在動(dòng)態(tài)的功率管理寄存器計(jì)時(shí)值的情況下,給定的鏈路調(diào)制序列可以使用最新編程的值。例如,基本輸入/輸出系統(tǒng)(BIOS)可以考慮實(shí)際的平臺(tái)拓?fù)洳⑶覍⒆顑?yōu)值編程到寄存器中。可以引起最優(yōu)化的平臺(tái)變量的示例為通過鏈路的傳輸時(shí)間、鏈路層和物理層間的內(nèi)部延遲,等等。
在發(fā)送所需數(shù)目的空閑片后,本地端口的鏈路層發(fā)信號(hào)通知本地端口的物理層調(diào)整其多路復(fù)用器以支持新的鏈路寬度。本地物理層在所有有效傳輸差分對(例如,D+/D-)上驅(qū)動(dòng)高/低信號(hào)(例如,1/0)時(shí)間段TLWM_MUX_SWITCH這么長的時(shí)間,將其調(diào)制到使用新的鏈路寬度的下一片邊界。應(yīng)該注意,使用值1/0僅僅是出于討論的目的,可以使用其它值。實(shí)際上,由于正被討論的時(shí)間段持續(xù)時(shí)間較短,所以D+/D-傳輸可以一起被去除。這個(gè)時(shí)間段對應(yīng)于遠(yuǎn)程端口或本地端口(時(shí)間較長的那個(gè))的物理層完成多路復(fù)用器切換以支持新的鏈路寬度所需的時(shí)間量,該時(shí)間段也可以被存儲(chǔ)于本地功率管理寄存器或者從本地功率管理寄存器讀取。當(dāng)已經(jīng)過TLWM_MUX_SWITCH時(shí)間段后,本地端口準(zhǔn)備發(fā)送流控制片。這樣,因?yàn)閮蓚€(gè)端口都調(diào)制鏈路寬度,所以鏈路兩側(cè)的計(jì)時(shí)可以被控制到更高精度并且可以避免任何調(diào)制錯(cuò)誤。
圖5在框48更詳細(xì)地示出了向遠(yuǎn)程端口傳輸數(shù)據(jù)的一種方法。在所示出的實(shí)施例中,在框52確定與鏈路活動(dòng)部分相關(guān)聯(lián)的一個(gè)或多個(gè)事務(wù)隊(duì)列是否為空。在這方面,每個(gè)端口都可以具有物理層事務(wù)隊(duì)列,該隊(duì)列存儲(chǔ)要被置于鏈路上的數(shù)據(jù),其中空事務(wù)隊(duì)列可以表示當(dāng)前未被使用的激活的鏈路。所示出的技術(shù)提供在這種情況下的額外功率節(jié)省。具體而言,如果檢測到空事務(wù)隊(duì)列,則在框54將本地端口的活動(dòng)鏈路部分置于中間功率狀態(tài),其中和置于低功率狀態(tài)的鏈路未使用部分相比,中間功率狀態(tài)具有相對較短的再激活等待時(shí)間/喚醒時(shí)間。在一個(gè)實(shí)施例中,本地端口的活動(dòng)鏈路部分具有可配置的喚醒時(shí)間,從而I/O電路的各種元件可以有選擇地?cái)嚯娨詽M足所需的最小等待時(shí)間。在這種情況下,更長的允許的喚醒時(shí)間使得I/O電路的更多部分能夠被關(guān)掉,從而產(chǎn)生更多的功率節(jié)省。
這樣,處于中間功率狀態(tài)的鏈路部分可以被配置為比處于低功率狀態(tài)的鏈路部分醒得更快。例如,考慮在全寬處操作的電路,其中本地端口決定將鏈路寬度向下調(diào)制到半寬??梢酝ㄟ^將信道的一半置于低功率狀態(tài)來實(shí)現(xiàn)該調(diào)制。如果本地端口隨后確定鏈路活動(dòng)部分的四分之一當(dāng)前未被使用,則可以將鏈路向下有效地調(diào)制到四分之一寬度,其中信道的四分之一被置于中間功率狀態(tài)。所以從四分之一寬度到半寬度的調(diào)制可以比從半寬度到全寬度的調(diào)制進(jìn)行得更快。
框56用于從本地端口剩余的活動(dòng)部分傳輸數(shù)據(jù),框58用于檢測事務(wù)隊(duì)列中的數(shù)據(jù)。如果隊(duì)列不再為空,則在框60將正被討論的鏈路電路從中間功率狀態(tài)帶出。如已提到的,框60可以比上面討論的框38(圖3)完成得更快???2用于如通常那樣在所有活動(dòng)信道上傳輸數(shù)據(jù)。
現(xiàn)在轉(zhuǎn)向圖6,示出了檢測錯(cuò)誤的方法64。具體而言,方法64可以視需要并入上面討論的方法26(圖2)中,以消除可能和“協(xié)商較少”的鏈路調(diào)制過程相關(guān)聯(lián)的任何負(fù)面影響。具體而言,框66用于接收來自遠(yuǎn)程端口的重試請求,其中該重試請求指出鏈路寬度通知消息包含錯(cuò)誤并且指出遠(yuǎn)程端口的當(dāng)前鏈路寬度。在框68為本地端口選擇遠(yuǎn)程端口的當(dāng)前鏈路寬度并且在框70重復(fù)通知。
因而,上面的技術(shù)使得能夠在諸如功率節(jié)省很關(guān)鍵的移動(dòng)計(jì)算等領(lǐng)域?qū)で蠓e極的功率節(jié)省選擇。例如,在筆記本電腦中實(shí)現(xiàn)動(dòng)態(tài)鏈路寬度調(diào)制提供了如下改進(jìn),所述改進(jìn)包括但不限于延長電池壽命、更小巧的外形以及降低操作成本。
由前面的描述,本領(lǐng)域的技術(shù)人員可以理解本發(fā)明的實(shí)施例的廣泛技術(shù)可以以各種方式來實(shí)現(xiàn)。因此,雖然本發(fā)明的實(shí)施例是就其具體示例進(jìn)行描述的,但是因?yàn)閷τ诒绢I(lǐng)域的專業(yè)人員來說通過學(xué)習(xí)附圖、說明書以及權(quán)利要求,其它的修改將變得顯而易見,所以本發(fā)明的實(shí)施例的真正范圍不應(yīng)被如此限制。
本申請和下述兩申請相關(guān),即在同日提交的N.Cherukuri等人的題為“Link Power Saving State”的美國申請,以及在同日提交的N.Cherukuri等人的題為“A Method for Identifying Bad Lanes and Exchanging WidthCapabilities of Two Agents Connected Across a Link”的美國申請。
權(quán)利要求
1.一種方法,包括在鏈路初始化期間,接收遠(yuǎn)程寬度容量,所述遠(yuǎn)程寬度容量對應(yīng)于遠(yuǎn)程端口;以及根據(jù)所述遠(yuǎn)程寬度容量,在多個(gè)鏈路寬度上操作本地端口和所述遠(yuǎn)程端口之間的鏈路。
2.如權(quán)利要求1所述的方法,其中操作所述鏈路包括基于所述遠(yuǎn)程寬度容量和本地寬度容量建立所述鏈路的第一鏈路寬度;基于所述遠(yuǎn)程寬度容量和所述本地端口的操作狀況選擇第二鏈路寬度;以及將所述鏈路調(diào)制到所述第二鏈路寬度。
3.如權(quán)利要求2所述的方法,其中所述選擇包括選擇比所述第一鏈路寬度窄的所述第二鏈路寬度,所述操作狀況包括功率節(jié)省狀況。
4.如權(quán)利要求3所述的方法,還包括在將所述鏈路調(diào)制到所述第二鏈路寬度后將所述本地端口的一部分置于低功率狀態(tài)。
5.如權(quán)利要求2所述的方法,其中所述選擇包括選擇比所述第一鏈路寬度寬的所述第二鏈路寬度,所述操作狀況包括增加帶寬狀況。
6.如權(quán)利要求5所述的方法,還包括在將所述鏈路調(diào)制到所述第二鏈路寬度前將所述本地端口的一部分從低功率狀態(tài)帶出。
7.如權(quán)利要求2所述的方法,還包括如果在已通知所述遠(yuǎn)程端口所述第二鏈路寬度后已過去預(yù)定的時(shí)間量,則在所述第二鏈路寬度上向所述遠(yuǎn)程端口傳輸數(shù)據(jù),所述預(yù)定的時(shí)間量包括第一時(shí)間段和第二段時(shí)間段,所述第一時(shí)間段對應(yīng)于所述遠(yuǎn)程端口的鏈路層向所述遠(yuǎn)程端口的物理層傳達(dá)所述第二鏈路寬度所需的時(shí)間量,所述第二時(shí)間段對應(yīng)于所述遠(yuǎn)程端口的所述物理層完成多路復(fù)用器切換以支持所述第二鏈路寬度所需的時(shí)間量。
8.如權(quán)利要求7所述的方法,還包括從所述本地端口的功率管理寄存器讀取所述第一時(shí)間段和所述第二時(shí)間段。
9.如權(quán)利要求8所述的方法,其中讀取所述第一時(shí)間段和所述第二時(shí)間段包括從所述功率管理寄存器讀取靜態(tài)第一時(shí)間段值和靜態(tài)第二時(shí)間段值。
10.如權(quán)利要求8所述的方法,其中讀取所述第一時(shí)間段和所述第二時(shí)間段包括從所述功率管理寄存器讀取動(dòng)態(tài)第一時(shí)間段值和動(dòng)態(tài)第二時(shí)間段值。
11.如權(quán)利要求2所示的方法,還包括接收來自所述遠(yuǎn)程端口的重試請求,所述重試請求指出與所述調(diào)制相關(guān)聯(lián)的消息包含錯(cuò)誤,所述重試請求包括所述遠(yuǎn)程端口的當(dāng)前鏈路寬度;為所述本地端口選擇所述遠(yuǎn)程端口的所述當(dāng)前鏈路寬度;以及重復(fù)所述調(diào)制。
12.如權(quán)利要求2所述的方法,還包括檢測與所述本地端口的活動(dòng)部分相關(guān)聯(lián)的空事務(wù)隊(duì)列;以及將所述活動(dòng)部分置于中間功率狀態(tài),所述中間功率狀態(tài)具有相對較短的再激活等待時(shí)間。
13.如權(quán)利要求1所述的方法,其中接收所述遠(yuǎn)程寬度容量包括接收一個(gè)或多個(gè)所支持的鏈路寬度以及對應(yīng)的信道標(biāo)識(shí)符。
14.如權(quán)利要求1所述的方法,其中操作所述鏈路包括在所述多個(gè)鏈路寬度上操作單向鏈路。
15.一種裝置,包括具有控制邏輯的本地端口,所述控制邏輯在鏈路初始化期間接收遠(yuǎn)程寬度容量,所述遠(yuǎn)程寬度容量對應(yīng)于遠(yuǎn)程端口,并且所述控制邏輯根據(jù)所述遠(yuǎn)程寬度容量在多個(gè)鏈路寬度上操作所述本地端口和所述遠(yuǎn)程端口間的鏈路。
16.如權(quán)利要求15所述的裝置,其中所述控制邏輯基于所述遠(yuǎn)程寬度容量和本地寬度容量建立所述鏈路的第一鏈路寬度,基于所述遠(yuǎn)程寬度容量和所述本地端口的操作狀況選擇第二鏈路寬度,并且將所述鏈路調(diào)制到所述第二鏈路寬度。
17.如權(quán)利要求16所述的裝置,其中所述第二鏈路寬度比所述第一鏈路寬度窄,所述操作狀況包括功率節(jié)省狀況,所述控制邏輯在將所述鏈路調(diào)制到所述第二鏈路寬度后將所述本地端口的一部分置于低功率狀態(tài)。
18.如權(quán)利要求16所述的裝置,其中所述第二鏈路寬度比所述第一鏈路寬度寬,所述操作狀況包括增加帶寬狀況,所述控制邏輯在將所述鏈路調(diào)制到所述第二鏈路寬度前將所述本地端口的一部分從低功率狀態(tài)帶出。
19.如權(quán)利要求16所述的裝置,其中如果在已通知所述遠(yuǎn)程端口所述第二鏈路寬度后已過去預(yù)定的時(shí)間量,則所述控制邏輯在所述第二鏈路寬度上向所述遠(yuǎn)程端口傳輸數(shù)據(jù),所述預(yù)定的時(shí)間量包括第一時(shí)間段和第二段時(shí)間段,所述第一時(shí)間段對應(yīng)于所述遠(yuǎn)程端口的鏈路層向所述遠(yuǎn)程端口的物理層傳達(dá)所述第二鏈路寬度所需的時(shí)間量,所述第二時(shí)間段對應(yīng)于所述遠(yuǎn)程端口的所述物理層完成多路復(fù)用器切換以支持所述第二鏈路寬度所需的時(shí)間量。
20.如權(quán)利要求16所述的裝置,其中所述控制邏輯檢測與所述本地端口的活動(dòng)部分相關(guān)聯(lián)的空事務(wù)隊(duì)列,并將所述活動(dòng)部分置于中間功率狀態(tài),所述中間功率狀態(tài)具有相對較短的再激活等待時(shí)間。
21.如權(quán)利要求15所述的裝置,其中所述遠(yuǎn)程寬度容量包括一個(gè)或多個(gè)所支持的鏈路寬度以及對應(yīng)的信道標(biāo)識(shí)符。
22.如權(quán)利要求15所述的裝置,其中所述鏈路包括單向鏈路。
23.一種系統(tǒng),包括遠(yuǎn)程端口;耦合到所述遠(yuǎn)程端口的單向鏈路;以及耦合到所述鏈路的本地端口,所述本地端口包括控制邏輯,所述控制邏輯在鏈路初始化期間接收來自所述遠(yuǎn)程端口的遠(yuǎn)程寬度容量,并且根據(jù)所述遠(yuǎn)程寬度容量在多個(gè)鏈路寬度上操作所述鏈路。
24.如權(quán)利要求23所述的系統(tǒng),其中所述控制邏輯基于所述遠(yuǎn)程寬度容量和本地寬度容量建立所述鏈路的第一鏈路寬度,基于所述遠(yuǎn)程寬度容量和所述本地端口的操作狀況選擇第二鏈路寬度,并且將所述鏈路調(diào)制到所述第二鏈路寬度。
25.如權(quán)利要求24所述的系統(tǒng),其中所述第二鏈路寬度比所述第一鏈路寬度窄,所述操作狀況包括功率節(jié)省狀況,所述控制邏輯在將所述鏈路調(diào)制到所述第二鏈路寬度后將所述本地端口的一部分置于低功率狀態(tài)。
26.如權(quán)利要求25所述的系統(tǒng),其中所述遠(yuǎn)程接口包括控制邏輯,所述控制邏輯接收來自所述本地端口的所述第二鏈路寬度的通知,并且將所述遠(yuǎn)程端口的一部分置于低功率狀態(tài)。
27.如權(quán)利要求24所述的系統(tǒng),其中所述第二鏈路寬度比所述第一鏈路寬度寬,所述操作狀況包括增加帶寬狀況,所述控制邏輯在將所述鏈路調(diào)制到所述第二鏈路寬度前將所述本地端口的一部分從低功率狀態(tài)帶出。
28.如權(quán)利要求27所述的系統(tǒng),其中所述遠(yuǎn)程端口包括控制邏輯,所述控制邏輯接收來自所述本地端口的所述第二鏈路寬度的通知,并且將所述遠(yuǎn)程端口的一部分從低功率狀態(tài)帶出。
29.如權(quán)利要求24所述的系統(tǒng),其中所述控制邏輯檢測與所述本地端口的活動(dòng)部分相關(guān)聯(lián)的空事務(wù)隊(duì)列,并將所述活動(dòng)部分置于中間功率狀態(tài),所述中間功率狀態(tài)具有相對較短的再激活等待時(shí)間。
30.如權(quán)利要求23所述的系統(tǒng),其中所述鏈路是具有分層通信協(xié)議的點(diǎn)對點(diǎn)網(wǎng)絡(luò)互連的一部分。
31.一種方法,包括在本地端口和遠(yuǎn)程端口之間的鏈路初始化期間,接收遠(yuǎn)程寬度容量,所述遠(yuǎn)程寬度容量對應(yīng)于所述遠(yuǎn)程端口,并且包括一個(gè)或多個(gè)所支持的鏈路寬度以及對應(yīng)的信道標(biāo)識(shí)符;基于所述遠(yuǎn)程寬度容量和本地寬度容量,建立鏈路的第一鏈路寬度;基于所述遠(yuǎn)程寬度容量和所述本地端口的操作狀況選擇第二鏈路寬度;將所述鏈路調(diào)制到所述第二鏈路寬度;檢測與所述本地端口的活動(dòng)部分相關(guān)聯(lián)的空事務(wù)隊(duì)列;以及將所述活動(dòng)部分置于中間功率狀態(tài),所述中間功率狀態(tài)具有相對較短的再激活等待時(shí)間。
32.如權(quán)利要求31所述的方法,其中所述選擇包括選擇比所述第一鏈路寬度窄的所述第二鏈路寬度,所述操作狀況包括功率節(jié)省狀況,所述方法還包括在將所述鏈路調(diào)制到所述第二鏈路寬度后將所述本地端口的一部分置于低功率狀態(tài),所述低功率狀態(tài)具有相對較長的再激活等待時(shí)間。
33.如權(quán)利要求31所述的方法,其中所述選擇包括選擇比所述第一鏈路寬度寬的所述第二鏈路寬度,所述操作狀況包括增加帶寬狀況,所述方法還包括在將所述鏈路調(diào)制到所述第二鏈路寬度前將所述本地端口的一部分從低功率狀態(tài)帶出,所述低功率狀態(tài)具有相對較長的再激活等待時(shí)間。
34.如權(quán)利要求27所述的方法,還包括如果在已通知所述遠(yuǎn)程端口所述第二鏈路寬度后已過去預(yù)定的時(shí)間量,則在所述第二鏈路寬度上向所述遠(yuǎn)程端口傳輸數(shù)據(jù),所述預(yù)定的時(shí)間量包括第一時(shí)間段和第二段時(shí)間段,所述第一時(shí)間段對應(yīng)于所述遠(yuǎn)程端口的鏈路層向所述遠(yuǎn)程端口的物理層傳達(dá)所述第二鏈路寬度所需的時(shí)間量,所述第二時(shí)間段對應(yīng)于所述遠(yuǎn)程端口的所述物理層完成多路復(fù)用器切換以支持所述第二鏈路寬度所需的時(shí)間量。
全文摘要
本發(fā)明提供了管理鏈路的系統(tǒng)和方法,所述系統(tǒng)和方法用于在鏈路初始化期間接收遠(yuǎn)程寬度容量,遠(yuǎn)程寬度容量對應(yīng)于遠(yuǎn)程端口。根據(jù)遠(yuǎn)程寬度容量,在多個(gè)鏈路寬度上操作本地端口和遠(yuǎn)程端口間的鏈路。
文檔編號(hào)H04L29/06GK1700693SQ20041008698
公開日2005年11月23日 申請日期2004年10月27日 優(yōu)先權(quán)日2004年5月21日
發(fā)明者納韋恩·謝呂庫里, 杰弗里·R·威爾科克斯, 阿龍·斯平克, 桑賈伊·達(dá)布羅, 帕尼達(dá)拉·曼納瓦, 大衛(wèi)·鄧寧, 提姆·弗羅德沙姆, 西奧多·Z·舍恩博恩 申請人:英特爾公司