一種支持多模式交換的PCIe交換電路交換方法和裝置與流程
一種支持多模式交換的pcie交換電路交換方法和裝置
技術領域
1.本發明屬于集成電路設計領域,具體涉及一種支持多模式交換的pcie交換電路交換方法和裝置。
背景技術:
2.pcie總線是在第一代eisa、isa、vesa總線和第二代agp、pci、pci-x總線之后推出的第三代高性能io總線,在計算機裝置中獲得廣泛應用;在一個pcie裝置中,pcie交換電路用于將多個電子部件或模塊進行互聯通訊,pcie交換電路一般具有兩個或兩個以上的pcie端口,其取決于端口連接的對端設備的鏈路能力,各個端口可以訓練到不同的鏈路寬度和速率進行事務的交換。
3.pcie交換電路內部需要交換的事務包括存儲器事務、io事務、配置事務、消息事務,其中,存儲器寫請求和消息事務為轉發事務(posted tlp),不需要反饋完成包;io事務、配置事務和存儲器讀請求為非轉發事務(non-posted tlp,np tlp),需要返回完成包(completion tlp);功能復雜的pcie交換電路一般支持直通和存儲轉發兩種交換模式。直通模式交換無需完成整個數據包的接收就從出端口輸出數據包,從而具有交換延遲低的優點,但存在尾部發生錯誤后數據重傳過高的占用鏈路帶寬的缺點;存儲轉發模式交換是將整個數據包接收存儲后從出端口輸出,交換延遲大,但尾部數據發生錯誤后數據重傳占用鏈路帶寬小。
4.關于pcie交換電路實現機制的文獻很少,從應用的角度看,現有的同時支持直通和存儲轉發兩種交換模式的pcie交換電路只提供了一個全局控制寄存器位,由用戶軟件等配置裝置選擇電路固定工作于某一種交換模式,實際應用中不能滿足用戶對不同端口和事務的差異化交換需求,從而影響了整個裝置的交換性能。
技術實現要素:
5.針對現有技術中存在的問題,本發明提供一種支持多模式交換的pcie交換電路交換方法和裝置,由硬件自動且動態的進行當前交換事務的交換模式選擇,提高了裝置的交換性能。
6.本發明是通過以下技術方案來實現:
7.一種支持多模式交換的pcie交換電路交換方法,包括以下步驟:
8.s1:對當前接收的交換事務的入端口和出端口的通信速率進行比較,并解析該交換事務的事務類型和包含的數據載荷長度;
9.s2:從入端口進入的需要交換到出端口的所有np事務包、不帶數據載荷的完成包、消息請求包、數據載荷長度不大于一個雙字的完成包和存儲器寫請求包選擇存儲轉發交換模式,并以存儲轉發模式交換到出端口;
10.s3:對于從入端口進入的需要交換到出端口的帶數據載荷且數據載荷長度大于一個雙字的完成事務和存儲器寫請求包依據入端口和出端口的通信速率比較結果,將所帶數
據載荷的長度選擇直通交換或者存儲轉發模式進行交換;
11.s4:將采用直通模式或存儲轉發模式的當前交換的事務寫入緩存,事務寫入緩存的同時將選擇的當前事務交換模式信息存儲在緩存中;
12.s5:按讀取的事務交換信息確定當前事務的交換模式,若為直通模式,則從該入端口進入的帶數據載荷的完成事務和mwr事務以直通模式交換到該出端口,否則以存儲轉發模式進行該事務的轉發。
13.進一步,所述步驟s3中在判斷選擇直通交換或者存儲轉發模式時,若入端口的通信速率大于或等于出端口的通信速率時,從該入端口進入的帶數據載荷且數據載荷長度大于一個雙字的完成包和存儲器寫請求包選擇直通交換模式;
14.若入端口的通信速率小于出端口的通信速率時,從該入端口進入的需要交換到該出端口的帶數據載荷的完成包和存儲器寫請求包所帶數據載荷的長度超過門限時選擇直通模式交換,否則選擇存儲轉發模式交換。
15.進一步,所述數據載荷長度的門限由入端口和出端口的通信速率比值確定,其比值越小門限值越大。
16.進一步,所述步驟s4中事務的寫入過程事務發生錯誤時,若當前事務選擇為存儲轉發交換模式時,清除緩存中的當前事務的緩存部分并不再存儲當前事務的剩余部分;
17.若當前事務選擇為直通交換模式時,繼續接收當前事務并在當前事務接收結束時在緩存中事務的尾部標記錯誤標記位。
18.進一步,所述pcie交換電路內部事務的交換模式與交換的入出端口、交換事務類型和包含的數據載荷長度相關,其交換模式為動態交換模式。
19.進一步,同一入端口和出端口組成的交換線路,若為不同的事務,則在pcie交換電路內的交換模式可能不同;
20.在入端口和出端口的鏈路通信速率保持不變時,若為同一事務在同一交換線路內,則其交換模式相同;
21.當入端口或者出端口的鏈路通信速率因鏈路重訓練發生變化時,若為同一事務在同一交換線路內,則其交換模式與通信速率變化前可能不同。
22.一種支持多模式交換的pcie交換電路交換裝置,包括:
23.寫入與緩存模塊,用于寫入交換事務包,并在寫入的同時基于包信息和速率比較查詢模塊輸出的輸入輸出端口速率比較信息生成交換模式信息,并將當前事務包與交換模式信息同時寫入緩存;
24.包解析模塊,用于從入端口的端口控制器接收進入pcie交換電路的各種交換事務,依據事務頭信息解析事務的類型、數據載荷長度和目標出端口并對事務的正確性進行檢測,將事務頭部信息未檢測出錯誤的交換事務及其解析結果、檢測的錯誤狀態送入寫入與緩存模塊;
25.速率比較查詢表模塊,用于獲得pcie交換電路中各個端口的當前通信速率并對不同入端口、出端口的速率比較,將當前入端口接收的事務對應的入端口和出端口的通信速率比較結果送往寫入與緩存模塊;
26.讀取與交換模塊,用于讀取寫入與緩存模塊存儲的交換事務及其交換模式信息,按照交換模式信息選擇當前事務的交換模式并擇機啟動交換;
27.出端接收模塊,用于從讀取與交換模塊接收交換事務包,將事務包按照端口控制器的接口要求送給端口控制器進行發送。
28.進一步,所述寫入與緩存模塊用于在當前事務的寫入過程中包解析模塊檢測到事務發生ecrc等錯誤時進行判斷,若當前事務為選擇存儲轉發交換模式時,則清除緩存中的當前事務的緩存部分并不再存儲當前事務的剩余部分;
29.若當前事務為選擇直通交換模式時,則繼續接收當前事務并在當前事務接收結束時在緩存中事務的尾部標記錯誤標記位。
30.進一步,所述讀取與交換模塊用于在選擇直通模式時依據讀取的交換模式信息立即啟動交換或者等待緩存中的數據達到預設數量后將當前事務緩存讀取并交換到出端接收模塊;
31.在選擇存儲轉發模式時,當緩存中存儲完整個事務包后將事務讀取并交換到出端接收模塊;當讀取與交換模塊讀取的緩存中事務的尾部錯誤標記位有效時將錯誤信息通知給出端接收模塊。
32.進一步,所述讀取與交換模塊用于對從入端口進入的需要交換到出端口的所有np事務包、不帶數據載荷的完成包、消息請求包、數據載荷長度不大于一個雙字的完成包和存儲器寫請求包生成表示存儲轉發交換模式的交換模式信息。
33.與現有技術相比,本發明具有以下有益的技術效果:
34.本發明提供一種支持多模式交換的pcie交換電路交換方法和裝置,基于pcie交換電路的入端口和出端口的通信速率比較、交換事務的事務類型和包含的數據載荷長度由硬件自動和動態的進行當前交換事務的交換模式選擇,能夠支持直通模式和存儲轉發模式兩種交換方式且交換模式由輸入輸出端口的通信速率比值、交換事務類型和包含的數據載荷長度自動動態選擇,無需軟件配置;同時對于入端口通信速率大于或等于出端口通信速率的交換線路,自動選擇直通交換模式,發揮了直通模式交換延時小、效率高的優勢;其次對于np事務包、不帶數據載荷的完成包、消息請求包、數據載荷長度不大于一個雙字的完成包和存儲器寫請求包因其不帶數據載荷或僅有一個雙字數據載荷,選擇存儲轉發交換模式相比直通模式增加的交換延遲幾乎可以忽略,但卻避免了事務尾部校驗出錯時事務重傳對出端口帶寬的占用,提高了裝置性能;同時對于入端口通信速率小于出端口通信速率的線路上數據載荷長度大于一個雙字的完成包和儲存器寫請求包,由pcie交換電路按照事務的數據載荷長度自動選擇交換模式,對于未到達數據載荷門限的事務包采用存儲轉發模式,對于超過數據載荷門限的事務包采取直通交換模式進行交換,不同的端口速率比值有不同的數據載荷門限,既確保了以pcie交換電路為中心的整個pcie裝置具有適中的數據交換平均延遲,又避免了數據載荷過大的事務包以存儲轉發模式交換時事務尾部發生錯誤重傳時過高的占用鏈路帶寬從而整體上提升了pcie裝置的交換性能;最后直通模式和存儲轉發模式都將當前交換事務寫入緩存避免了兩種交換模式分別采用不同的路徑交換產生的邏輯開銷并且簡化了控制。
附圖說明
35.圖1為本發明一種支持多模式交換的pcie交換電路交換方法流程圖;
36.圖2為本發明具體實施例中pcie交換電路的簡要原理圖;
37.圖3為本發明一種支持多模式交換的pcie交換電路交換裝置示意圖。
具體實施方式
38.下面結合具體的實施例對本發明做進一步的詳細說明,所述是對本發明的解釋而不是限定。
39.為了使本技術領域的人員更好地理解本發明方案,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分的實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬于本發明保護的范圍。
40.需要說明的是,本發明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數據在適當情況下可以互換,以便這里描述的本發明的實施例能夠以除了在這里圖示或描述的那些以外的順序實施。此外,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統、產品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對于這些過程、方法、產品或設備固有的其它步驟或單元。
41.本發明提供一種支持多模式交換的pcie交換電路交換方法,如圖1所示,包括以下步驟:
42.s1:對當前接收的交換事務的入端口和出端口的通信速率進行比較,并解析該交換事務的事務類型和包含的數據載荷長度;
43.s2:從入端口進入的需要交換到出端口的所有np事務包、不帶數據載荷的完成包、消息請求包、數據載荷長度不大于一個雙字的完成包和存儲器寫請求包選擇存儲轉發交換模式,并以存儲轉發模式交換到出端口;
44.s3:對于從入端口進入的需要交換到出端口的帶數據載荷且數據載荷長度大于一個雙字的完成事務和存儲器寫請求包依據入端口和出端口的通信速率比較結果,將所帶數據載荷的長度選擇直通交換或者存儲轉發模式進行交換;
45.s4:將采用直通模式或存儲轉發模式的當前交換的事務寫入緩存,事務寫入緩存的同時將選擇的當前事務交換模式信息存儲在緩存中;
46.s5:按讀取的事務交換信息確定當前事務的交換模式,若為直通模式,則從該入端口進入的帶數據載荷的完成事務和mwr事務以直通模式交換到該出端口,否則以存儲轉發模式進行該事務的轉發。
47.優選的,所述步驟s3中在判斷選擇直通交換或者存儲轉發模式時,若入端口的通信速率大于或等于出端口的通信速率時,從該入端口進入的帶數據載荷且數據載荷長度大于一個雙字的完成包和存儲器寫請求包選擇直通交換模式;
48.若入端口的通信速率小于出端口的通信速率時,從該入端口進入的需要交換到該出端口的帶數據載荷的完成包和存儲器寫請求包所帶數據載荷的長度超過門限時選擇直通模式交換,否則選擇存儲轉發模式交換。
49.優選的,所述數據載荷長度的門限由入端口和出端口的通信速率比值確定,其比
值越小門限值越大。
50.優選的,所述步驟s4中事務的寫入過程中事務發生錯誤時,若當前事務選擇為存儲轉發交換模式時,清除緩存中的當前事務的緩存部分并不再存儲當前事務的剩余部分;
51.若當前事務選擇為直通交換模式時,繼續接收當前事務并在當前事務接收結束時在緩存中事務的尾部標記錯誤標記位。
52.優選的,所述pcie交換電路內部事務的交換模式與交換的入出端口、交換事務類型和包含的數據載荷長度相關,其交換模式為動態交換模式。
53.優選的,同一入端口和出端口組成的交換線路,若為不同的事務,則在pcie交換電路內的交換模式可能不同;
54.在入端口和出端口的鏈路通信速率保持不變時,若為同一事務在同一交換線路內,則其交換模式相同;
55.當入端口或者出端口的鏈路通信速率因鏈路重訓練發生變化時,若為同一事務在同一交換線路內,則其交換模式與通信速率變化前可能不同。
56.本發明提供一種支持多模式交換的pcie交換電路交換裝置,如圖2所示,包括:
57.寫入與緩存模塊,用于寫入交換事務包,并在寫入的同時基于包信息和速率比較查詢模塊輸出的輸入輸出端口速率比較信息生成交換模式信息,并將當前事務包與交換模式信息同時寫入緩存;
58.包解析模塊,用于從入端口的端口控制器接收進入pcie交換電路的各種交換事務,依據事務頭信息解析事務的類型、數據載荷長度和目標出端口并對事務的正確性進行檢測,將事務頭部信息未檢測出錯誤的交換事務及其解析結果、檢測的錯誤狀態送入寫入與緩存模塊;
59.速率比較查詢表模塊,用于獲得pcie交換電路中各個端口的當前通信速率并對不同入端口、出端口的速率比較,將當前入端口接收的事務對應的入端口和出端口的通信速率比較結果送往寫入與緩存模塊;
60.讀取與交換模塊,用于讀取寫入與緩存模塊存儲的交換事務及其交換模式信息,按照交換模式信息選擇當前事務的交換模式并擇機啟動交換;
61.出端接收模塊,用于從接收讀取與交換模塊接收交換事務包,將事務包按照端口控制器的接口要求送給端口控制器進行發送。
62.優選的,所述寫入與緩存模塊用于在當前事務的寫入過程中包解析模塊檢測到事務發生ecrc等錯誤時進行判斷,若當前事務為選擇存儲轉發交換模式時,則清除緩存中的當前事務的緩存部分并不再存儲當前事務的剩余部分;
63.若當前事務為選擇直通交換模式時,則繼續接收當前事務并在當前事務接收結束時在緩存中事務的尾部標記錯誤標記位。
64.優選的,所述讀取與交換模塊用于在選擇直通模式時依據讀取的交換模式信息立即啟動交換或者等待緩存中的數據達到預設數量后將當前事務緩存讀取并交換到出端接收模塊;
65.在選擇存儲轉發模式時,當緩存中存儲完整個事務包后將事務讀取并交換到出端接收模塊;當讀取與交換模塊讀取的緩存中事務的尾部錯誤標記位有效時將錯誤信息通知給出端接收模塊。
66.優選的,所述讀取與交換模塊用于對從入端口進入的需要交換到出端口的所有np事務包、不帶數據載荷的完成包、消息請求包、數據載荷長度不大于一個雙字的完成包和存儲器寫請求包生成表示存儲轉發交換模式的交換模式信息。
67.本發明提供一種優選實施例為:
68.如圖3所示,該款pcie交換電路共有八個端口,每個端口的物理層和端口控制器和交換裝置相連,也與其它應用邏輯相連;該實施例每個端口的物理層和端口控制器負責從pcie物理鏈路上接收對端裝置發送的字符信息,將需要從其它端口交換前推的事務包提交給交換裝置,由交換裝置動態選擇合適的交換模式后將事務交換到其它端口的物理層和端口控制器;交換裝置向其它應用邏輯輸出檢測的事務錯誤狀態。圖1中的其它應用邏輯不屬于本發明的內容,只是為了配合說明本發明實施例電路的原理,是指不屬于pcie事務交換的任何其它功能,比如,可以是包含中斷處理功能、配置功能、故障處理功能等在內的邏輯集合,這里不做限制,為突出本發明的內容,也不再對其它應用邏輯進行贅述。
69.如圖2所示,一種支持多模式交換的pcie交換電路交換裝置由入端口的包解析模塊、寫入與緩存模塊、速率比較查詢表模塊、讀取與交換模塊、出端口的出端接收模塊組成,支持直通和存儲轉發兩種交換模式;
70.包解析模塊,用于從入端口的端口控制器接收進入pcie交換電路的各種交換事務,依據事務頭中的fmt[2:0]和type[4:0]域解析事務的類型,依據事務頭的length[9:0]域解析數據載荷長度,依據事務頭中的地址、請求者標識符(requester id)和完成者標識符(completer id)、type[2:0]域等信息確定目標出端口,并依據端口控制器提供的數據鏈路層和事務層ecrc校驗檢查結果等事務信息進行事務的正確性檢測,將包頭未檢測出錯誤的交換事務及其解析結果、檢測的錯誤狀態tlperr送入寫入與緩存模塊,同時將包頭或者數據載荷部分檢出的錯誤送往位于交換裝置外的其它應用邏輯中的故障處理邏輯;
[0071]
速率比較查詢表模塊,用于依據各個端口的鏈路狀態寄存器(link status register)中的“協商的鏈路寬度”和“當前鏈路速率”狀態域獲得pcie交換電路中各個端口的當前通信速率并對不同入端口、出端口的速率比較,將當前入端口接收的事務對應的入端口和出端口的通信速率比值fprate送往寫入與緩存模塊;該實施例的端口的鏈路寬度最大為8,最大單向通信速率為5gbps
×
8=40gbps,所有端口均可以協商到單通路鏈路寬度、單通路2.5gbps的鏈路速率。如表1分析,本實施例的入端和出端口的通信速率比較值fprate設計為4位,可以表示出1/16、1/8、1/4、1/2、1/1五種情況。
[0072]
表1
[0073]
[0074][0075]
寫入與緩存模塊,用于將交換事務包寫入緩存模塊,寫入的同時依據包解析模塊輸出的包信息和速率比較查詢模塊輸出的輸入輸出端口速率比較信息fprate生成交換模式信息sfthrld,在將當前事務包寫入緩存的同時將生成的交換模式信息sfthrld同時寫入緩存;當事務的寫入過程中收到的包解析模塊輸出的tlperr有效時:如果當前事務選擇為存儲轉發交換模式時,清除緩存中的當前事務的緩存部分并不再存儲當前事務的剩余部分;如果當前事務選擇為直通交換模式時,繼續接收當前事務并在當前事務接收結束時在緩存中事務的尾部標記錯誤標記位tlperr;
[0076]
對于np事務包、不帶數據載荷的完成包、消息請求包、數據載荷長度不大于一個雙字(dw)的完成包和存儲器寫請求包(mwr)生成的交換模式信息sfthrld為0011,表示存儲轉發模式;對于從入端口進入的需要交換到出端口的帶數據載荷且數據載荷長度大于一個雙字的完成包和存儲器寫請求包:
[0077]
1)當入端口的通信速率大于或等于出端口的通信速率時,從該入端口進入的上述帶數據載荷且數據載荷長度大于一個雙字的完成包和存儲器寫請求包寫入與緩存模塊生成的交換模式信息sfthrld為0000,表示直通模式;
[0078]
2)當入端口的通信速率小于出端口的通信速率時,從入端口進入的需要交換到出端口的帶數據載荷且數據載荷長度大于一個雙字的完成包和mwr事務包其所帶數據載荷的長度超過門限時,生成的交換模式信息sfthrld等于輸入輸出端口通信速率比較編碼fprate,表示直通模式;否則,生成的交換模式信息sfthrld為0011,表示存儲轉發模式;所述數據載荷長度的門限取決于fprate表示的入端口和出端口的通信速率比值,當fprate表示的速率比值大于或等于1/4時數據載荷長度的門限為128字節,當fprate表示的速率比值為1/8時數據載荷長度的門限為512字節;當fprate表示的速率比值為1/16時數據載荷長度的門限為1024字節;
[0079]
讀取與交換模塊,用于讀取寫入與緩存模塊存儲的交換事務及其交換模式信息,按照交換模式信息選擇當前事務的交換模式并擇機啟動交換:當讀取的交換模式信息sfthrld為0000表示選擇直通模式且入端口通信速率大于或等于出端口通信速率,立即啟動交換并讀取事務的剩余部分向出端口進行交換;當讀取的sfthrld為0011時表示選擇存儲轉發模式,當緩存中儲存了完整事務包后讀取并交換到出端接收模塊;當讀取的sfthrld為1000、1100、1110、1111時表示選擇直通模式且入端口通信速率小于出端口通信速率,當緩存中存儲的數據量lstore和事務的長度域指示的數據長度ltlp滿足lstore≥ltlp
×
sfthrld/16這一條件后將帶數據載荷的完成事務和p事務讀取并交換到出端接收模塊;
[0080]
進一步的,當讀取與交換模塊讀取的緩存中事務的尾部錯誤標記位tlperr有效時讀取與交換模塊以信號的形式將tlperr有效信息通知給出端接收模塊;
[0081]
出端接收模塊,用于從接收讀取與交換模塊接收交換事務包,將事務包按照端口控制器的接口要求送給端口控制器進行發送;在事務包的尾部接收時,如果讀取與交換模
塊以信號通知該事務tlperr有效,出端接收模塊在將當前事務包發送給端口控制器時使能端口控制器的錯誤指示信號,使得端口控制器以edb(end data bad)符號結束當前事務包。
[0082]
最后應說明的是:以上各實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明實施例技術方案的范圍。
技術特征:
1.一種支持多模式交換的pcie交換電路交換方法,其特征在于,包括以下步驟:s1:對當前接收的交換事務的入端口和出端口的通信速率進行比較,并解析該交換事務的事務類型和包含的數據載荷長度;s2:從入端口進入的需要交換到出端口的所有np事務包、不帶數據載荷的完成包、消息請求包、數據載荷長度不大于一個雙字的完成包和存儲器寫請求包選擇存儲轉發交換模式,并以存儲轉發模式交換到出端口;s3:對于從入端口進入的需要交換到出端口的帶數據載荷且數據載荷長度大于一個雙字的完成事務和存儲器寫請求包依據入端口和出端口的通信速率比較結果,將所帶數據載荷的長度選擇直通交換或者存儲轉發模式進行交換;s4:將采用直通模式或存儲轉發模式的當前交換的事務寫入緩存,事務寫入緩存的同時將選擇的當前事務交換模式信息存儲在緩存中;s5:按讀取的事務交換信息確定當前事務的交換模式,若為直通模式,則從該入端口進入的帶數據載荷的完成事務和mwr事務以直通模式交換到該出端口,否則以存儲轉發模式進行該事務的轉發。2.根據權利要求1所述一種支持多模式交換的pcie交換電路交換方法,其特征在于,所述步驟s3中在判斷選擇直通交換或者存儲轉發模式時,若入端口的通信速率大于或等于出端口的通信速率時,從該入端口進入的帶數據載荷且數據載荷長度大于一個雙字的完成包和存儲器寫請求包選擇直通交換模式;若入端口的通信速率小于出端口的通信速率時,從該入端口進入的需要交換到該出端口的帶數據載荷的完成包和存儲器寫請求包所帶數據載荷的長度超過門限時選擇直通模式交換,否則選擇存儲轉發模式交換。3.根據權利要求2所述一種支持多模式交換的pcie交換電路交換方法,其特征在于,所述數據載荷長度的門限由入端口和出端口的通信速率比值確定,其比值越小門限值越大。4.根據權利要求1所述一種支持多模式交換的pcie交換電路交換方法,其特征在于,所述步驟s4中事務的寫入過程事務發生錯誤時,若當前事務選擇為存儲轉發交換模式時,清除緩存中的當前事務的緩存部分并不再存儲當前事務的剩余部分;若當前事務選擇為直通交換模式時,繼續接收當前事務并在當前事務接收結束時在緩存中事務的尾部標記錯誤標記位。5.根據權利要求1所述一種支持多模式交換的pcie交換電路交換方法,其特征在于,所述pcie交換電路內部事務的交換模式與交換的入出端口、交換事務類型和包含的數據載荷長度相關,其交換模式為動態交換模式。6.根據權利要求1所述一種支持多模式交換的pcie交換電路交換方法,其特征在于,同一入端口和出端口組成的交換線路,若為不同的事務,則在pcie交換電路內的交換模式可能不同;在入端口和出端口的鏈路通信速率保持不變時,若為同一事務在同一交換線路內,則其交換模式相同;當入端口或者出端口的鏈路通信速率因鏈路重訓練發生變化時,若為同一事務在同一交換線路內,則其交換模式與通信速率變化前可能不同。7.一種支持多模式交換的pcie交換電路交換裝置,其特征在于,基于權利要求1-6所述
任意項一種支持多模式交換的pcie交換電路交換方法,包括:寫入與緩存模塊,用于寫入交換事務包,并在寫入的同時基于包信息和速率比較查詢模塊輸出的輸入輸出端口速率比較信息生成交換模式信息,并將當前事務包與交換模式信息同時寫入緩存;包解析模塊,用于從入端口的端口控制器接收進入pcie交換電路的各種交換事務,依據事務頭信息解析事務的類型、數據載荷長度和目標出端口并對事務的正確性進行檢測,將事務頭部信息未檢測出錯誤的交換事務及其解析結果、檢測的錯誤狀態送入寫入與緩存模塊;速率比較查詢表模塊,用于獲得pcie交換電路中各個端口的當前通信速率并對不同入端口、出端口的速率比較,將當前入端口接收的事務對應的入端口和出端口的通信速率比較結果送往寫入與緩存模塊;讀取與交換模塊,用于讀取寫入與緩存模塊存儲的交換事務及其交換模式信息,按照交換模式信息選擇當前事務的交換模式并擇機啟動交換;出端接收模塊,用于從讀取與交換模塊接收交換事務包,將事務包按照端口控制器的接口要求送給端口控制器進行發送。8.根據權利要求7所述一種支持多模式交換的pcie交換電路交換裝置,其特征在于,所述寫入與緩存模塊用于在當前事務的寫入過程中包解析模塊檢測到事務發生ecrc等錯誤時進行判斷,若當前事務為選擇存儲轉發交換模式時,則清除緩存中的當前事務的緩存部分并不再存儲當前事務的剩余部分;若當前事務為選擇直通交換模式時,則繼續接收當前事務并在當前事務接收結束時在緩存中事務的尾部標記錯誤標記位。9.根據權利要求7所述一種支持多模式交換的pcie交換電路交換裝置,其特征在于,所述讀取與交換模塊用于在選擇直通模式時依據讀取的交換模式信息立即啟動交換或者等待緩存中的數據達到預設數量后將當前事務緩存讀取并交換到出端接收模塊;在選擇存儲轉發模式時,當緩存中存儲完整個事務包后將事務讀取并交換到出端接收模塊;當讀取與交換模塊讀取的緩存中事務的尾部錯誤標記位有效時將錯誤信息通知給出端接收模塊。10.根據權利要求7所述一種支持多模式交換的pcie交換電路交換裝置,其特征在于,所述讀取與交換模塊用于對從入端口進入的需要交換到出端口的所有np事務包、不帶數據載荷的完成包、消息請求包、數據載荷長度不大于一個雙字的完成包和存儲器寫請求包生成表示存儲轉發交換模式的交換模式信息。
技術總結
本發明提供一種支持多模式交換的PCIe交換電路交換方法和裝置,對當前接收的交換事務的入端口和出端口的通信速率進行比較,并解析該交換事務的事務類型和包含的數據載荷長度;選擇存儲轉發交換模式,并以存儲轉發模式交換到出端口;對于從入端口進入的需要交換到出端口的帶數據載荷且數據載荷長度大于一個雙字的完成事務和存儲器寫請求包依據入端口和出端口的通信速率比較結果,將所帶數據載荷的長度選擇直通交換或者存儲轉發模式進行交換;基于PCIe交換電路將當前交換的事務寫入緩存,事務寫入緩存的同時將選擇的當前事務交換模式信息存儲在緩存中;按讀取的事務交換信息確定當前事務的交換模式,本申請由硬件自動且動態的進行當前交換事務的交換模式選擇,提高了裝置的交換性能。置的交換性能。置的交換性能。
