專利名稱:一種pcie接口的鏈路重組方法和裝置的制作方法
技術領域:
本發(fā)明涉及通信技術領域,尤其涉及一種PC正接口的鏈路重組方法和 裝置。
背景技術:
PCIE (PCI-Express;快速PCI (Peripheral Component Interconnect,外
設組件互連))是一種高性能的I/O總線,它是能夠應用于移動設備、臺式 電腦、工作站、服務器、嵌入式計算和通信平臺等所有周邊I/O設備互連的 總線。PCIE總線最顯著的優(yōu)勢是提高了設備傳輸帶寬,當前PC正l.O的發(fā) 送和接收數據速率是2.5Gbit/s,同時每臺PCIE設備的引腳很少,從而降低 了 PC正芯片和板卡的設計成本,并降低了板卡設計的復雜性。
PC正鏈路(PCIE lane)是兩臺設備之間的物理連接,PC正互連有一條 XI、 X2、 X4、 X8、 X16或X32的點對點鏈路,兩個方向上的通道由信號對 組成,例如, 一條X1的鏈路有一條通道,即每個方向上有一對差動信號, 共四個信號; 一條X32的鏈路有32條通道,即每個方向上有32對差動信號, 共128個信號,PC正鏈路在每個方向上支持相同數目的通道。由于PCIE設 備是采用點到點的互連機制,所以PCIE物理鏈路的完好性至關重要,目前, 當PCIE鏈路中有一條鏈路通道損壞后,即便其他鏈路通道完好,整個PCIE 鏈路也無法使用,這對系統(tǒng)設計造成了極大的不變,并且也提高了成本。 為了解決這一問題,現(xiàn)有技術中提出了如下兩種解決方案。 其中一種是當PCIE接口的某個數據傳輸通道損壞后,通過降鏈路(lane) 來實現(xiàn)數據的傳輸,艮卩,如果一個PCIE接口為X16鏈路,當通道lane8到 通道knel5中有一個損壞,則直接從X16鏈路降到X8鏈路,若通道lane7 損壞,則直接降到X4鏈路,以此類推一直降到通道ianeO。發(fā)明人在實現(xiàn)本發(fā)明的過程中發(fā)現(xiàn),在這種解決方案中,通道laneO的數據通路最為重要, 假使通道laneO出現(xiàn)損壞,即使其余的15個通道(lane)都完好無損,整個 PC正接口也無法使用,這樣使得系統(tǒng)的靈活性和成本都比較差,給用戶帶 來很大的不便。
另外一種解決方案是降低通道laneO的重要性,即,當PCIE接口的通 道laneO損壞后,則通過對整個PCIE鏈路做一次training,進行轉置重組, 即將通道lanel5變成通道lane0,高位變低位,這樣即使通道laneO損壞,這 個PCIE接口依然可以使用。
發(fā)明人在實現(xiàn)本發(fā)明的過程中發(fā)現(xiàn),在這種解決方案中,雖然通道laneO 的損壞不會造成整個PC正物理接口的報廢,但是如果通道laneO和通道 lanel5同時受損,即使別的通道(kne)依然完好無損,該PC正接口依然無 法使用,導致PCIE接口鏈路的利用率低。
發(fā)明內容
為了解決上述現(xiàn)有技術中所指出的問題,本發(fā)明實施例提供一種PC正 接口的鏈路重組方法和裝置,以提高PC正接口鏈路的利用率。
本發(fā)明實施例的上述目的是通過如下技術方案實現(xiàn)的-
一種PCIE接口的鏈路重組方法,所述方法應用于根聯(lián)合體,所述方法 包括在根聯(lián)合體的PCIE接口鏈路重新初始化定向時,如果存在通過所述 PC正接口進行物理連接的端點設備,且與所述端點設備之間的鏈路的電氣 功能完好,則為連接到所述端點設備的鏈路的可用通道分配通道號;分配好 通道號的可用通道與所述端點設備進行數據傳輸。
一種PCIE接口的鏈路重組裝置,所述裝置包括配置單元,用于在根 聯(lián)合體的PCIE接口鏈路重新初始化定向時,如果存在通過所述PCIE接口 進行物理連接的端點設備,且與所述端點設備之間的鏈路的電氣功能完好 時,為連接到所述端點設備的鏈路的可用通道分配通道號;處理單元,用于 利用分配好通道號的可用通道與所述端點設備進行數據傳輸。通過本發(fā)明實施例的方法和裝置,在PCIE鏈路中有一條鏈路通道損壞
后,通過對沒有損壞的鏈路通道進行通道號的分配來重新初始化重定向,最
大限度的使用PCffi接口鏈路的自適應重組,合理的利用了協(xié)議的規(guī)定,使 得鏈路的利用率提高,保證了系統(tǒng)通過PC正接口傳輸數據的穩(wěn)定性、不中 斷性,減少了系統(tǒng)整體死機的概率。
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部
分,并不構成對本發(fā)明的限定。在附圖中 圖1為本發(fā)明實施例的方法流程圖; 圖2為本發(fā)明另一實施例的方法流程圖; 圖3為圖2所示實施例的首次鏈路初始化定向示意圖; 圖4為圖2所示實施例的鏈路分配流程圖; 圖5為本發(fā)明實施例的裝置組成框圖。
具體實施例方式
為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚明白,下面結合實 施例和附圖,對本發(fā)明實施例做進一步詳細說明。在此,本發(fā)明的示意性實 施例及其說明用于解釋本發(fā)明,但并不作為對本發(fā)明的限定。
實施例一
本發(fā)明實施例提供一種快速外設組件互連PC正接口的鏈路重組方法,
以下結合附圖對本實施例進行詳細說明。
圖1為本實施例的方法流程圖,本實施例的PCIE接口的鏈路重組方法 應用于使用PCIE接口的任意設備,其中,應用本發(fā)明實施例的方法的PCIE 接口設備作為主設備稱為根聯(lián)合體,與該主設備連接的從設備稱為端點設
備,如圖1所示,本實施例的方法主要包括
101:在PCIE接口鏈路重新初始化定向時,如果根聯(lián)合體發(fā)現(xiàn)存在通過所述PC正接口與其物理連接的端點設備,且與所述端點設備之間的鏈路的
電氣功能完好,則為連接到所述端點設備的鏈路的可用通道分配通道號;
102:根聯(lián)合體利用分配好通道號的可用通道與所述端點設備進行數據 傳輸。
在本實施例中,如果根聯(lián)合體與端點設備之間的PCIE接口中出現(xiàn)了鏈 路通道lane的損壞,則會重新進行一次鏈路初始化定向,在進行PCIE接口 鏈路的重新初始化定向過程中,根聯(lián)合體不僅要通過檢測來測試該根聯(lián)合體 是否存在遠端連接的端點設備,通過輪詢來測試該根聯(lián)合體與端點設備之間 的鏈路的電氣功能是否完好,還要為該PC正接口上可用的鏈路通道重新分 配通道號,進而根據重組后的鏈路與端點設備進行數據的傳輸,達到提高 PCIE接口鏈路的利用率的目的。
其中,檢測和輪詢的過程都屬于現(xiàn)有技術,在此不再贅述。 另外,根據重組后的鏈路與端點設備進行數據的傳輸還包括了一些狀態(tài) 的設置和管理,例如恢復(執(zhí)行通道到通道的相位補償)、LO (發(fā)送并接收 處理層數據包TLP(Transaction Layer Packet)、數據鏈路層數據包DLLP(Data Link Layer Packet))、 LOS (低功耗的、活動電源管理狀態(tài))、LI (電源管理 狀態(tài))、L2 (電源管理狀態(tài))、HOT復位、回環(huán)(測試和故障隔離)和禁用 (禁用已配置的鏈路)等,這也是PCIE協(xié)議本身所具有的內容,在此不再 贅述。
通過本發(fā)明實施例的方法,最大限度的使用PCIE接口鏈路的自適應重 組,合理的利用了協(xié)議的規(guī)定,使得鏈路的利用率提高,保證了系統(tǒng)通過 PC正接口傳輸數據的穩(wěn)定性、不中斷性,避免了系統(tǒng)整體死機。
實施例二
本發(fā)明實施例還提供一種PC正接口的鏈路重組方法,以下結合附圖對 本實施例進行詳細說明。
圖2為本實施例的方法流程圖,本實施例的方法應用于使用PCIE接口的任意設備,在本實施例中,以PCIE接口為X16鏈路為例加以說明,也就 是說,該X16鏈路具有16條鏈路通道,如圖2所示,本實施例的方法包括:
201:如果PCIE接口鏈路中出現(xiàn)了鏈路通道損壞,則對所述PCIE接口 鏈路進行重新初始化定向;
其中,鏈路初始化定向是配置和初始化設備物理層、端口和相關鏈路的 物理層控制,使鏈路可傳送正常的數據包流量。
一般情況下,PCIE接口在工作時,先進行鏈路初始化定向,通過鏈路 初始化定向,為PC正接口的每條鏈路通道分配一個鏈路號和通道號,如圖 3所示,該PCIE接口的通道號從左至右分別為laneO至Ulane15,鏈路號與通 道號對應。而當數據傳輸中斷,或者出現(xiàn)出錯告警提示信息等時,則判斷為 PCIE接口鏈路出現(xiàn)了通道損壞,在這種情況下,都會重新進行鏈路初始化 定向,以確認該PC正接口鏈路是否確實發(fā)生了通道損壞。當重新初始化定 向達到預定次數后,如果仍不能恢復數據傳輸,或仍然出現(xiàn)出錯告警提示信 息等而不能進行數據傳輸,則判斷為該PCIE接口損壞。
202:在PCIE接口鏈路重新初始化定向時,通過檢測來測試是否存在通 過所述PCIE接口相互連接的端點設備,并通過輪詢來測試與所述端點設備 之間的鏈路的電氣功能是否完好,當存在通過所述PCIE接口進行物理連接 的端點設備且與端點設備的電氣功能完好時,則執(zhí)行步驟203;
其中,電氣功能包含了電流、差動電壓和鎖相環(huán)(提供時鐘功能)等硬 件功能,在此不再贅述。
203:為連接到所述端點設備的鏈路的可用通道分配通道號;
其中,為連接到所述端點設備的鏈路的可用通道分配通道號可以通過圖
4所示的步驟完成,如圖4所示,該過程包括
401:確認與所述端點設備連接的PC正接口的可用通道,然后對所述 PCIE接口上的可用通道進行通道編號;
在一個實施例中,可以通過向端點設備發(fā)送訓練序列TS1有序集,確認與所述端點設備連接的PCIE接口的可用通道。
通過發(fā)送TS1有序集,沒有損壞的鏈路通道接收到TS1有序集后,發(fā) 送一個反饋消息,這樣就能夠確認與所述端點設備連接的PCIE接口的可用 通道。需要說明的是,在一個實施例中,TS1可以如PC正標準中的定義所 述,在另一個實施例中TS1也可以為預先設定的有序的數據包序列。
需要說明的是,在一個實施例中,可以對通道所在的鏈路重新進行鏈路 編號,在另一個實施例中也可以不對通道所在的鏈路進行鏈路編號,即使用 原來的鏈路號。
402:根據該根聯(lián)合體的PCIE接口的帶寬以及所述端點設備的PCIE接 口的帶寬,確定該根聯(lián)合體與所述端點設備之間的總鏈路寬度;
由于根聯(lián)合體和端點設備的帶寬可能不一致,因此,在本步驟中,還要 進一步確認該根聯(lián)合體與端點設備的總鏈路寬度。
這里需要說明的是,根聯(lián)合體的PCIE接口的帶寬和與其連接的端點設 備的PC正接口的帶寬有可能是不同的,這時候就需要確定較小的PC正接 口的帶寬,作為根聯(lián)合體和與其連接的端點設備之間的總鏈路寬度。
例如,在一個實施例中,根聯(lián)合體的PC正接口帶寬為2G,與其連接的 端點設備的PCIE接口帶寬為1.6G,則確定1.6G作為根聯(lián)合體和與其相連 的端點設備之間的總鏈路寬度。
在另一個實施例中,根聯(lián)合題的PCIE接口帶寬為1G,與其連接的一個 端點設備的PCIE接口帶寬為1.5G,則確定1G作為該根聯(lián)合體和該端點設 備之間的總鏈路寬度;如果與根聯(lián)合體相連接的另一個端點設備的PCIE接 口帶寬為0.8G,則確定0.8G作為根聯(lián)合體和該另一個端點設備之間的總鏈 路寬度。
403:根據根聯(lián)合體和與其連接的端點設備之間的總鏈路寬度,確認該 根聯(lián)合體與所述端點設備之間的每條可用通道的鏈路寬度。
在一個實施例中,根據根聯(lián)合體和與其連接的端點設備之間的總鏈路帶寬,可以通過向端點設備發(fā)送培訓序列TS2有序集,確認該根聯(lián)合體與所述
端點設備之間的每條可用通道的鏈路寬度。
通過發(fā)送TS2有序集,每條可用通道接收到TS2有序集后,發(fā)送一個
反饋消息,反饋消息在一個實施例中可以包含這條通道傳輸的數據類型,在 另一個實施例中也可以包括這條鏈路的業(yè)務類型或者數據量等信息,這樣根 據反饋消息就和總的鏈路寬度就能夠確定出每條可用通道的鏈路寬度。
例如,在一個實施例中,假設有兩條可用通道, 一條主要用來傳輸圖像 數據, 一條主要用來傳輸視頻數據,總的鏈路寬度為2G。那么可以根據反 饋消息得知每條鏈路傳輸的數據的主要類型或者內容,根據每條可用通道傳 輸的數據的內容的不同,確定每條可用通道的鏈路寬度,這樣就可以給主要 傳輸圖像數據的通道分配少一點的鏈路寬度,比如為0.5G,給主要傳輸視頻 數據的通道分配多一點的鏈路寬度,比如1.5G。
需要說明的是,在一個實施例中,TS1可以如PCIE標準中的定義所述, 在另一個實施例中TS1也可以為預先設定的有序的數據包序列。
由于根聯(lián)合體和端點設備的帶寬可能不一致,再加上PCIE接口的某些 鏈路已經損壞,因此,在本步驟中,還要通過向端點設備發(fā)送培訓序列TS2 有序集,進一步確認該根聯(lián)合體與端點設備之間的每條可用通道的鏈路寬 度。
圖4所示的過程為PC正接口鏈路損壞后的鏈路重新training的過程,通 過重新定義排列通道號,將沒有損害的鏈路再次利用起來,最大限度的提高 PCIE接口鏈路的利用率。
204:利用分配好通道號的可用通道與所述端點設備進行數據傳輸。 在本實施例中,根據步驟201,當PCIE接口存在鏈路損壞時,例如laneO 或lanel5損壞,則重新進行鏈路初始化定向,在該重新進行的鏈路初始化定 向過程中,當通過步驟202的檢測過程和輪詢過程確認存在通過所述PCIE 接口進行物理連接的端點設備,且與所述端點設備的電氣功能完好時,還要通過步驟203對該PCIE接口上可用的通道進行通道號的重新分配,讓其余 沒有損壞的通道進行一次重排序,例如,將原來的通道lanel變?yōu)橥ǖ纋aneO, 依此類推,這樣,即便由于PCIE接口物理鏈路中某些通道損壞了,只要其 中還有通道是完好的,那么就可以不間斷的將數據傳輸完畢,并不會造成系 統(tǒng)的死機。
通過本發(fā)明實施例的方法,最大限度的使用PCIE接口鏈路的自適應重 組,合理的利用了協(xié)議的規(guī)定,使得鏈路的利用率提高,保證了系統(tǒng)通過 PCIE接口傳輸數據的穩(wěn)定性、不中斷性,減少了系統(tǒng)整體死機的概率。
實施例三
本發(fā)明實施例還提供一種PCIE接口的鏈路重組裝置,以下結合附圖對 本實施例進行詳細說明。
圖5為本實施例的裝置組成框圖,本實施例的裝置可以應用于任何使用 PCIE接口的設備,如圖4所示,本實施例的PCIE接口的鏈路重組裝置主要 包括
配置單元51,用于在PCIE接口鏈路重新初始化定向時,如果存在通過 所述PC正接口進行物理連接的端點設備,且與所述端點設備之間的鏈路的 電氣功能完好時,為連接到所述端點設備的鏈路的可用通道分配通道號;
處理單元52,用于利用分配好通道號的可用通道與所述端點設備進行數
據傳輸。
在本實施例中,配置單元51可以包括第一確認模塊511、分配模塊 512、第二確認模塊513,第三確認模塊514,其中,
第一確認模塊511,用于確認與所述端點設備連接的PCIE接口的可用 通道,例如通過向端點設備發(fā)送TS1有序集確認與所述端點設備連接的PCIE 接口的可用通道。
分配模塊512,用于在所述第一確認模塊511確認與所述端點設備連接 的PCIE接口的可用通道后,對所述PC正接口上的可用通道進行通道編號。需要說明的是,在一個實施例中,分配模塊512還可以對通道所在的鏈 路重新進行鏈路編號,在另一個實施例中分配模塊512也可以不對通道所在 的鏈路進行鏈路編號,即使用原來的鏈路號。
第二確認模塊513,用于根據所述PC正接口的帶寬以及所述端點設備 的PCIE接口的帶寬,確認與所述端點設備之間的總鏈路寬度。
第三確認模塊514,根據根聯(lián)合體和與其連接的端點設備之間的總鏈路 寬度,確認該根聯(lián)合體與所述端點設備之間的每條可用通道的鏈路寬度
例如,第三確認模塊514可以通過向端點設備發(fā)送TS2有序集來確認與 所述端點設備之間的每條可用通道的鏈路寬度。
在本實施例中,該裝置還可以進一步包括
觸發(fā)單元53,用于在PC正接口中出現(xiàn)了通道損壞時,觸發(fā)PCIE接口 鏈路的重新初始化定向。
檢測單元54,用于在進行PCIE接口鏈路的重新初始化定向時,測試是 否存在通過所述PCIE接口進行物理連接的端點設備。
輪詢單元55,用于在進行PC正接口鏈路的重新初始化定向吋,測試與 所述端點設備之間的鏈路的電氣功能是否完好。
本實施例的裝置的各組成部分分別用于實現(xiàn)前述實施例的方法的各步 驟,在方法實施例中已經對各步驟進行了詳細說明,在此不再贅述。
通過本發(fā)明實施例的裝置,在PCIE接口鏈路損壞時進行鏈路動態(tài)重組, 提高了 PC正接口鏈路的可用性和可靠性,最大限度的使用PCIE接口鏈路 的自適應重組,合理的利用了協(xié)議的規(guī)定,使得鏈路的利用率提高,保證了 系統(tǒng)通過PC正接口傳輸數據的穩(wěn)定性、不中斷性,減少了系統(tǒng)整體死機的 概率。
結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、 處理器執(zhí)行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存 儲器(RAM)、內存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術領域內所公知的 任意其它形式的存儲介質中。
以上所述的具體實施例,對本發(fā)明的目的、技術方案和有益效果進行了 進一步詳細說明,所應理解的是,以上所述僅為本發(fā)明的具體實施例而已, 并不用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內,所做的任 何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種快速外設組件互連PCIE接口的鏈路重組方法,所述方法應用于通過PCIE接口互連的根聯(lián)合體和端點設備之間,其特征在于,所述方法包括在根聯(lián)合體的PCIE接口鏈路重新初始化定向時,如果存在通過所述PCIE接口進行物理連接的端點設備,且與所述端點設備之間的鏈路的電氣功能完好,則為連接到所述端點設備的PCIE接口鏈路的可用通道分配通道號;利用分配好通道號的可用通道與所述端點設備進行數據傳輸。
2. 根據權利要求1所述的方法,其特征在于,所述為連接到所述端點 設備的PCIE接口鏈路的可用通道分配通道號,包括確認與所述端點設備連接的PCIE接口的可用通道,對所述PCIE接口 上的可用通道進行通道編號;根據所述PCIE接口鏈路的帶寬以及所述端點設備的PCIE接口鏈路的 帶寬確認與所述端點設備之間的總鏈路寬度;根據根所述總鏈路寬度,確認與所述端點設備之間的每條可用通道的鏈 路寬度。
3. 根據權利要求2所述的方法,其特征在于,確認與所述端點設備連 接的PCIE接口的可用通道包括通過發(fā)送訓練序列TS1有序集確認與所述端點設備連接的PCIE接口的 可用通道。
4. 根據權利要求2所述的方法,其特征在于,確認與所述端點設備之 間的鏈路寬度包括通過發(fā)送培訓序列TS2有序集確認與所述端點設備之間的鏈路寬度。
5. 根據權利要求1所述的方法,其特征在于,所述在PCIE接口鏈路重 新初始化定向之前還包括如果根聯(lián)合體的PCIE接口鏈路中出現(xiàn)了通道損壞,則對所述PC正接 口鏈路進行重新初始化定向。
6. 根據權利要求5所述的方法,其特征在于,在PCIE接口鏈路重新初 始化定向時,所述方法還包括通過檢測來測試是否存在通過所述PCIE接口進行物理連接的端點設備。
7. 根據權利要求6所述的方法,其特征在于,在PCIE接口鏈路重新初 始化定向時,所述方法還包括通過輪詢來測試與所述端點設備之間的鏈路的電氣功能是否完好。
8. —種PC正接口的鏈路重組裝置,其特征在于,所述裝置包括 配置單元,用于在根聯(lián)合體的PCIE接口鏈路重新初始化定向時,如果存在通過所述PC正接口進行物理連接的端點設備,且與所述端點設備之間 的鏈路的電氣功能完好時,為連接到所述端點設備的鏈路的可用通道分配通 道號;處理單元,用于利用分配好通道號的可用通道與所述端點設備進行數據 傳輸。
9. 根據權利要求8所述的裝置,其特征在于,所述配置單元包括-第一確認模塊,用于確認與所述端點設備連接的PCIE接口的可用通道; 分配模塊,用于在所述第一確認模塊確認了 PCIE接口的可用通道后,對所述PCIE接口的可用通道進行通道編號;第二確認模塊,用于根據所述PC正接口鏈路的帶寬以及所述端點設備 的PC正接口鏈路的帶寬,確認與所述端點設備之間的總鏈路寬度;第三確認模塊514,用于根據所述總鏈路寬度,確認與所述端點設備之 間的每條可用通道的鏈路寬度。
10. 根據權利要求8所述的裝置,其特征在于,所述裝置還包括觸發(fā)單元,用于在PC正接口鏈路中出現(xiàn)了通道損壞時,觸發(fā)PCIE接口鏈路重新初始化定向;檢測單元,用于在PCIE接口鏈路重新初始化定向時,測試是否存在通 過所述PC正接口進行物理連接的端點設備;輪詢單元,用于在PC正接口鏈路重新初始化定向時,測試與所述端點 設備之間的鏈路的電氣功能是否完好。
全文摘要
本發(fā)明實施例提供一種PCIE接口的鏈路重組方法和裝置,所述方法包括在根聯(lián)合體的PCIE接口鏈路重新初始化定向時,如果存在通過所述PCIE接口進行物理連接的端點設備,且與所述端點設備之間的鏈路的電氣功能完好,則為連接到所述端點設備的鏈路的可用通道分配通道號;利用分配好通道號的可用通道與所述端點設備進行數據傳輸。通過本發(fā)明實施例的方法和裝置,最大限度的使用PCIE接口鏈路的自適應重組,合理的利用了協(xié)議的規(guī)定,使得鏈路的利用率提高,保證了系統(tǒng)通過PCIE接口傳輸數據的穩(wěn)定性、不中斷性,避免了系統(tǒng)整體死機。
文檔編號H04L29/02GK101557379SQ20091013939
公開日2009年10月14日 申請日期2009年5月21日 優(yōu)先權日2009年5月21日
發(fā)明者毅 蘇 申請人:成都市華為賽門鐵克科技有限公司