報文傳輸方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種報文傳輸方法和裝置。基于本發(fā)明,發(fā)送端的邏輯芯片通過非PCIE總線從本端CPU接收待發(fā)送的數(shù)據報文,為接收到的數(shù)據報文增加用于表示該數(shù)據報文的數(shù)據載荷長度的字節(jié)填充,然后將數(shù)據報文的所述字節(jié)填充和數(shù)據載荷封裝至TLP分片的載荷字段中、并通過PCIE總線向接收端發(fā)送;相應地,接收端的邏輯芯片通過PCIE總線從發(fā)送端接收TLP分片,依據TLP分片的載荷字段中用于表示數(shù)據報文的數(shù)據載荷長度的字節(jié)填充將TLP分片的載荷字段中的對應長度的數(shù)據載荷確定為該字節(jié)填充所屬數(shù)據報文的數(shù)據載荷,然后將依據所述字節(jié)填充確定的對應長度的數(shù)據載荷恢復為對應的數(shù)據報文、并通過非PCIE總線向本端CPU發(fā)送。從而,基于本發(fā)明能夠提高PCIE總線的帶寬利用率。
【專利說明】報文傳輸方法和裝置
【技術領域】
[0001]本發(fā)明涉及數(shù)據報文傳輸技術,特別涉及基于PCIE (Peripheral ComponentInterconnect Express,高速周邊元件互連)總線的一種報文傳輸方法和裝置。
【背景技術】
[0002]在基于PCIE總線的傳輸過程中,數(shù)據報文需要被發(fā)送端封裝為TLP(TransactionLayer Packet,事務層包)分片傳輸至接收端、再由接收方從TLP分片中解封裝得到數(shù)據報文。
[0003]請參見圖1,發(fā)送端和接收端均包括帶有PCIE接口的CPU,且發(fā)送端和接收端的CPU的PCIE接口通過PCIE總線相互連接;發(fā)送端的CPU負責將待發(fā)送的數(shù)據報文的數(shù)據載荷封裝至TLP分片、并從其PCIE接口連接的PCIE總線向接收端發(fā)送TLP分片;接收端的CPU從其PCIE接口接收到發(fā)送端通過PCIE總線發(fā)來的TLP分片、并從TLP分片中解封裝得到數(shù)據載荷以恢復數(shù)據報文。
[0004]請參見圖2,用于封裝數(shù)據報文TLP分片從內至外依次包括:內層用于封裝數(shù)據載荷的Data (載荷)字段,Transaction Layer (事務層)的一個12字節(jié)的Header (頭)字段和一個4字節(jié)的ECRC (End-to-end Cyclic Redundancy Check,端到端循環(huán)冗余校驗碼)字段,Data Link Layer (數(shù)據鏈路層)的一個2字節(jié)的SN (Sequence Number,序列號)字段和一個4字節(jié)的LCRC (Link Cyclic Redundancy Check,鏈路循環(huán)冗余校驗碼)字段,以及,Physical Layer (物理層)的兩個I字節(jié)的Framing (框架)字段。
[0005]其中,只要一個數(shù)據報文的數(shù)據載荷長度未超過Data字段的載荷長度上限,該數(shù)據報文的數(shù)據載荷就可以全部被封裝在一個TLP分片的Data字段中;但若一個數(shù)據報文的數(shù)據載荷長度超過Data字段的載荷長度上限,則該數(shù)據報文的數(shù)據載荷可以被分別封裝至連續(xù)的多個TLP分片的Data字段中。另外,無論TLP分片的Data字段中封裝的是一個數(shù)據報文的全部數(shù)據載荷還是部分數(shù)據載荷,一個TLP分片的Data字段中都只能封裝同一個數(shù)據報文的數(shù)據載荷。
[0006]基于上述方式,從發(fā)送端向接收端發(fā)送的數(shù)據報文會以至少一個TLP分片的形式傳輸,而TLP分片的數(shù)量就取決于數(shù)據報文的數(shù)據載荷長度。但接收端雖然能夠確定其接收到的每個TLP中封裝的數(shù)據載荷屬于同一個數(shù)據報文,但由于其并不知曉該數(shù)據報文的長度,因而無法確定該數(shù)據報文所對應的TLP分片數(shù)量,從而無法確定其是否完成對該數(shù)據報文的所有TLP分片的接收。
[0007]為此,現(xiàn)有技術在發(fā)送端與接收端之間采用BD(Buffer Descriptor,緩存描述符)機制,該BD機制由發(fā)送端在完成對一個數(shù)據報文的所有TLP分片后更新接收端的BD、并由接收方依據發(fā)送端對其BD的更新來確定是否完成對該數(shù)據報文的所有TLP分片的接收。
[0008]請參見圖3,傳輸一個數(shù)據報文的過程包括:
[0009]S301,發(fā)送端將數(shù)據報文的數(shù)據載荷封裝在TLP分片中、并通過PCIE總線向接收端發(fā)送;[0010]S302,接收端從PCIE總線接收到封裝有數(shù)據載荷的TLP分片,并通過PCIE總線向發(fā)送端回應封裝有表示確收TLP分片的ACK(應答)信息的DLLP(Data Link Layer Packet,數(shù)據鏈路層包)、以及封裝有Update Credit (更新信用度)信息的DLLP ;
[0011]實際應用中,如果一個數(shù)據報文只需要占用一個TLP分片,則只需要針對這一個TLP分片執(zhí)行一次S301?S302、然后即可開始執(zhí)行S303,但如果一個數(shù)據報文需要占用至少兩個TLP分片,則針對每個TLP分片均需要執(zhí)行一次S301?S302、待針對所有的TLP分片均執(zhí)行了 S301?S302之后再開始執(zhí)行S303 ;
[0012]S303,發(fā)送端在封裝有該數(shù)據報文的數(shù)據載荷的所有TLP分片均完成發(fā)送后,會將一 BD更新數(shù)據報文封裝至TLP分片中發(fā)送至接收端;
[0013]S304,接收端在接收到封裝有BD更新報文的TLP分片后,確認此前傳輸?shù)膶儆谕粋€數(shù)據報文的TLP分片已接收完畢,并向發(fā)送端回應封裝有表示確收BD更新報文的ACK信息的DLLP、以及封裝有Update Credit信息的DLLP ;
[0014]S305,接收端將屬于同一個數(shù)據報文的TLP分片中的數(shù)據載荷恢復為該數(shù)據報文,并將一 BD回收報文封裝在TLP分片中向發(fā)送端發(fā)送、以觸發(fā)發(fā)送端繼續(xù)發(fā)送下一個數(shù)據報文;
[0015]S306,發(fā)送端接收到封裝有BD回收報文的TLP分片后,向接收端回應封裝有表示確收BD回收報文的ACK信息的DLLP、以及封裝有Update Credit信息的DLLP。
[0016]至此,一個數(shù)據報文的傳輸過程結束。
[0017]在上述如圖3所示的一次傳輸過程中:每個TLP分片的Data字段會產生載荷開銷(數(shù)據載荷為M字節(jié)、M為正整數(shù),BD更新報文和BD回收報文均為8字節(jié));每個TLP分片的Transaction Layer>Data Link Layer 以及 Physical Layer 的各字段還會產生總共 24 字節(jié)的控制信息開銷;以及,每個DLLP也會產生8字節(jié)的開銷。
[0018]因此,在一個數(shù)據報文的數(shù)據載荷只占用一個TLP分片的情況下,發(fā)送端至接收端的單向傳輸方向上傳輸?shù)?個TLP和2個DLLP總共會產生(M+24)+ (8+24)+8 X 2=M+72字節(jié)的單向帶寬開銷,單向帶寬利用率為M/ (M+72);如果再算上接收端至發(fā)送端的單向傳輸方向上傳輸?shù)腎個TLP和4個DLLP,S卩,總共(8+24) +8X4=64字節(jié)的開銷,則總共產生M+136字節(jié)的雙向帶寬開銷,雙向帶寬利用率為M/ (M+136)。
[0019]假設一個數(shù)據報文的數(shù)據載荷的長度M為60字節(jié)、且該數(shù)據報文的數(shù)據載荷只需占用一個TLP分片,則單向帶寬利用率只有60/132=45.5%,雙向帶寬利用率只有60/196=30.6%。這種情況下,對于一條5GX 4Lane的PCIE總線鏈路,其20G的可用物理帶寬經過8b/10b編碼后形成16G的真實物理帶寬,但基于30.6%的雙向帶寬利用率,實際只能產生4.9Gbps的速率。一個數(shù)據報文的數(shù)據載荷占用至少兩個TLP分片的情況也是同理。
[0020]可見,現(xiàn)有的PCIE總線的帶寬利用率不高。而且,由于一個TLP分片的Data字段只能被同一個數(shù)據報文的數(shù)據載荷獨占,因此,當數(shù)據報文的數(shù)據載荷長度M較小時,PCIE總線的帶寬利用率在小包傳輸時會被進一步降低。
【發(fā)明內容】
[0021 ] 有鑒于此,本發(fā)明提供了 一種報文傳輸方法和裝置。
[0022]本發(fā)明提供的一種報文傳輸方法,該報文傳輸方法應用于數(shù)據報文傳輸?shù)陌l(fā)送端的邏輯芯片中、并包括:
[0023]通過非PCIE總線從本端的CPU接收待發(fā)送的數(shù)據報文;
[0024]為接收到的數(shù)據報文增加用于表示該數(shù)據報文的數(shù)據載荷長度的字節(jié)填充;
[0025]將數(shù)據報文的所述字節(jié)填充和數(shù)據載荷封裝至TLP分片的載荷字段中;
[0026]將TLP分片通過PCIE總線向接收端發(fā)送。
[0027]可選地,若一個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)小于等于一個TLP分片的載荷長度上限,則該數(shù)據報文的所述字節(jié)填充及數(shù)據載荷被封裝在一個TLP分片的載荷字段中;若一個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)長度大于一個TLP分片的載荷長度上限,則該數(shù)據報文的所述字節(jié)填充以及該數(shù)據報文的數(shù)據載荷的一部分被封裝在一個TLP分片的載荷字段中、該數(shù)據報文的數(shù)據載荷的其它部分被封裝至后續(xù)連續(xù)的至少一個其它TLP分片的載荷字段中。進一步可選地,若至少兩個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)長度之和小于等于一個TLP分片的載荷長度上限,則該至少兩個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷被封裝在同一個TLP分片的載荷字段中。
[0028]可選地,每個數(shù)據報文的所述字節(jié)填充位于該數(shù)據報文的數(shù)據載荷的前部。
[0029]本發(fā)明提供的另一種報文傳輸方法,該報文傳輸方法應用于數(shù)據報文傳輸?shù)慕邮斩说倪壿嬓酒?、并包?
[0030]通過PCIE總線從發(fā)送端接收TLP分片;
[0031]依據TLP分片的載荷字段中用于表示數(shù)據報文的數(shù)據載荷長度的字節(jié)填充,將TLP分片的載荷字段中的對應長度的數(shù)據載荷確定為該字節(jié)填充所屬數(shù)據報文的數(shù)據載荷;
[0032]將依據所述字節(jié)填充確定的對應長度的數(shù)據載荷恢復為對應的數(shù)據報文;
[0033]將恢復得到的數(shù)據報文通過非PCIE總線向本端的CPU發(fā)送。
[0034]可選地,若一個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)小于等于一個TLP分片的載荷長度上限,則從一個TLP分片的載荷字段中識別出該數(shù)據報文的所述字節(jié)填充以及該數(shù)據報文的數(shù)據載荷的全部;若一個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)長度大于一個TLP分片的載荷長度上限,則從一個TLP分片的載荷字段中識別出該數(shù)據報文的所述字節(jié)填充以及該數(shù)據報文的數(shù)據載荷的一部分、并從后續(xù)連續(xù)的至少一個其它TLP分片的載荷字段中識別出該數(shù)據報文的數(shù)據載荷的其它部分。進一步可選地,若至少兩個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)長度之和小于等于一個TLP分片的載荷長度上限且被封裝在同一個TLP分片,則從該TLP分片的載荷字段中識別出該至少兩個數(shù)據報文中的每一個的所述字節(jié)填充及數(shù)據載荷。
[0035]可選地,每個數(shù)據報文的所述字節(jié)填充位于該數(shù)據報文的數(shù)據載荷的前部。
[0036]本發(fā)明提供的一種報文傳輸裝置,該報文傳輸裝置承載于數(shù)據報文傳輸?shù)陌l(fā)送端的邏輯芯片中、并包括:
[0037]內部接收模塊,通過非PCIE總線從本端的CPU接收待發(fā)送的數(shù)據報文;
[0038]字節(jié)填充模塊,為接收到的數(shù)據報文增加用于表示該數(shù)據報文的數(shù)據載荷長度的字節(jié)填充;
[0039]分片封裝模塊,將數(shù)據報文的所述字節(jié)填充和數(shù)據載荷封裝至TLP分片的載荷字段中;[0040]外部發(fā)送模塊,將TLP分片通過PCIE總線向接收端發(fā)送。
[0041]可選地,若一個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)小于等于一個TLP分片的載荷長度上限,則該數(shù)據報文的所述字節(jié)填充及數(shù)據載荷被封裝在一個TLP分片的載荷字段中、并獨占一個TLP分片的載荷字段;若一個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)長度大于一個TLP分片的載荷長度上限,則該數(shù)據報文的所述字節(jié)填充以及該數(shù)據報文的數(shù)據載荷的一部分被封裝在一個TLP分片的載荷字段中、該數(shù)據報文的數(shù)據載荷的其它部分被封裝至后續(xù)連續(xù)的至少一個其它TLP分片的載荷字段中。進一步可選地,若至少兩個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)長度之和小于等于一個TLP分片的載荷長度上限,則該至少兩個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷被封裝在同一個TLP分片的載荷字段中。
[0042]可選地,每個數(shù)據報文的所述字節(jié)填充位于該數(shù)據報文的數(shù)據載荷的前部。
[0043]本發(fā)明提供的另一種報文傳輸裝置,該報文傳輸裝置承載于數(shù)據報文傳輸?shù)慕邮斩说倪壿嬓酒小⒉?
[0044]外部接收模塊,通過PCIE總線從發(fā)送端接收TLP分片;
[0045]長度確定模塊,依據TLP分片的載荷字段中用于表示數(shù)據報文的數(shù)據載荷長度的字節(jié)填充,將TLP分片的載荷字段中的對應長度的數(shù)據載荷確定為該字節(jié)填充所屬數(shù)據報文的數(shù)據載荷;
[0046]報文恢復模塊,將依據所述字節(jié)填充確定的對應長度的數(shù)據載荷恢復為對應的數(shù)據報文;
[0047]內部發(fā)送模塊,將恢復得到的數(shù)據報文通過非PCIE總線向本端的CPU發(fā)送。
[0048]可選地,若一個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)小于等于一個TLP分片的載荷長度上限,則從一個TLP分片的載荷字段中識別出該數(shù)據報文的所述字節(jié)填充以及該數(shù)據報文的數(shù)據載荷的全部;若一個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)長度大于一個TLP分片的載荷長度上限,則從一個TLP分片的載荷字段中識別出該數(shù)據報文的所述字節(jié)填充以及該數(shù)據報文的數(shù)據載荷的一部分、并從后續(xù)連續(xù)的至少一個其它TLP分片的載荷字段中識別出該數(shù)據報文的數(shù)據載荷的其它部分。進一步可選地,若至少兩個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)長度之和小于等于一個TLP分片的載荷長度上限且被封裝在同一個TLP分片,則從該TLP分片的載荷字段中識別出該至少兩個數(shù)據報文中的每一個的所述字節(jié)填充及數(shù)據載荷。
[0049]可選地,每個數(shù)據報文的所述字節(jié)填充位于該數(shù)據報文的數(shù)據載荷的前部。
[0050]由此可見,基于本發(fā)明的報文傳輸方法和裝置,發(fā)送端可以在TLP分片的載荷字段中攜帶數(shù)據報文的數(shù)據載荷長度,相應地,接收端可以從TLP分片的載荷字段中識別出數(shù)據載荷長度。因此,在發(fā)送端和接收端之間就無需通過BD機制來通告以及識別數(shù)據報文的傳輸完成,從而能夠省去BD機制占用的帶寬開銷,進而能夠提高PCIE總線的帶寬利用率。而且,由于每個數(shù)據報文的數(shù)據載荷都能夠通過對應的數(shù)據載荷長度予以標識,因而當數(shù)據報文的數(shù)據載荷長度較小時,多個數(shù)據報文的數(shù)據載荷可以共用一個TLP分片的載荷字段,從而能夠減少小包傳輸?shù)陌l(fā)生概率,進而能夠在小包傳輸時進一步提高PCIE總線的帶寬利用率?!緦@綀D】
【附圖說明】
[0051]圖1為現(xiàn)有技術中用于實現(xiàn)PCIE總線傳輸?shù)目蚣芙Y構示意圖;
[0052]圖2為TLP分片的結構示意圖;
[0053]圖3為基于如圖1所示框架結構實現(xiàn)的傳輸交互過程示意圖;
[0054]圖4為本發(fā)明實施例中用于實現(xiàn)PCIE總線傳輸?shù)脑硇允疽鈭D;
[0055]圖5a至圖5c為基于如圖4所示原理的TLP分片的封裝結構示意圖;
[0056]圖6為實現(xiàn)如圖4所示原理的硬件框架結構示意圖;
[0057]圖7為本發(fā)明實施例基于如圖5所示框架結構實現(xiàn)的傳輸交互過程示意圖;
[0058]圖8a和圖8b本發(fā)明實施例中的報文傳輸方法的示例性流程示意圖。
【具體實施方式】
[0059]為使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下參照附圖對本申請實施例進行詳細說明。
[0060]針對PCIE總線傳輸?shù)膸捓寐什桓叩膯栴},本實施例首先進行了如下分析:從如圖3所示的流程可以看出,只有S301中由發(fā)送端向接收端發(fā)送的TLP分片、以及S302中由接收端向發(fā)送端發(fā)送的DLLP真正實現(xiàn)的是數(shù)據載荷的傳輸過程,而S303中傳輸?shù)?2字節(jié)的I個TLP分片、S304中傳輸?shù)墓?6字節(jié)的2個DLLP、S305中傳輸?shù)?2字節(jié)的I個TLP分片、以及S306中傳輸?shù)墓?6字節(jié)的2個DLLP均涉及BD機制,并產生總計96字節(jié)的帶寬開銷。即,在M+136的雙向帶寬開銷中,BD機制占據了其中的96字節(jié)。
[0061 ] 基于此,本實施例旨在省略PCIE傳輸中所使用的BD機制,以消除每個數(shù)據報文傳輸時由于BD機制所產生的96字節(jié)的帶寬開銷。
[0062]請參見圖4,在本實施例中,發(fā)送端先為數(shù)據報文增加表示數(shù)據載荷長度的字節(jié)填充(該字節(jié)填充可以為2字節(jié)),該字節(jié)填充可以位于數(shù)據載荷的前部,然后發(fā)送端再將該字節(jié)填充與數(shù)據載荷一同封裝在TLP分片的Data字段中。其中:
[0063]對于一個數(shù)據報文只封裝為一個TLP分片的情況,請在參見圖4的同時再結合圖5a,表示數(shù)據載荷長度的該字節(jié)填充能夠與全部的數(shù)據載荷封裝在這一個TLP分片的Data字段中,且表示數(shù)據載荷長度的該字節(jié)填充在Data字段中優(yōu)選地位于數(shù)據載荷的前部;
[0064]對于一個數(shù)據報文需要分為多個TLP分片封裝的情況,請在參見圖4的同時再結合圖5b,表示數(shù)據載荷長度的該字節(jié)填充可以與一部分數(shù)據載荷封裝一個TLP分片的Data字段中,且表示數(shù)據載荷長度的該字節(jié)填充優(yōu)選地與數(shù)據載荷位置靠前的一部分封裝在多個TLP中的第一個的Data字段中、并在Data字段中優(yōu)選地位于數(shù)據載荷位置靠前的一部分的前部;
[0065]另外,對于一個數(shù)據報文的數(shù)據載荷長度較小(可稱之為數(shù)據報文)的情況,請在參見圖4的同時再結合圖5c,若至少兩個數(shù)據報文的上述字節(jié)填充及數(shù)據載荷的總字節(jié)長度之和小于等于一個TLP分片的Data字段的載荷長度上限,則為了在小包傳輸時進一步提高PCIE總線的帶寬利用率,本實施例允許至少兩個數(shù)據報文的上述字節(jié)填充及數(shù)據載荷被封裝在同一個TLP分片的Data字段中,且每個數(shù)據報文的上述字節(jié)填充在Data字段中與該數(shù)據報文的數(shù)據載荷位置相鄰、并優(yōu)選地位于該數(shù)據報文的數(shù)據載荷的前部。
[0066]請再參見圖4,對應于發(fā)送端的處理方式,接收端可以從TLP分片的Data字段中識別出表示數(shù)據載荷長度的字節(jié)填充、并以此來判斷一個數(shù)據報文的所有數(shù)據載荷是否全部接收。其中,若表示數(shù)據載荷長度的字節(jié)填充位于其對應的數(shù)據報文的數(shù)據載荷的前部,則接收端在識別出該字節(jié)填充之后:
[0067]對于如圖5a所示的一個數(shù)據報文只封裝為一個TLP分片的情況,接收端可對當前TLP分片的Data字段中的接收內容進行字節(jié)計數(shù),當計數(shù)達到該字節(jié)填充所表示的數(shù)據載荷長度時,即認為該字節(jié)填充對應的數(shù)據報文的所有數(shù)據載荷已全部接收;
[0068]對于如圖5b所示的一個數(shù)據報文分為多個TLP分片封裝的情況,接收端可對當前TLP分片及其后續(xù)連續(xù)接收到的至少一個其它TLP分片的Data字段中的接收內容進行字節(jié)計數(shù),當計數(shù)達到該字節(jié)填充所表示的數(shù)據載荷長度時,即認為該字節(jié)填充對應的數(shù)據報文的所有數(shù)據載荷已全部接收;
[0069]另外,對于如圖5c所示的至少兩個數(shù)據報文的字節(jié)填充及數(shù)據載荷被封裝在同一個TLP分片的情況,接收端可按照與如圖5a所示的情況相同的方式依次對當前TLP分片中的每個數(shù)據報文的數(shù)據載荷進行計數(shù)。
[0070]如上可見,通過為數(shù)據報文增加表示數(shù)據載荷長度的字節(jié)填充、以及對增加了字節(jié)填充的數(shù)據報文進行TLP分片封裝,本實施例無需發(fā)送端和接收端之間通過BD機制即可使接收端能夠識別數(shù)據報文的數(shù)據載荷是否完成傳輸,從而能夠省去BD機制占用的帶寬開銷,進而能夠提高PCIE總線的帶寬利用率。而且,通過允許多個數(shù)據報文的數(shù)據載荷共用同一個TLP分片的Data字段,本實施例能夠減少小包傳輸?shù)陌l(fā)生,進而能夠在小包傳輸時進一步提高PCIE總線的帶寬利用率。
[0071]請參見圖6,本實施例可以在發(fā)送端和接收端均設置帶有PCIE接口的邏輯芯片,該邏輯芯片可以是例如FPGA (Field Programmable Gate Array,現(xiàn)場可編程門陣列)等任一種邏輯器件;發(fā)送端中的CPU和邏輯芯片通過內部總線相互連接、接收端中的CPU和邏輯芯片也通過內部總線相互連接,發(fā)送端的邏輯芯片的PCIE接口與接收端的邏輯芯片的PCIE接口通過PCIE總線相互連接。
[0072]相應地,發(fā)送端的CPU僅負責將待發(fā)送的數(shù)據報文提供給發(fā)送端的邏輯芯片,發(fā)送端的邏輯芯片負責為數(shù)據報文增加表示數(shù)據載荷長度的字節(jié)填充、并將帶有該字節(jié)填充的數(shù)據報文封裝為TLP分片;同理,接收端的邏輯芯片負責從接收到的TLP分片中識別表示數(shù)據載荷長度的字節(jié)填充、還依據字節(jié)填充表示的數(shù)據載荷長度將TLP分片中對應的數(shù)據載荷恢復為數(shù)據報文并發(fā)送給接收端的CPU。其中,由于發(fā)送端和接收端的CPU不再涉及TLP分片的封裝和解封裝,因而發(fā)送端和接收端中將CPU和邏輯芯片相互連接的內部總線為任一種非PCIE協(xié)議的總線,例如SPI4.2 (System Packet Interfaced:.2,4.2版本的本系統(tǒng)包接口)總線、或 XAUI (IOGbps Ethernet Attachment Unit Interface,萬兆以太連接單元接口)總線、或InterLaken (因特拉肯)總線等。
[0073]請參見圖7,基于上述原理和硬件框架,在通過PCIE總線傳輸一個數(shù)據報文時,每個TLP分片的傳輸過程如下:
[0074]S701,發(fā)送端的邏輯芯片為從本端CPU接收到的數(shù)據報文增加表示數(shù)據載荷長度的字節(jié)填充,然后將帶有該字節(jié)填充的數(shù)據報文封裝在當前的一個TLP分片中、并通過PCIE總線向接收端發(fā)送;
[0075]S702,接收端的邏輯芯片從PCIE總線接收到TLP分片、并依據TLP分片中表示數(shù)據載荷的字節(jié)填充恢復得到具有特征長度的數(shù)據載荷的數(shù)據報文,然后通過PCIE總線向發(fā)送端回應表示確收數(shù)據載荷的DLLP。
[0076]至此,一個TLP分片的傳輸過程結束。
[0077]下面,針對如圖7所示的上述傳輸過程在不同情況下產生的帶寬利用率進行詳細分析。
[0078]I)、一個數(shù)據報文只占據一個TLP分片的情況
[0079]在該情況下,一個數(shù)據報文的傳輸只需要執(zhí)行一次如圖7所示的傳輸過程,并且,在發(fā)送端至接收端的單項傳輸方向上只有一個TLP分片、在接收端至發(fā)送端的單向傳輸方向上有2個DLLP ;
[0080]此時,假設表示數(shù)據載荷長度的字節(jié)填充選用2字節(jié),則:
[0081]該TLP分片的Data字段會在PCIE總線產生M+2字節(jié)的載荷開銷、其余字段會在PCIE總線產生24字節(jié)的控制信息開銷,總計M+26字節(jié)的單向帶寬開銷、以及M/ (M+26)的單向帶寬利用率;
[0082]如果再算上接收端至發(fā)送端的單向傳輸方向上傳輸?shù)?個DLLP產生的共16字節(jié)的帶寬開銷,則總共產生M+42字節(jié)的雙向帶寬開銷、M/ (M+42)的雙向帶寬利用率。
[0083]可見,相比于現(xiàn)有的單向帶寬利用率M/ (M+72)、以及雙向帶寬利用率為M/(M+136),本實施例在一個數(shù)據報文只占據一個TLP分片時產生的M/ (M+26)的單向帶寬利用率、以及M/ (M+42)的雙向帶寬利用率都有了明顯提高。
[0084]例如,假設一個數(shù)據報文的數(shù)據載荷的長度M為60字節(jié)、且該數(shù)據報文的數(shù)據載荷只需占用一個TLP分片,則單向帶寬利用率能夠達到60/86=69.8%、其明顯高于現(xiàn)有方式的45.5%,雙向帶寬利用率能夠達到60/102=58.8%、其明顯高于現(xiàn)有方式的30.6%。相應地,對于一條5GX4Lane的PCIE總線鏈路,其20G的可用物理帶寬經過8b/10b編碼后形成16G的真實物理帶寬,并且,基于58.8%的雙向帶寬利用率,實際能夠產生9.4Gbps的速率、其明顯高于現(xiàn)有方式的4.9Gbps。
[0085]2)、一個數(shù)據報文需要占據N (N為大于等于2的正整數(shù))個TLP分片的情況
[0086]在情況下,一個數(shù)據報文的傳輸需要執(zhí)行N次如圖7所示的傳輸過程,并且,在發(fā)送端至接收端的單項傳輸方向上有N個TLP分片、接收端至發(fā)送端的單向傳輸方向上傳輸?shù)?2XN 個 DLLP ;
[0087]此時,假設表示數(shù)據載荷長度的字節(jié)填充選用2字節(jié),則:
[0088]N個TLP分片的Data字段總共會在PCIE總線產生M+2字節(jié)的載荷開銷、其余字段會在PCIE總線產生24XN字節(jié)的控制信息開銷,總計M+2+24XN字節(jié)的單向帶寬開銷、以及M/ (M+2+24XN)的單向帶寬利用率;
[0089]如果再算上接收端至發(fā)送端的單向傳輸方向上傳輸?shù)?XN個DLLP產生的共16 X N字節(jié)的帶寬開銷,則總共產生M+2+40 X N字節(jié)的雙向帶寬開銷、M/ (M+2+40 X N)的雙向帶寬利用率。
[0090]但若按照現(xiàn)有基于BD機制的傳輸方式,發(fā)送端至接收端的單向傳輸方向上需要傳輸N個用于實現(xiàn)數(shù)據載荷傳輸?shù)腡LP、I個用于實現(xiàn)BD機制的TLP分片以及2個用于實現(xiàn)BD機制的DLLP,接收端至發(fā)送端的單向傳輸方向上傳輸2XN個用于實現(xiàn)數(shù)據載荷傳輸應答的DLLP、2個用于實現(xiàn)BD機制的DLLP以及I個用于實現(xiàn)BD機制的TLP分片,相應地:[0091]在發(fā)送端至接收端的單向傳輸方向上總共產生(M+2+24XN) + (8+24)+8X2=M+24XN+50字節(jié)的單向帶寬開銷,單向帶寬利用率為M/ (M+24XN+50);
[0092]如果再算上接收端至發(fā)送端的單向傳輸方向上產生的(2XNX8)+(2X8)+(8+24)=16XN+48字節(jié)的開銷,則總共產生M+24XN+114字節(jié)的雙向帶寬開銷,雙向帶寬利用率為M/ (M+40XN+98)。
[0093]可見,相比于現(xiàn)有的單向帶寬利用率M/(M+24XN+50)、以及雙向帶寬利用率為M/(M+40XN+98),本實施例在一個數(shù)據報文占據N個TLP分片時產生的M/ (M+2+24XN)的單向帶寬利用率、以及M/ (M+2+40XN)的雙向帶寬利用率也都有所提高。
[0094]3)、P (P為大于等于2的正整數(shù))個數(shù)據報文共用一個TLP分片的情況
[0095]在該情況下,P個數(shù)據報文的傳輸只需要執(zhí)行一次如圖7所示的傳輸過程,并且,在發(fā)送端至接收端的單項傳輸方向上只有一個TLP分片、在接收端至發(fā)送端的單向傳輸方向上有2個DLLP ;
[0096]此時,假設P個數(shù)據報文中的每一個的數(shù)據載荷長度均為M個字節(jié)、表示數(shù)據載荷長度的字節(jié)填充選用2字節(jié),則:
[0097]該TLP分片的Data字段會在PCIE總線產生(M+2)XP字節(jié)的載荷開銷、其余字段會在PCIE總線產生24字節(jié)的控制信息開銷,總計(M+2)XP+24字節(jié)的單向帶寬開銷、以及M/ (M+2+24/P)的單向帶寬利用率;
[0098]如果再算上接收端至發(fā)送端的單向傳輸方向上傳輸?shù)?個DLLP產生的共16字節(jié)的帶寬開銷,則總共產生(M+2) XP+40字節(jié)的雙向帶寬開銷、M/ (M+2+40/P)的雙向帶寬利用率。
[0099]但如果按照現(xiàn)有基于BD機制的傳輸方式,發(fā)送端至接收端的單向傳輸方向上針對P個數(shù)據報文中的每一個都需要傳輸I個用于實現(xiàn)數(shù)據載荷傳輸?shù)腡LP、1個用于實現(xiàn)BD機制的TLP分片以及2個用于實現(xiàn)BD機制的DLLP,接收端至發(fā)送端的單向傳輸方向上針對P個數(shù)據報文中的每一個都需要傳輸2個用于實現(xiàn)數(shù)據載荷傳輸應答的DLLP、2個用于實現(xiàn)BD機制的DLLP以及I個用于實現(xiàn)BD機制的TLP分片,相應地,單向帶寬利用率M/(M+72)、雙向帶寬利用率為M/ (M+136)。
[0100]可見,單向帶寬利用率M/ (M+72)、以及雙向帶寬利用率為M/ (M+136),本實施例在P個數(shù)據報文共用一個TLP分片時產生的M/ (M+2+24/P)的單向帶寬利用率、以及M/(M+2+40/P)的雙向帶寬利用率都有了明顯提高;
[0101]而且,相比于一個數(shù)據報文只占據一個TLP分片時產生的M/ (M+26)的單向帶寬利用率、以及M/ (M+42)的雙向帶寬利用率,本實施例在P個數(shù)據報文共用一個TLP分片時產生的M/ (M+2+24/P)的單向帶寬利用率、以及M/ (M+2+40/P)的雙向帶寬利用率有了進
一步的提聞。
[0102]假設P取4、且4個數(shù)據報文中的每一個的數(shù)據載荷的長度M為60字節(jié),則單向帶寬利用率能夠達到60/68=88.2%、其明顯高于一個數(shù)據報文獨占一個TLP分片時的69.8%,雙向帶寬利用率能夠達到60/72=83.3%、其明顯高于一個數(shù)據報文獨占一個TLP分片時的58.8%。相應地,對于一條5GX4Lane的PCIE總線鏈路,其20G的可用物理帶寬經過8b/10b編碼后形成16G的真實物理帶寬,并且,基于83.3%的雙向帶寬利用率,實際能夠產生13.3Gbps的速率、其明顯高于一個數(shù)據報文獨占一個TLP分片時的9.4Gbps。[0103]以上是對本實施例中的報文傳輸原理的詳細說明及效果分析?;谏鲜龅膱笪膫鬏斣?,本實施例提供了相應的報文傳輸方法。
[0104]本實施例首先提供了 一種報文傳輸方法,該報文傳輸方法應用于數(shù)據報文傳輸?shù)陌l(fā)送端的邏輯芯片中,該邏輯芯片通過PCIE總線與接收端相連、并通過非PCIE總線與本端的CPU相連,請參見圖8a,該報文傳輸方法包括:
[0105]步驟811、通過非PCIE總線從本端的CPU接收待發(fā)送的數(shù)據報文。
[0106]步驟812、為接收到的數(shù)據報文增加用于表示該數(shù)據報文的數(shù)據載荷長度的字節(jié)填充。其中:
[0107]每個數(shù)據報文的上述字節(jié)填充優(yōu)選地被本步驟添加在位于該數(shù)據報文的數(shù)據載荷的前部的位置處。
[0108]步驟813、將數(shù)據報文的上述字節(jié)填充和數(shù)據載荷封裝至TLP分片的Data字段中。其中:
[0109]若一個數(shù)據報文的上述字節(jié)填充及數(shù)據載荷的總字節(jié)小于等于一個TLP分片的載荷長度上限,則該數(shù)據報文的上述字節(jié)填充及數(shù)據載荷被本步驟封裝在一個TLP分片的Data字段中;
[0110]若一個數(shù)據報文的上述字節(jié)填充及數(shù)據載荷的總字節(jié)長度大于一個TLP分片的載荷長度上限,則該數(shù)據報文的上述字節(jié)填充以及該數(shù)據報文的數(shù)據載荷的一部分被本步驟封裝在一個TLP分片的Data字段中、該數(shù)據報文的數(shù)據載荷的其它部分被本步驟封裝至后續(xù)連續(xù)的至少一個其它TLP分片的Data字段中;
[0111]若至少兩個數(shù)據報文的上述字節(jié)填充及數(shù)據載荷的總字節(jié)長度之和小于等于一個TLP分片的載荷長度上限,則該至少兩個數(shù)據報文的上述字節(jié)填充及數(shù)據載荷被本步驟封裝在同一個TLP分片的Data字段中。
[0112]另外,若步驟812將每個數(shù)據報文的上述字節(jié)填充添加在位于該數(shù)據報文的數(shù)據載荷的前部,則本步驟在TLP分片的Data字段中所封裝的每個數(shù)據報文的上述字節(jié)填充也會位于該數(shù)據報文的數(shù)據載荷的前部。
[0113]步驟814、將TLP分片通過PCIE總線向接收端發(fā)送。
[0114]至此,發(fā)送端的邏輯芯片針對一個數(shù)據報文的處理過程結束。
[0115]本實施例還提供了另一種報文傳輸方法,該報文傳輸方法應用于數(shù)據報文傳輸?shù)慕邮斩说倪壿嬓酒?,該邏輯芯片通過PCIE總線與發(fā)送端相連、并通過非PCIE總線與本端的CPU相連,請參見圖Sb,該報文傳輸方法包括:
[0116]步驟821、通過PCIE總線從發(fā)送端接收TLP分片。
[0117]步驟822、依據TLP分片的Data字段中用于表示數(shù)據報文的數(shù)據載荷長度的字節(jié)填充,將TLP分片的Data字段中的對應長度的數(shù)據載荷確定為該字節(jié)填充所屬數(shù)據報文的數(shù)據載荷。其中:
[0118]若一個數(shù)據報文的上述字節(jié)填充及數(shù)據載荷的總字節(jié)小于等于一個TLP分片的載荷長度上限,則本步驟從一個TLP分片的Data字段中識別出該數(shù)據報文的上述字節(jié)填充以及該數(shù)據報文的數(shù)據載荷的全部;
[0119]若一個數(shù)據報文的上述字節(jié)填充及數(shù)據載荷的總字節(jié)長度大于一個TLP分片的載荷長度上限,則本步驟從一個TLP分片的Data字段中識別出該數(shù)據報文的上述字節(jié)填充以及該數(shù)據報文的數(shù)據載荷的一部分、并從后續(xù)連續(xù)的至少一個其它TLP分片的Data字段中識別出該數(shù)據報文的數(shù)據載荷的其它部分;
[0120]若至少兩個數(shù)據報文的上述字節(jié)填充及數(shù)據載荷的總字節(jié)長度之和小于等于一個TLP分片的荷長度上限、并被封裝在同一個TLP分片,則本步驟從該TLP分片的Data字段中識別出該至少兩個數(shù)據報文中的每一個的上述字節(jié)填充及數(shù)據載荷。
[0121]另外,若發(fā)送端將每個數(shù)據報文的上述字節(jié)填充添加在位于該數(shù)據報文的數(shù)據載荷的前部,則本步驟從TLP分片的Data字段中所識別出的每個數(shù)據報文的上述字節(jié)填充也會位于該數(shù)據報文的數(shù)據載荷的前部。
[0122]步驟823、將依據字節(jié)填充確定的對應長度的數(shù)據載荷恢復為對應的數(shù)據報文。
[0123]步驟824、將恢復得到的數(shù)據報文通過非PCIE總線向本端的CPU發(fā)送。
[0124]至此,接收端的邏輯芯片針對一個數(shù)據報文的處理過程結束。
[0125]實際應用中,上述的報文傳輸方法可以利用計算機程序來實現(xiàn),因此,本實施例還提供了基于計算機程序的報文傳輸裝置。
[0126]本實施例首先提供了一種報文傳輸裝置,該報文傳輸裝置承載于數(shù)據報文傳輸?shù)陌l(fā)送端的邏輯芯片中,該邏輯芯片通過PCIE總線與接收端相連、并通過非PCIE總線與本端的CPU相連,并且,該報文傳輸裝置包括:
[0127]內部接收模塊,通過非PCIE總線從本端的CPU接收待發(fā)送的數(shù)據報文;
[0128]字節(jié)填充模塊,為接收到的數(shù)據報文增加用于表示該數(shù)據報文的數(shù)據載荷長度的字節(jié)填充;
[0129]分片封裝模塊,將數(shù)據報文的所述字節(jié)填充和數(shù)據載荷封裝至TLP分片的載荷字段中;
[0130]外部發(fā)送模塊,將TLP分片通過PCIE總線向接收端發(fā)送。
[0131]其中,對于所述分片封裝模塊:
[0132]若一個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)小于等于一個TLP分片的載荷長度上限,則該數(shù)據報文的所述字節(jié)填充及數(shù)據載荷被所述分片封裝模塊封裝在一個TLP分片的載荷字段中、并獨占一個TLP分片的載荷字段;
[0133]若一個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)長度大于一個TLP分片的載荷長度上限,則該數(shù)據報文的所述字節(jié)填充以及該數(shù)據報文的數(shù)據載荷的一部分被所述分片封裝模塊封裝在一個TLP分片的載荷字段中、該數(shù)據報文的數(shù)據載荷的其它部分被所述分片封裝模塊封裝至后續(xù)連續(xù)的至少一個其它TLP分片的載荷字段中;
[0134]若至少兩個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)長度之和小于等于一個TLP分片的載荷長度上限,則該至少兩個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷被所述分片封裝模塊封裝在同一個TLP分片的載荷字段中。
[0135]另外,對于所述字節(jié)填充模塊和所述分片封裝模塊,可以遵循每個數(shù)據報文的所述字節(jié)填充位于該數(shù)據報文的數(shù)據載荷的前部的原則。
[0136]本實施例還提供了一種報文傳輸裝置,該報文傳輸裝置承載于數(shù)據報文傳輸?shù)慕邮斩说倪壿嬓酒?,該邏輯芯片通過PCIE總線與發(fā)送端相連、并通過非PCIE總線與本端的CPU相連,并且,該報文傳輸裝置包括:
[0137]外部接收模塊,通過PCIE總線從發(fā)送端接收TLP分片;[0138]長度確定模塊,依據TLP分片的載荷字段中用于表示數(shù)據報文的數(shù)據載荷長度的字節(jié)填充,將TLP分片的載荷字段中的對應長度的數(shù)據載荷確定為該字節(jié)填充所屬數(shù)據報文的數(shù)據載荷;
[0139]報文恢復模塊,將依據所述字節(jié)填充確定的對應長度的數(shù)據載荷恢復為對應的數(shù)據報文;
[0140]內部發(fā)送模塊,將恢復得到的數(shù)據報文通過非PCIE總線向本端的CPU發(fā)送。
[0141]其中,對于所述長度確定模塊:
[0142]若一個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)小于等于一個TLP分片的載荷長度上限,則所述長度確定模塊從一個TLP分片的載荷字段中識別出該數(shù)據報文的所述字節(jié)填充以及該數(shù)據報文的數(shù)據載荷的全部;
[0143]若一個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)長度大于一個TLP分片的載荷長度上限,則所述長度確定模塊從一個TLP分片的載荷字段中識別出該數(shù)據報文的所述字節(jié)填充以及該數(shù)據報文的數(shù)據載荷的一部分、并從后續(xù)連續(xù)的至少一個其它TLP分片的載荷字段中識別出該數(shù)據報文的數(shù)據載荷的其它部分;
[0144]若至少兩個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)長度之和小于等于一個TLP分片的載荷長度上限、并被封裝在同一個TLP分片,則所述長度確定模塊從該TLP分片的載荷字段中識別出該至少兩個數(shù)據報文中的每一個的所述字節(jié)填充及數(shù)據載荷。
[0145]另外,所述長度確定模塊可以與發(fā)送端同時遵循每個數(shù)據報文的所述字節(jié)填充位于該數(shù)據報文的數(shù)據載荷的前部的原則。
[0146]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發(fā)明保護的范圍之內。
【權利要求】
1.一種報文傳輸方法,其特征在于,該報文傳輸方法應用于數(shù)據報文傳輸?shù)陌l(fā)送端的邏輯芯片中、并包括: 通過非PCIE總線從本端的CPU接收待發(fā)送的數(shù)據報文; 為接收到的數(shù)據報文增加用于表示該數(shù)據報文的數(shù)據載荷長度的字節(jié)填充; 將數(shù)據報文的所述字節(jié)填充和數(shù)據載荷封裝至事務層包TLP分片的載荷字段中; 將TLP分片通過PCIE總線向接收端發(fā)送。
2.根據權利要求1所述的報文傳輸方法,其特征在于, 若一個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)小于等于一個TLP分片的載荷長度上限,則該數(shù)據報文的所述字節(jié)填充及數(shù)據載荷被封裝在一個TLP分片的載荷字段中; 若一個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)長度大于一個TLP分片的載荷長度上限,則該數(shù)據報文的所述字節(jié)填充以及該數(shù)據報文的數(shù)據載荷的一部分被封裝在一個TLP分片的載荷字段中、該數(shù)據報文的數(shù)據載荷的其它部分被封裝至后續(xù)連續(xù)的至少一個其它TLP分片的載荷字段中。
3.根據權利要求2所述的報文傳輸方法,其特征在于, 若至少兩個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)長度之和小于等于一個TLP分片的載荷長度上限, 則該 至少兩個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷被封裝在同一個TLP分片的載荷字段中。
4.根據權利要求1至3中任一項所述的報文傳輸方法,其特征在于,每個數(shù)據報文的所述字節(jié)填充位于該數(shù)據報文的數(shù)據載荷的前部。
5.一種報文傳輸方法,其特征在于,該報文傳輸方法應用于數(shù)據報文傳輸?shù)慕邮斩说倪壿嬓酒?、并包? 通過PCIE總線從發(fā)送端接收事務層包TLP分片; 依據TLP分片的載荷字段中用于表示數(shù)據報文的數(shù)據載荷長度的字節(jié)填充,將TLP分片的載荷字段中的對應長度的數(shù)據載荷確定為該字節(jié)填充所屬數(shù)據報文的數(shù)據載荷; 將依據所述字節(jié)填充確定的對應長度的數(shù)據載荷恢復為對應的數(shù)據報文; 將恢復得到的數(shù)據報文通過非PCIE總線向本端的CPU發(fā)送。
6.根據權利要求5所述的報文傳輸方法,其特征在于, 若一個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)小于等于一個TLP分片的載荷長度上限,則從一個TLP分片的載荷字段中識別出該數(shù)據報文的所述字節(jié)填充以及該數(shù)據報文的數(shù)據載荷的全部; 若一個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)長度大于一個TLP分片的載荷長度上限,則從一個TLP分片的載荷字段中識別出該數(shù)據報文的所述字節(jié)填充以及該數(shù)據報文的數(shù)據載荷的一部分、并從后續(xù)連續(xù)的至少一個其它TLP分片的載荷字段中識別出該數(shù)據報文的數(shù)據載荷的其它部分。
7.根據權利要求6所述的報文傳輸方法,其特征在于, 若至少兩個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)長度之和小于等于一個TLP分片的載荷長度上限且被封裝在同一個TLP分片,則從該TLP分片的載荷字段中識別出該至少兩個數(shù)據報文中的每一個的所述字節(jié)填充及數(shù)據載荷。
8.根據權利要求5至7中任一項所述的報文傳輸方法,其特征在于,每個數(shù)據報文的所述字節(jié)填充位于該數(shù)據報文的數(shù)據載荷的前部。
9.一種報文傳輸裝置,其特征在于,該報文傳輸裝置承載于數(shù)據報文傳輸?shù)陌l(fā)送端的邏輯芯片中、并包括: 內部接收模塊,通過非PCIE總線從本端的CPU接收待發(fā)送的數(shù)據報文; 字節(jié)填充模塊,為接收到的數(shù)據報文增加用于表示該數(shù)據報文的數(shù)據載荷長度的字節(jié)填充; 分片封裝模塊,將數(shù)據報文的所述字節(jié)填充和數(shù)據載荷封裝至事務層包TLP分片的載荷字段中; 外部發(fā)送模塊,將TLP分片通過PCIE總線向接收端發(fā)送。
10.根據權利要求9所述的報文傳輸裝置,其特征在于, 若一個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)小于等于一個TLP分片的載荷長度上限,則該數(shù)據報文的所述字節(jié)填充及數(shù)據載荷被封裝在一個TLP分片的載荷字段中、并獨占一個TLP分片的載荷字段; 若一個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)長度大于一個TLP分片的載荷長度上限,則該數(shù)據報文的所述字節(jié)填充以及該數(shù)據報文的數(shù)據載荷的一部分被封裝在一個TLP分片的載荷字段中、該數(shù)據報文的數(shù)據載荷的其它部分被封裝至后續(xù)連續(xù)的至少一個其它TLP分片的載荷字段中。
11.根據權利要求10所述的報文傳輸裝置,其特征在于, 若至少兩個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)長度之和小于等于一個TLP分片的載荷長度上限,則該至少兩個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷被封裝在同一個TLP分片的載荷字段中。
12.根據權利要求9至11中任一項所述的報文傳輸裝置,其特征在于,每個數(shù)據報文的所述字節(jié)填充位于該數(shù)據報文的數(shù)據載荷的前部。
13.一種報文傳輸裝置,其特征在于,該報文傳輸裝置承載于數(shù)據報文傳輸?shù)慕邮斩说倪壿嬓酒小⒉? 外部接收模塊,通過PCIE總線從發(fā)送端接收事務層包TLP分片; 長度確定模塊,依據TLP分片的載荷字段中用于表示數(shù)據報文的數(shù)據載荷長度的字節(jié)填充,將TLP分片的載荷字段中的對應長度的數(shù)據載荷確定為該字節(jié)填充所屬數(shù)據報文的數(shù)據載荷; 報文恢復模塊,將依據所述字節(jié)填充確定的對應長度的數(shù)據載荷恢復為對應的數(shù)據報文; 內部發(fā)送模塊,將恢復得到的數(shù)據報文通過非PCIE總線向本端的CPU發(fā)送。
14.根據權利要求13所述的報文傳輸裝置,其特征在于, 若一個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)小于等于一個TLP分片的載荷長度上限,則從一個TLP分片的載荷字段中識別出該數(shù)據報文的所述字節(jié)填充以及該數(shù)據報文的數(shù)據載荷的全部; 若一個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)長度大于一個TLP分片的載荷長度上限,則從一個TLP分片的載荷字段中識別出該數(shù)據報文的所述字節(jié)填充以及該數(shù)據報文的數(shù)據載荷的一部分、并從后續(xù)連續(xù)的至少一個其它TLP分片的載荷字段中識別出該數(shù)據報文的數(shù)據載荷的其它部分。
15.根據權利要求14所述的報文傳輸裝置,其特征在于, 若至少兩個數(shù)據報文的所述字節(jié)填充及數(shù)據載荷的總字節(jié)長度之和小于等于一個TLP分片的載荷長度上限并封裝在同一個TLP分片,則從該TLP分片的載荷字段中識別出該至少兩個數(shù)據報文中的每一個的所述字節(jié)填充及數(shù)據載荷。
16.根據權利要求13至15中任一項所述的報文傳輸裝置,其特征在于,每個數(shù)據報文的所述字節(jié)填充位于該數(shù)據報`文的數(shù)據載荷的前部。
【文檔編號】H04L29/08GK103825768SQ201410075777
【公開日】2014年5月28日 申請日期:2014年3月4日 優(yōu)先權日:2014年3月4日
【發(fā)明者】張德寧, 孟丹 申請人:杭州華三通信技術有限公司