欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

報(bào)文傳輸方法和裝置制造方法

文檔序號:7798099閱讀:210來源:國知局
報(bào)文傳輸方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種報(bào)文傳輸方法和裝置?;诒景l(fā)明,發(fā)送端的邏輯芯片通過非PCIE總線從本端CPU接收待發(fā)送的數(shù)據(jù)報(bào)文,為接收到的數(shù)據(jù)報(bào)文增加用于表示該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷長度的字節(jié)填充,然后將數(shù)據(jù)報(bào)文的所述字節(jié)填充和數(shù)據(jù)載荷封裝至TLP分片的載荷字段中、并通過PCIE總線向接收端發(fā)送;相應(yīng)地,接收端的邏輯芯片通過PCIE總線從發(fā)送端接收TLP分片,依據(jù)TLP分片的載荷字段中用于表示數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷長度的字節(jié)填充將TLP分片的載荷字段中的對應(yīng)長度的數(shù)據(jù)載荷確定為該字節(jié)填充所屬數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷,然后將依據(jù)所述字節(jié)填充確定的對應(yīng)長度的數(shù)據(jù)載荷恢復(fù)為對應(yīng)的數(shù)據(jù)報(bào)文、并通過非PCIE總線向本端CPU發(fā)送。從而,基于本發(fā)明能夠提高PCIE總線的帶寬利用率。
【專利說明】報(bào)文傳輸方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)報(bào)文傳輸技術(shù),特別涉及基于PCIE (Peripheral ComponentInterconnect Express,高速周邊元件互連)總線的一種報(bào)文傳輸方法和裝置。
【背景技術(shù)】
[0002]在基于PCIE總線的傳輸過程中,數(shù)據(jù)報(bào)文需要被發(fā)送端封裝為TLP(TransactionLayer Packet,事務(wù)層包)分片傳輸至接收端、再由接收方從TLP分片中解封裝得到數(shù)據(jù)報(bào)文。
[0003]請參見圖1,發(fā)送端和接收端均包括帶有PCIE接口的CPU,且發(fā)送端和接收端的CPU的PCIE接口通過PCIE總線相互連接;發(fā)送端的CPU負(fù)責(zé)將待發(fā)送的數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷封裝至TLP分片、并從其PCIE接口連接的PCIE總線向接收端發(fā)送TLP分片;接收端的CPU從其PCIE接口接收到發(fā)送端通過PCIE總線發(fā)來的TLP分片、并從TLP分片中解封裝得到數(shù)據(jù)載荷以恢復(fù)數(shù)據(jù)報(bào)文。
[0004]請參見圖2,用于封裝數(shù)據(jù)報(bào)文TLP分片從內(nèi)至外依次包括:內(nèi)層用于封裝數(shù)據(jù)載荷的Data (載荷)字段,Transaction Layer (事務(wù)層)的一個(gè)12字節(jié)的Header (頭)字段和一個(gè)4字節(jié)的ECRC (End-to-end Cyclic Redundancy Check,端到端循環(huán)冗余校驗(yàn)碼)字段,Data Link Layer (數(shù)據(jù)鏈路層)的一個(gè)2字節(jié)的SN (Sequence Number,序列號)字段和一個(gè)4字節(jié)的LCRC (Link Cyclic Redundancy Check,鏈路循環(huán)冗余校驗(yàn)碼)字段,以及,Physical Layer (物理層)的兩個(gè)I字節(jié)的Framing (框架)字段。
[0005]其中,只要一個(gè)數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷長度未超過Data字段的載荷長度上限,該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷就可以全部被封裝在一個(gè)TLP分片的Data字段中;但若一個(gè)數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷長度超過Data字段的載荷長度上限,則該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷可以被分別封裝至連續(xù)的多個(gè)TLP分片的Data字段中。另外,無論TLP分片的Data字段中封裝的是一個(gè)數(shù)據(jù)報(bào)文的全部數(shù)據(jù)載荷還是部分?jǐn)?shù)據(jù)載荷,一個(gè)TLP分片的Data字段中都只能封裝同一個(gè)數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷。
[0006]基于上述方式,從發(fā)送端向接收端發(fā)送的數(shù)據(jù)報(bào)文會以至少一個(gè)TLP分片的形式傳輸,而TLP分片的數(shù)量就取決于數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷長度。但接收端雖然能夠確定其接收到的每個(gè)TLP中封裝的數(shù)據(jù)載荷屬于同一個(gè)數(shù)據(jù)報(bào)文,但由于其并不知曉該數(shù)據(jù)報(bào)文的長度,因而無法確定該數(shù)據(jù)報(bào)文所對應(yīng)的TLP分片數(shù)量,從而無法確定其是否完成對該數(shù)據(jù)報(bào)文的所有TLP分片的接收。
[0007]為此,現(xiàn)有技術(shù)在發(fā)送端與接收端之間采用BD(Buffer Descriptor,緩存描述符)機(jī)制,該BD機(jī)制由發(fā)送端在完成對一個(gè)數(shù)據(jù)報(bào)文的所有TLP分片后更新接收端的BD、并由接收方依據(jù)發(fā)送端對其BD的更新來確定是否完成對該數(shù)據(jù)報(bào)文的所有TLP分片的接收。
[0008]請參見圖3,傳輸一個(gè)數(shù)據(jù)報(bào)文的過程包括:
[0009]S301,發(fā)送端將數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷封裝在TLP分片中、并通過PCIE總線向接收端發(fā)送;[0010]S302,接收端從PCIE總線接收到封裝有數(shù)據(jù)載荷的TLP分片,并通過PCIE總線向發(fā)送端回應(yīng)封裝有表示確收TLP分片的ACK(應(yīng)答)信息的DLLP(Data Link Layer Packet,數(shù)據(jù)鏈路層包)、以及封裝有Update Credit (更新信用度)信息的DLLP ;
[0011]實(shí)際應(yīng)用中,如果一個(gè)數(shù)據(jù)報(bào)文只需要占用一個(gè)TLP分片,則只需要針對這一個(gè)TLP分片執(zhí)行一次S301?S302、然后即可開始執(zhí)行S303,但如果一個(gè)數(shù)據(jù)報(bào)文需要占用至少兩個(gè)TLP分片,則針對每個(gè)TLP分片均需要執(zhí)行一次S301?S302、待針對所有的TLP分片均執(zhí)行了 S301?S302之后再開始執(zhí)行S303 ;
[0012]S303,發(fā)送端在封裝有該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的所有TLP分片均完成發(fā)送后,會將一 BD更新數(shù)據(jù)報(bào)文封裝至TLP分片中發(fā)送至接收端;
[0013]S304,接收端在接收到封裝有BD更新報(bào)文的TLP分片后,確認(rèn)此前傳輸?shù)膶儆谕粋€(gè)數(shù)據(jù)報(bào)文的TLP分片已接收完畢,并向發(fā)送端回應(yīng)封裝有表示確收BD更新報(bào)文的ACK信息的DLLP、以及封裝有Update Credit信息的DLLP ;
[0014]S305,接收端將屬于同一個(gè)數(shù)據(jù)報(bào)文的TLP分片中的數(shù)據(jù)載荷恢復(fù)為該數(shù)據(jù)報(bào)文,并將一 BD回收報(bào)文封裝在TLP分片中向發(fā)送端發(fā)送、以觸發(fā)發(fā)送端繼續(xù)發(fā)送下一個(gè)數(shù)據(jù)報(bào)文;
[0015]S306,發(fā)送端接收到封裝有BD回收報(bào)文的TLP分片后,向接收端回應(yīng)封裝有表示確收BD回收報(bào)文的ACK信息的DLLP、以及封裝有Update Credit信息的DLLP。
[0016]至此,一個(gè)數(shù)據(jù)報(bào)文的傳輸過程結(jié)束。
[0017]在上述如圖3所示的一次傳輸過程中:每個(gè)TLP分片的Data字段會產(chǎn)生載荷開銷(數(shù)據(jù)載荷為M字節(jié)、M為正整數(shù),BD更新報(bào)文和BD回收報(bào)文均為8字節(jié));每個(gè)TLP分片的Transaction Layer>Data Link Layer 以及 Physical Layer 的各字段還會產(chǎn)生總共 24 字節(jié)的控制信息開銷;以及,每個(gè)DLLP也會產(chǎn)生8字節(jié)的開銷。
[0018]因此,在一個(gè)數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷只占用一個(gè)TLP分片的情況下,發(fā)送端至接收端的單向傳輸方向上傳輸?shù)?個(gè)TLP和2個(gè)DLLP總共會產(chǎn)生(M+24)+ (8+24)+8 X 2=M+72字節(jié)的單向帶寬開銷,單向帶寬利用率為M/ (M+72);如果再算上接收端至發(fā)送端的單向傳輸方向上傳輸?shù)腎個(gè)TLP和4個(gè)DLLP,S卩,總共(8+24) +8X4=64字節(jié)的開銷,則總共產(chǎn)生M+136字節(jié)的雙向帶寬開銷,雙向帶寬利用率為M/ (M+136)。
[0019]假設(shè)一個(gè)數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的長度M為60字節(jié)、且該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷只需占用一個(gè)TLP分片,則單向帶寬利用率只有60/132=45.5%,雙向帶寬利用率只有60/196=30.6%。這種情況下,對于一條5GX 4Lane的PCIE總線鏈路,其20G的可用物理帶寬經(jīng)過8b/10b編碼后形成16G的真實(shí)物理帶寬,但基于30.6%的雙向帶寬利用率,實(shí)際只能產(chǎn)生4.9Gbps的速率。一個(gè)數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷占用至少兩個(gè)TLP分片的情況也是同理。
[0020]可見,現(xiàn)有的PCIE總線的帶寬利用率不高。而且,由于一個(gè)TLP分片的Data字段只能被同一個(gè)數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷獨(dú)占,因此,當(dāng)數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷長度M較小時(shí),PCIE總線的帶寬利用率在小包傳輸時(shí)會被進(jìn)一步降低。

【發(fā)明內(nèi)容】

[0021 ] 有鑒于此,本發(fā)明提供了 一種報(bào)文傳輸方法和裝置。
[0022]本發(fā)明提供的一種報(bào)文傳輸方法,該報(bào)文傳輸方法應(yīng)用于數(shù)據(jù)報(bào)文傳輸?shù)陌l(fā)送端的邏輯芯片中、并包括:
[0023]通過非PCIE總線從本端的CPU接收待發(fā)送的數(shù)據(jù)報(bào)文;
[0024]為接收到的數(shù)據(jù)報(bào)文增加用于表示該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷長度的字節(jié)填充;
[0025]將數(shù)據(jù)報(bào)文的所述字節(jié)填充和數(shù)據(jù)載荷封裝至TLP分片的載荷字段中;
[0026]將TLP分片通過PCIE總線向接收端發(fā)送。
[0027]可選地,若一個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)小于等于一個(gè)TLP分片的載荷長度上限,則該數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷被封裝在一個(gè)TLP分片的載荷字段中;若一個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度大于一個(gè)TLP分片的載荷長度上限,則該數(shù)據(jù)報(bào)文的所述字節(jié)填充以及該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的一部分被封裝在一個(gè)TLP分片的載荷字段中、該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的其它部分被封裝至后續(xù)連續(xù)的至少一個(gè)其它TLP分片的載荷字段中。進(jìn)一步可選地,若至少兩個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度之和小于等于一個(gè)TLP分片的載荷長度上限,則該至少兩個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷被封裝在同一個(gè)TLP分片的載荷字段中。
[0028]可選地,每個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充位于該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的前部。
[0029]本發(fā)明提供的另一種報(bào)文傳輸方法,該報(bào)文傳輸方法應(yīng)用于數(shù)據(jù)報(bào)文傳輸?shù)慕邮斩说倪壿嬓酒小⒉?
[0030]通過PCIE總線從發(fā)送端接收TLP分片;
[0031]依據(jù)TLP分片的載荷字段中用于表示數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷長度的字節(jié)填充,將TLP分片的載荷字段中的對應(yīng)長度的數(shù)據(jù)載荷確定為該字節(jié)填充所屬數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷;
[0032]將依據(jù)所述字節(jié)填充確定的對應(yīng)長度的數(shù)據(jù)載荷恢復(fù)為對應(yīng)的數(shù)據(jù)報(bào)文;
[0033]將恢復(fù)得到的數(shù)據(jù)報(bào)文通過非PCIE總線向本端的CPU發(fā)送。
[0034]可選地,若一個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)小于等于一個(gè)TLP分片的載荷長度上限,則從一個(gè)TLP分片的載荷字段中識別出該數(shù)據(jù)報(bào)文的所述字節(jié)填充以及該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的全部;若一個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度大于一個(gè)TLP分片的載荷長度上限,則從一個(gè)TLP分片的載荷字段中識別出該數(shù)據(jù)報(bào)文的所述字節(jié)填充以及該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的一部分、并從后續(xù)連續(xù)的至少一個(gè)其它TLP分片的載荷字段中識別出該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的其它部分。進(jìn)一步可選地,若至少兩個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度之和小于等于一個(gè)TLP分片的載荷長度上限且被封裝在同一個(gè)TLP分片,則從該TLP分片的載荷字段中識別出該至少兩個(gè)數(shù)據(jù)報(bào)文中的每一個(gè)的所述字節(jié)填充及數(shù)據(jù)載荷。
[0035]可選地,每個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充位于該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的前部。
[0036]本發(fā)明提供的一種報(bào)文傳輸裝置,該報(bào)文傳輸裝置承載于數(shù)據(jù)報(bào)文傳輸?shù)陌l(fā)送端的邏輯芯片中、并包括:
[0037]內(nèi)部接收模塊,通過非PCIE總線從本端的CPU接收待發(fā)送的數(shù)據(jù)報(bào)文;
[0038]字節(jié)填充模塊,為接收到的數(shù)據(jù)報(bào)文增加用于表示該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷長度的字節(jié)填充;
[0039]分片封裝模塊,將數(shù)據(jù)報(bào)文的所述字節(jié)填充和數(shù)據(jù)載荷封裝至TLP分片的載荷字段中;[0040]外部發(fā)送模塊,將TLP分片通過PCIE總線向接收端發(fā)送。
[0041]可選地,若一個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)小于等于一個(gè)TLP分片的載荷長度上限,則該數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷被封裝在一個(gè)TLP分片的載荷字段中、并獨(dú)占一個(gè)TLP分片的載荷字段;若一個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度大于一個(gè)TLP分片的載荷長度上限,則該數(shù)據(jù)報(bào)文的所述字節(jié)填充以及該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的一部分被封裝在一個(gè)TLP分片的載荷字段中、該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的其它部分被封裝至后續(xù)連續(xù)的至少一個(gè)其它TLP分片的載荷字段中。進(jìn)一步可選地,若至少兩個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度之和小于等于一個(gè)TLP分片的載荷長度上限,則該至少兩個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷被封裝在同一個(gè)TLP分片的載荷字段中。
[0042]可選地,每個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充位于該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的前部。
[0043]本發(fā)明提供的另一種報(bào)文傳輸裝置,該報(bào)文傳輸裝置承載于數(shù)據(jù)報(bào)文傳輸?shù)慕邮斩说倪壿嬓酒?、并包?
[0044]外部接收模塊,通過PCIE總線從發(fā)送端接收TLP分片;
[0045]長度確定模塊,依據(jù)TLP分片的載荷字段中用于表示數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷長度的字節(jié)填充,將TLP分片的載荷字段中的對應(yīng)長度的數(shù)據(jù)載荷確定為該字節(jié)填充所屬數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷;
[0046]報(bào)文恢復(fù)模塊,將依據(jù)所述字節(jié)填充確定的對應(yīng)長度的數(shù)據(jù)載荷恢復(fù)為對應(yīng)的數(shù)據(jù)報(bào)文;
[0047]內(nèi)部發(fā)送模塊,將恢復(fù)得到的數(shù)據(jù)報(bào)文通過非PCIE總線向本端的CPU發(fā)送。
[0048]可選地,若一個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)小于等于一個(gè)TLP分片的載荷長度上限,則從一個(gè)TLP分片的載荷字段中識別出該數(shù)據(jù)報(bào)文的所述字節(jié)填充以及該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的全部;若一個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度大于一個(gè)TLP分片的載荷長度上限,則從一個(gè)TLP分片的載荷字段中識別出該數(shù)據(jù)報(bào)文的所述字節(jié)填充以及該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的一部分、并從后續(xù)連續(xù)的至少一個(gè)其它TLP分片的載荷字段中識別出該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的其它部分。進(jìn)一步可選地,若至少兩個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度之和小于等于一個(gè)TLP分片的載荷長度上限且被封裝在同一個(gè)TLP分片,則從該TLP分片的載荷字段中識別出該至少兩個(gè)數(shù)據(jù)報(bào)文中的每一個(gè)的所述字節(jié)填充及數(shù)據(jù)載荷。
[0049]可選地,每個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充位于該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的前部。
[0050]由此可見,基于本發(fā)明的報(bào)文傳輸方法和裝置,發(fā)送端可以在TLP分片的載荷字段中攜帶數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷長度,相應(yīng)地,接收端可以從TLP分片的載荷字段中識別出數(shù)據(jù)載荷長度。因此,在發(fā)送端和接收端之間就無需通過BD機(jī)制來通告以及識別數(shù)據(jù)報(bào)文的傳輸完成,從而能夠省去BD機(jī)制占用的帶寬開銷,進(jìn)而能夠提高PCIE總線的帶寬利用率。而且,由于每個(gè)數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷都能夠通過對應(yīng)的數(shù)據(jù)載荷長度予以標(biāo)識,因而當(dāng)數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷長度較小時(shí),多個(gè)數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷可以共用一個(gè)TLP分片的載荷字段,從而能夠減少小包傳輸?shù)陌l(fā)生概率,進(jìn)而能夠在小包傳輸時(shí)進(jìn)一步提高PCIE總線的帶寬利用率?!緦@綀D】

【附圖說明】
[0051]圖1為現(xiàn)有技術(shù)中用于實(shí)現(xiàn)PCIE總線傳輸?shù)目蚣芙Y(jié)構(gòu)示意圖;
[0052]圖2為TLP分片的結(jié)構(gòu)示意圖;
[0053]圖3為基于如圖1所示框架結(jié)構(gòu)實(shí)現(xiàn)的傳輸交互過程示意圖;
[0054]圖4為本發(fā)明實(shí)施例中用于實(shí)現(xiàn)PCIE總線傳輸?shù)脑硇允疽鈭D;
[0055]圖5a至圖5c為基于如圖4所示原理的TLP分片的封裝結(jié)構(gòu)示意圖;
[0056]圖6為實(shí)現(xiàn)如圖4所示原理的硬件框架結(jié)構(gòu)示意圖;
[0057]圖7為本發(fā)明實(shí)施例基于如圖5所示框架結(jié)構(gòu)實(shí)現(xiàn)的傳輸交互過程示意圖;
[0058]圖8a和圖8b本發(fā)明實(shí)施例中的報(bào)文傳輸方法的示例性流程示意圖。
【具體實(shí)施方式】
[0059]為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖對本申請實(shí)施例進(jìn)行詳細(xì)說明。
[0060]針對PCIE總線傳輸?shù)膸捓寐什桓叩膯栴},本實(shí)施例首先進(jìn)行了如下分析:從如圖3所示的流程可以看出,只有S301中由發(fā)送端向接收端發(fā)送的TLP分片、以及S302中由接收端向發(fā)送端發(fā)送的DLLP真正實(shí)現(xiàn)的是數(shù)據(jù)載荷的傳輸過程,而S303中傳輸?shù)?2字節(jié)的I個(gè)TLP分片、S304中傳輸?shù)墓?6字節(jié)的2個(gè)DLLP、S305中傳輸?shù)?2字節(jié)的I個(gè)TLP分片、以及S306中傳輸?shù)墓?6字節(jié)的2個(gè)DLLP均涉及BD機(jī)制,并產(chǎn)生總計(jì)96字節(jié)的帶寬開銷。即,在M+136的雙向帶寬開銷中,BD機(jī)制占據(jù)了其中的96字節(jié)。
[0061 ] 基于此,本實(shí)施例旨在省略PCIE傳輸中所使用的BD機(jī)制,以消除每個(gè)數(shù)據(jù)報(bào)文傳輸時(shí)由于BD機(jī)制所產(chǎn)生的96字節(jié)的帶寬開銷。
[0062]請參見圖4,在本實(shí)施例中,發(fā)送端先為數(shù)據(jù)報(bào)文增加表示數(shù)據(jù)載荷長度的字節(jié)填充(該字節(jié)填充可以為2字節(jié)),該字節(jié)填充可以位于數(shù)據(jù)載荷的前部,然后發(fā)送端再將該字節(jié)填充與數(shù)據(jù)載荷一同封裝在TLP分片的Data字段中。其中:
[0063]對于一個(gè)數(shù)據(jù)報(bào)文只封裝為一個(gè)TLP分片的情況,請?jiān)趨⒁妶D4的同時(shí)再結(jié)合圖5a,表示數(shù)據(jù)載荷長度的該字節(jié)填充能夠與全部的數(shù)據(jù)載荷封裝在這一個(gè)TLP分片的Data字段中,且表示數(shù)據(jù)載荷長度的該字節(jié)填充在Data字段中優(yōu)選地位于數(shù)據(jù)載荷的前部;
[0064]對于一個(gè)數(shù)據(jù)報(bào)文需要分為多個(gè)TLP分片封裝的情況,請?jiān)趨⒁妶D4的同時(shí)再結(jié)合圖5b,表示數(shù)據(jù)載荷長度的該字節(jié)填充可以與一部分?jǐn)?shù)據(jù)載荷封裝一個(gè)TLP分片的Data字段中,且表示數(shù)據(jù)載荷長度的該字節(jié)填充優(yōu)選地與數(shù)據(jù)載荷位置靠前的一部分封裝在多個(gè)TLP中的第一個(gè)的Data字段中、并在Data字段中優(yōu)選地位于數(shù)據(jù)載荷位置靠前的一部分的前部;
[0065]另外,對于一個(gè)數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷長度較小(可稱之為數(shù)據(jù)報(bào)文)的情況,請?jiān)趨⒁妶D4的同時(shí)再結(jié)合圖5c,若至少兩個(gè)數(shù)據(jù)報(bào)文的上述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度之和小于等于一個(gè)TLP分片的Data字段的載荷長度上限,則為了在小包傳輸時(shí)進(jìn)一步提高PCIE總線的帶寬利用率,本實(shí)施例允許至少兩個(gè)數(shù)據(jù)報(bào)文的上述字節(jié)填充及數(shù)據(jù)載荷被封裝在同一個(gè)TLP分片的Data字段中,且每個(gè)數(shù)據(jù)報(bào)文的上述字節(jié)填充在Data字段中與該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷位置相鄰、并優(yōu)選地位于該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的前部。
[0066]請?jiān)賲⒁妶D4,對應(yīng)于發(fā)送端的處理方式,接收端可以從TLP分片的Data字段中識別出表示數(shù)據(jù)載荷長度的字節(jié)填充、并以此來判斷一個(gè)數(shù)據(jù)報(bào)文的所有數(shù)據(jù)載荷是否全部接收。其中,若表示數(shù)據(jù)載荷長度的字節(jié)填充位于其對應(yīng)的數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的前部,則接收端在識別出該字節(jié)填充之后:
[0067]對于如圖5a所示的一個(gè)數(shù)據(jù)報(bào)文只封裝為一個(gè)TLP分片的情況,接收端可對當(dāng)前TLP分片的Data字段中的接收內(nèi)容進(jìn)行字節(jié)計(jì)數(shù),當(dāng)計(jì)數(shù)達(dá)到該字節(jié)填充所表示的數(shù)據(jù)載荷長度時(shí),即認(rèn)為該字節(jié)填充對應(yīng)的數(shù)據(jù)報(bào)文的所有數(shù)據(jù)載荷已全部接收;
[0068]對于如圖5b所示的一個(gè)數(shù)據(jù)報(bào)文分為多個(gè)TLP分片封裝的情況,接收端可對當(dāng)前TLP分片及其后續(xù)連續(xù)接收到的至少一個(gè)其它TLP分片的Data字段中的接收內(nèi)容進(jìn)行字節(jié)計(jì)數(shù),當(dāng)計(jì)數(shù)達(dá)到該字節(jié)填充所表示的數(shù)據(jù)載荷長度時(shí),即認(rèn)為該字節(jié)填充對應(yīng)的數(shù)據(jù)報(bào)文的所有數(shù)據(jù)載荷已全部接收;
[0069]另外,對于如圖5c所示的至少兩個(gè)數(shù)據(jù)報(bào)文的字節(jié)填充及數(shù)據(jù)載荷被封裝在同一個(gè)TLP分片的情況,接收端可按照與如圖5a所示的情況相同的方式依次對當(dāng)前TLP分片中的每個(gè)數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷進(jìn)行計(jì)數(shù)。
[0070]如上可見,通過為數(shù)據(jù)報(bào)文增加表示數(shù)據(jù)載荷長度的字節(jié)填充、以及對增加了字節(jié)填充的數(shù)據(jù)報(bào)文進(jìn)行TLP分片封裝,本實(shí)施例無需發(fā)送端和接收端之間通過BD機(jī)制即可使接收端能夠識別數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷是否完成傳輸,從而能夠省去BD機(jī)制占用的帶寬開銷,進(jìn)而能夠提高PCIE總線的帶寬利用率。而且,通過允許多個(gè)數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷共用同一個(gè)TLP分片的Data字段,本實(shí)施例能夠減少小包傳輸?shù)陌l(fā)生,進(jìn)而能夠在小包傳輸時(shí)進(jìn)一步提高PCIE總線的帶寬利用率。
[0071]請參見圖6,本實(shí)施例可以在發(fā)送端和接收端均設(shè)置帶有PCIE接口的邏輯芯片,該邏輯芯片可以是例如FPGA (Field Programmable Gate Array,現(xiàn)場可編程門陣列)等任一種邏輯器件;發(fā)送端中的CPU和邏輯芯片通過內(nèi)部總線相互連接、接收端中的CPU和邏輯芯片也通過內(nèi)部總線相互連接,發(fā)送端的邏輯芯片的PCIE接口與接收端的邏輯芯片的PCIE接口通過PCIE總線相互連接。
[0072]相應(yīng)地,發(fā)送端的CPU僅負(fù)責(zé)將待發(fā)送的數(shù)據(jù)報(bào)文提供給發(fā)送端的邏輯芯片,發(fā)送端的邏輯芯片負(fù)責(zé)為數(shù)據(jù)報(bào)文增加表示數(shù)據(jù)載荷長度的字節(jié)填充、并將帶有該字節(jié)填充的數(shù)據(jù)報(bào)文封裝為TLP分片;同理,接收端的邏輯芯片負(fù)責(zé)從接收到的TLP分片中識別表示數(shù)據(jù)載荷長度的字節(jié)填充、還依據(jù)字節(jié)填充表示的數(shù)據(jù)載荷長度將TLP分片中對應(yīng)的數(shù)據(jù)載荷恢復(fù)為數(shù)據(jù)報(bào)文并發(fā)送給接收端的CPU。其中,由于發(fā)送端和接收端的CPU不再涉及TLP分片的封裝和解封裝,因而發(fā)送端和接收端中將CPU和邏輯芯片相互連接的內(nèi)部總線為任一種非PCIE協(xié)議的總線,例如SPI4.2 (System Packet Interfaced:.2,4.2版本的本系統(tǒng)包接口)總線、或 XAUI (IOGbps Ethernet Attachment Unit Interface,萬兆以太連接單元接口)總線、或InterLaken (因特拉肯)總線等。
[0073]請參見圖7,基于上述原理和硬件框架,在通過PCIE總線傳輸一個(gè)數(shù)據(jù)報(bào)文時(shí),每個(gè)TLP分片的傳輸過程如下:
[0074]S701,發(fā)送端的邏輯芯片為從本端CPU接收到的數(shù)據(jù)報(bào)文增加表示數(shù)據(jù)載荷長度的字節(jié)填充,然后將帶有該字節(jié)填充的數(shù)據(jù)報(bào)文封裝在當(dāng)前的一個(gè)TLP分片中、并通過PCIE總線向接收端發(fā)送;
[0075]S702,接收端的邏輯芯片從PCIE總線接收到TLP分片、并依據(jù)TLP分片中表示數(shù)據(jù)載荷的字節(jié)填充恢復(fù)得到具有特征長度的數(shù)據(jù)載荷的數(shù)據(jù)報(bào)文,然后通過PCIE總線向發(fā)送端回應(yīng)表示確收數(shù)據(jù)載荷的DLLP。
[0076]至此,一個(gè)TLP分片的傳輸過程結(jié)束。
[0077]下面,針對如圖7所示的上述傳輸過程在不同情況下產(chǎn)生的帶寬利用率進(jìn)行詳細(xì)分析。
[0078]I)、一個(gè)數(shù)據(jù)報(bào)文只占據(jù)一個(gè)TLP分片的情況
[0079]在該情況下,一個(gè)數(shù)據(jù)報(bào)文的傳輸只需要執(zhí)行一次如圖7所示的傳輸過程,并且,在發(fā)送端至接收端的單項(xiàng)傳輸方向上只有一個(gè)TLP分片、在接收端至發(fā)送端的單向傳輸方向上有2個(gè)DLLP ;
[0080]此時(shí),假設(shè)表示數(shù)據(jù)載荷長度的字節(jié)填充選用2字節(jié),則:
[0081]該TLP分片的Data字段會在PCIE總線產(chǎn)生M+2字節(jié)的載荷開銷、其余字段會在PCIE總線產(chǎn)生24字節(jié)的控制信息開銷,總計(jì)M+26字節(jié)的單向帶寬開銷、以及M/ (M+26)的單向帶寬利用率;
[0082]如果再算上接收端至發(fā)送端的單向傳輸方向上傳輸?shù)?個(gè)DLLP產(chǎn)生的共16字節(jié)的帶寬開銷,則總共產(chǎn)生M+42字節(jié)的雙向帶寬開銷、M/ (M+42)的雙向帶寬利用率。
[0083]可見,相比于現(xiàn)有的單向帶寬利用率M/ (M+72)、以及雙向帶寬利用率為M/(M+136),本實(shí)施例在一個(gè)數(shù)據(jù)報(bào)文只占據(jù)一個(gè)TLP分片時(shí)產(chǎn)生的M/ (M+26)的單向帶寬利用率、以及M/ (M+42)的雙向帶寬利用率都有了明顯提高。
[0084]例如,假設(shè)一個(gè)數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的長度M為60字節(jié)、且該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷只需占用一個(gè)TLP分片,則單向帶寬利用率能夠達(dá)到60/86=69.8%、其明顯高于現(xiàn)有方式的45.5%,雙向帶寬利用率能夠達(dá)到60/102=58.8%、其明顯高于現(xiàn)有方式的30.6%。相應(yīng)地,對于一條5GX4Lane的PCIE總線鏈路,其20G的可用物理帶寬經(jīng)過8b/10b編碼后形成16G的真實(shí)物理帶寬,并且,基于58.8%的雙向帶寬利用率,實(shí)際能夠產(chǎn)生9.4Gbps的速率、其明顯高于現(xiàn)有方式的4.9Gbps。
[0085]2)、一個(gè)數(shù)據(jù)報(bào)文需要占據(jù)N (N為大于等于2的正整數(shù))個(gè)TLP分片的情況
[0086]在情況下,一個(gè)數(shù)據(jù)報(bào)文的傳輸需要執(zhí)行N次如圖7所示的傳輸過程,并且,在發(fā)送端至接收端的單項(xiàng)傳輸方向上有N個(gè)TLP分片、接收端至發(fā)送端的單向傳輸方向上傳輸?shù)?2XN 個(gè) DLLP ;
[0087]此時(shí),假設(shè)表示數(shù)據(jù)載荷長度的字節(jié)填充選用2字節(jié),則:
[0088]N個(gè)TLP分片的Data字段總共會在PCIE總線產(chǎn)生M+2字節(jié)的載荷開銷、其余字段會在PCIE總線產(chǎn)生24XN字節(jié)的控制信息開銷,總計(jì)M+2+24XN字節(jié)的單向帶寬開銷、以及M/ (M+2+24XN)的單向帶寬利用率;
[0089]如果再算上接收端至發(fā)送端的單向傳輸方向上傳輸?shù)?XN個(gè)DLLP產(chǎn)生的共16 X N字節(jié)的帶寬開銷,則總共產(chǎn)生M+2+40 X N字節(jié)的雙向帶寬開銷、M/ (M+2+40 X N)的雙向帶寬利用率。
[0090]但若按照現(xiàn)有基于BD機(jī)制的傳輸方式,發(fā)送端至接收端的單向傳輸方向上需要傳輸N個(gè)用于實(shí)現(xiàn)數(shù)據(jù)載荷傳輸?shù)腡LP、I個(gè)用于實(shí)現(xiàn)BD機(jī)制的TLP分片以及2個(gè)用于實(shí)現(xiàn)BD機(jī)制的DLLP,接收端至發(fā)送端的單向傳輸方向上傳輸2XN個(gè)用于實(shí)現(xiàn)數(shù)據(jù)載荷傳輸應(yīng)答的DLLP、2個(gè)用于實(shí)現(xiàn)BD機(jī)制的DLLP以及I個(gè)用于實(shí)現(xiàn)BD機(jī)制的TLP分片,相應(yīng)地:[0091]在發(fā)送端至接收端的單向傳輸方向上總共產(chǎn)生(M+2+24XN) + (8+24)+8X2=M+24XN+50字節(jié)的單向帶寬開銷,單向帶寬利用率為M/ (M+24XN+50);
[0092]如果再算上接收端至發(fā)送端的單向傳輸方向上產(chǎn)生的(2XNX8)+(2X8)+(8+24)=16XN+48字節(jié)的開銷,則總共產(chǎn)生M+24XN+114字節(jié)的雙向帶寬開銷,雙向帶寬利用率為M/ (M+40XN+98)。
[0093]可見,相比于現(xiàn)有的單向帶寬利用率M/(M+24XN+50)、以及雙向帶寬利用率為M/(M+40XN+98),本實(shí)施例在一個(gè)數(shù)據(jù)報(bào)文占據(jù)N個(gè)TLP分片時(shí)產(chǎn)生的M/ (M+2+24XN)的單向帶寬利用率、以及M/ (M+2+40XN)的雙向帶寬利用率也都有所提高。
[0094]3)、P (P為大于等于2的正整數(shù))個(gè)數(shù)據(jù)報(bào)文共用一個(gè)TLP分片的情況
[0095]在該情況下,P個(gè)數(shù)據(jù)報(bào)文的傳輸只需要執(zhí)行一次如圖7所示的傳輸過程,并且,在發(fā)送端至接收端的單項(xiàng)傳輸方向上只有一個(gè)TLP分片、在接收端至發(fā)送端的單向傳輸方向上有2個(gè)DLLP ;
[0096]此時(shí),假設(shè)P個(gè)數(shù)據(jù)報(bào)文中的每一個(gè)的數(shù)據(jù)載荷長度均為M個(gè)字節(jié)、表示數(shù)據(jù)載荷長度的字節(jié)填充選用2字節(jié),則:
[0097]該TLP分片的Data字段會在PCIE總線產(chǎn)生(M+2)XP字節(jié)的載荷開銷、其余字段會在PCIE總線產(chǎn)生24字節(jié)的控制信息開銷,總計(jì)(M+2)XP+24字節(jié)的單向帶寬開銷、以及M/ (M+2+24/P)的單向帶寬利用率;
[0098]如果再算上接收端至發(fā)送端的單向傳輸方向上傳輸?shù)?個(gè)DLLP產(chǎn)生的共16字節(jié)的帶寬開銷,則總共產(chǎn)生(M+2) XP+40字節(jié)的雙向帶寬開銷、M/ (M+2+40/P)的雙向帶寬利用率。
[0099]但如果按照現(xiàn)有基于BD機(jī)制的傳輸方式,發(fā)送端至接收端的單向傳輸方向上針對P個(gè)數(shù)據(jù)報(bào)文中的每一個(gè)都需要傳輸I個(gè)用于實(shí)現(xiàn)數(shù)據(jù)載荷傳輸?shù)腡LP、1個(gè)用于實(shí)現(xiàn)BD機(jī)制的TLP分片以及2個(gè)用于實(shí)現(xiàn)BD機(jī)制的DLLP,接收端至發(fā)送端的單向傳輸方向上針對P個(gè)數(shù)據(jù)報(bào)文中的每一個(gè)都需要傳輸2個(gè)用于實(shí)現(xiàn)數(shù)據(jù)載荷傳輸應(yīng)答的DLLP、2個(gè)用于實(shí)現(xiàn)BD機(jī)制的DLLP以及I個(gè)用于實(shí)現(xiàn)BD機(jī)制的TLP分片,相應(yīng)地,單向帶寬利用率M/(M+72)、雙向帶寬利用率為M/ (M+136)。
[0100]可見,單向帶寬利用率M/ (M+72)、以及雙向帶寬利用率為M/ (M+136),本實(shí)施例在P個(gè)數(shù)據(jù)報(bào)文共用一個(gè)TLP分片時(shí)產(chǎn)生的M/ (M+2+24/P)的單向帶寬利用率、以及M/(M+2+40/P)的雙向帶寬利用率都有了明顯提高;
[0101]而且,相比于一個(gè)數(shù)據(jù)報(bào)文只占據(jù)一個(gè)TLP分片時(shí)產(chǎn)生的M/ (M+26)的單向帶寬利用率、以及M/ (M+42)的雙向帶寬利用率,本實(shí)施例在P個(gè)數(shù)據(jù)報(bào)文共用一個(gè)TLP分片時(shí)產(chǎn)生的M/ (M+2+24/P)的單向帶寬利用率、以及M/ (M+2+40/P)的雙向帶寬利用率有了進(jìn)
一步的提聞。
[0102]假設(shè)P取4、且4個(gè)數(shù)據(jù)報(bào)文中的每一個(gè)的數(shù)據(jù)載荷的長度M為60字節(jié),則單向帶寬利用率能夠達(dá)到60/68=88.2%、其明顯高于一個(gè)數(shù)據(jù)報(bào)文獨(dú)占一個(gè)TLP分片時(shí)的69.8%,雙向帶寬利用率能夠達(dá)到60/72=83.3%、其明顯高于一個(gè)數(shù)據(jù)報(bào)文獨(dú)占一個(gè)TLP分片時(shí)的58.8%。相應(yīng)地,對于一條5GX4Lane的PCIE總線鏈路,其20G的可用物理帶寬經(jīng)過8b/10b編碼后形成16G的真實(shí)物理帶寬,并且,基于83.3%的雙向帶寬利用率,實(shí)際能夠產(chǎn)生13.3Gbps的速率、其明顯高于一個(gè)數(shù)據(jù)報(bào)文獨(dú)占一個(gè)TLP分片時(shí)的9.4Gbps。[0103]以上是對本實(shí)施例中的報(bào)文傳輸原理的詳細(xì)說明及效果分析?;谏鲜龅膱?bào)文傳輸原理,本實(shí)施例提供了相應(yīng)的報(bào)文傳輸方法。
[0104]本實(shí)施例首先提供了 一種報(bào)文傳輸方法,該報(bào)文傳輸方法應(yīng)用于數(shù)據(jù)報(bào)文傳輸?shù)陌l(fā)送端的邏輯芯片中,該邏輯芯片通過PCIE總線與接收端相連、并通過非PCIE總線與本端的CPU相連,請參見圖8a,該報(bào)文傳輸方法包括:
[0105]步驟811、通過非PCIE總線從本端的CPU接收待發(fā)送的數(shù)據(jù)報(bào)文。
[0106]步驟812、為接收到的數(shù)據(jù)報(bào)文增加用于表示該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷長度的字節(jié)填充。其中:
[0107]每個(gè)數(shù)據(jù)報(bào)文的上述字節(jié)填充優(yōu)選地被本步驟添加在位于該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的前部的位置處。
[0108]步驟813、將數(shù)據(jù)報(bào)文的上述字節(jié)填充和數(shù)據(jù)載荷封裝至TLP分片的Data字段中。其中:
[0109]若一個(gè)數(shù)據(jù)報(bào)文的上述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)小于等于一個(gè)TLP分片的載荷長度上限,則該數(shù)據(jù)報(bào)文的上述字節(jié)填充及數(shù)據(jù)載荷被本步驟封裝在一個(gè)TLP分片的Data字段中;
[0110]若一個(gè)數(shù)據(jù)報(bào)文的上述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度大于一個(gè)TLP分片的載荷長度上限,則該數(shù)據(jù)報(bào)文的上述字節(jié)填充以及該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的一部分被本步驟封裝在一個(gè)TLP分片的Data字段中、該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的其它部分被本步驟封裝至后續(xù)連續(xù)的至少一個(gè)其它TLP分片的Data字段中;
[0111]若至少兩個(gè)數(shù)據(jù)報(bào)文的上述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度之和小于等于一個(gè)TLP分片的載荷長度上限,則該至少兩個(gè)數(shù)據(jù)報(bào)文的上述字節(jié)填充及數(shù)據(jù)載荷被本步驟封裝在同一個(gè)TLP分片的Data字段中。
[0112]另外,若步驟812將每個(gè)數(shù)據(jù)報(bào)文的上述字節(jié)填充添加在位于該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的前部,則本步驟在TLP分片的Data字段中所封裝的每個(gè)數(shù)據(jù)報(bào)文的上述字節(jié)填充也會位于該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的前部。
[0113]步驟814、將TLP分片通過PCIE總線向接收端發(fā)送。
[0114]至此,發(fā)送端的邏輯芯片針對一個(gè)數(shù)據(jù)報(bào)文的處理過程結(jié)束。
[0115]本實(shí)施例還提供了另一種報(bào)文傳輸方法,該報(bào)文傳輸方法應(yīng)用于數(shù)據(jù)報(bào)文傳輸?shù)慕邮斩说倪壿嬓酒校撨壿嬓酒ㄟ^PCIE總線與發(fā)送端相連、并通過非PCIE總線與本端的CPU相連,請參見圖Sb,該報(bào)文傳輸方法包括:
[0116]步驟821、通過PCIE總線從發(fā)送端接收TLP分片。
[0117]步驟822、依據(jù)TLP分片的Data字段中用于表示數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷長度的字節(jié)填充,將TLP分片的Data字段中的對應(yīng)長度的數(shù)據(jù)載荷確定為該字節(jié)填充所屬數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷。其中:
[0118]若一個(gè)數(shù)據(jù)報(bào)文的上述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)小于等于一個(gè)TLP分片的載荷長度上限,則本步驟從一個(gè)TLP分片的Data字段中識別出該數(shù)據(jù)報(bào)文的上述字節(jié)填充以及該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的全部;
[0119]若一個(gè)數(shù)據(jù)報(bào)文的上述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度大于一個(gè)TLP分片的載荷長度上限,則本步驟從一個(gè)TLP分片的Data字段中識別出該數(shù)據(jù)報(bào)文的上述字節(jié)填充以及該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的一部分、并從后續(xù)連續(xù)的至少一個(gè)其它TLP分片的Data字段中識別出該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的其它部分;
[0120]若至少兩個(gè)數(shù)據(jù)報(bào)文的上述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度之和小于等于一個(gè)TLP分片的荷長度上限、并被封裝在同一個(gè)TLP分片,則本步驟從該TLP分片的Data字段中識別出該至少兩個(gè)數(shù)據(jù)報(bào)文中的每一個(gè)的上述字節(jié)填充及數(shù)據(jù)載荷。
[0121]另外,若發(fā)送端將每個(gè)數(shù)據(jù)報(bào)文的上述字節(jié)填充添加在位于該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的前部,則本步驟從TLP分片的Data字段中所識別出的每個(gè)數(shù)據(jù)報(bào)文的上述字節(jié)填充也會位于該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的前部。
[0122]步驟823、將依據(jù)字節(jié)填充確定的對應(yīng)長度的數(shù)據(jù)載荷恢復(fù)為對應(yīng)的數(shù)據(jù)報(bào)文。
[0123]步驟824、將恢復(fù)得到的數(shù)據(jù)報(bào)文通過非PCIE總線向本端的CPU發(fā)送。
[0124]至此,接收端的邏輯芯片針對一個(gè)數(shù)據(jù)報(bào)文的處理過程結(jié)束。
[0125]實(shí)際應(yīng)用中,上述的報(bào)文傳輸方法可以利用計(jì)算機(jī)程序來實(shí)現(xiàn),因此,本實(shí)施例還提供了基于計(jì)算機(jī)程序的報(bào)文傳輸裝置。
[0126]本實(shí)施例首先提供了一種報(bào)文傳輸裝置,該報(bào)文傳輸裝置承載于數(shù)據(jù)報(bào)文傳輸?shù)陌l(fā)送端的邏輯芯片中,該邏輯芯片通過PCIE總線與接收端相連、并通過非PCIE總線與本端的CPU相連,并且,該報(bào)文傳輸裝置包括:
[0127]內(nèi)部接收模塊,通過非PCIE總線從本端的CPU接收待發(fā)送的數(shù)據(jù)報(bào)文;
[0128]字節(jié)填充模塊,為接收到的數(shù)據(jù)報(bào)文增加用于表示該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷長度的字節(jié)填充;
[0129]分片封裝模塊,將數(shù)據(jù)報(bào)文的所述字節(jié)填充和數(shù)據(jù)載荷封裝至TLP分片的載荷字段中;
[0130]外部發(fā)送模塊,將TLP分片通過PCIE總線向接收端發(fā)送。
[0131]其中,對于所述分片封裝模塊:
[0132]若一個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)小于等于一個(gè)TLP分片的載荷長度上限,則該數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷被所述分片封裝模塊封裝在一個(gè)TLP分片的載荷字段中、并獨(dú)占一個(gè)TLP分片的載荷字段;
[0133]若一個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度大于一個(gè)TLP分片的載荷長度上限,則該數(shù)據(jù)報(bào)文的所述字節(jié)填充以及該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的一部分被所述分片封裝模塊封裝在一個(gè)TLP分片的載荷字段中、該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的其它部分被所述分片封裝模塊封裝至后續(xù)連續(xù)的至少一個(gè)其它TLP分片的載荷字段中;
[0134]若至少兩個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度之和小于等于一個(gè)TLP分片的載荷長度上限,則該至少兩個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷被所述分片封裝模塊封裝在同一個(gè)TLP分片的載荷字段中。
[0135]另外,對于所述字節(jié)填充模塊和所述分片封裝模塊,可以遵循每個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充位于該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的前部的原則。
[0136]本實(shí)施例還提供了一種報(bào)文傳輸裝置,該報(bào)文傳輸裝置承載于數(shù)據(jù)報(bào)文傳輸?shù)慕邮斩说倪壿嬓酒?,該邏輯芯片通過PCIE總線與發(fā)送端相連、并通過非PCIE總線與本端的CPU相連,并且,該報(bào)文傳輸裝置包括:
[0137]外部接收模塊,通過PCIE總線從發(fā)送端接收TLP分片;[0138]長度確定模塊,依據(jù)TLP分片的載荷字段中用于表示數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷長度的字節(jié)填充,將TLP分片的載荷字段中的對應(yīng)長度的數(shù)據(jù)載荷確定為該字節(jié)填充所屬數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷;
[0139]報(bào)文恢復(fù)模塊,將依據(jù)所述字節(jié)填充確定的對應(yīng)長度的數(shù)據(jù)載荷恢復(fù)為對應(yīng)的數(shù)據(jù)報(bào)文;
[0140]內(nèi)部發(fā)送模塊,將恢復(fù)得到的數(shù)據(jù)報(bào)文通過非PCIE總線向本端的CPU發(fā)送。
[0141]其中,對于所述長度確定模塊:
[0142]若一個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)小于等于一個(gè)TLP分片的載荷長度上限,則所述長度確定模塊從一個(gè)TLP分片的載荷字段中識別出該數(shù)據(jù)報(bào)文的所述字節(jié)填充以及該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的全部;
[0143]若一個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度大于一個(gè)TLP分片的載荷長度上限,則所述長度確定模塊從一個(gè)TLP分片的載荷字段中識別出該數(shù)據(jù)報(bào)文的所述字節(jié)填充以及該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的一部分、并從后續(xù)連續(xù)的至少一個(gè)其它TLP分片的載荷字段中識別出該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的其它部分;
[0144]若至少兩個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度之和小于等于一個(gè)TLP分片的載荷長度上限、并被封裝在同一個(gè)TLP分片,則所述長度確定模塊從該TLP分片的載荷字段中識別出該至少兩個(gè)數(shù)據(jù)報(bào)文中的每一個(gè)的所述字節(jié)填充及數(shù)據(jù)載荷。
[0145]另外,所述長度確定模塊可以與發(fā)送端同時(shí)遵循每個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充位于該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的前部的原則。
[0146]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
【權(quán)利要求】
1.一種報(bào)文傳輸方法,其特征在于,該報(bào)文傳輸方法應(yīng)用于數(shù)據(jù)報(bào)文傳輸?shù)陌l(fā)送端的邏輯芯片中、并包括: 通過非PCIE總線從本端的CPU接收待發(fā)送的數(shù)據(jù)報(bào)文; 為接收到的數(shù)據(jù)報(bào)文增加用于表示該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷長度的字節(jié)填充; 將數(shù)據(jù)報(bào)文的所述字節(jié)填充和數(shù)據(jù)載荷封裝至事務(wù)層包TLP分片的載荷字段中; 將TLP分片通過PCIE總線向接收端發(fā)送。
2.根據(jù)權(quán)利要求1所述的報(bào)文傳輸方法,其特征在于, 若一個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)小于等于一個(gè)TLP分片的載荷長度上限,則該數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷被封裝在一個(gè)TLP分片的載荷字段中; 若一個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度大于一個(gè)TLP分片的載荷長度上限,則該數(shù)據(jù)報(bào)文的所述字節(jié)填充以及該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的一部分被封裝在一個(gè)TLP分片的載荷字段中、該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的其它部分被封裝至后續(xù)連續(xù)的至少一個(gè)其它TLP分片的載荷字段中。
3.根據(jù)權(quán)利要求2所述的報(bào)文傳輸方法,其特征在于, 若至少兩個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度之和小于等于一個(gè)TLP分片的載荷長度上限, 則該 至少兩個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷被封裝在同一個(gè)TLP分片的載荷字段中。
4.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的報(bào)文傳輸方法,其特征在于,每個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充位于該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的前部。
5.一種報(bào)文傳輸方法,其特征在于,該報(bào)文傳輸方法應(yīng)用于數(shù)據(jù)報(bào)文傳輸?shù)慕邮斩说倪壿嬓酒?、并包? 通過PCIE總線從發(fā)送端接收事務(wù)層包TLP分片; 依據(jù)TLP分片的載荷字段中用于表示數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷長度的字節(jié)填充,將TLP分片的載荷字段中的對應(yīng)長度的數(shù)據(jù)載荷確定為該字節(jié)填充所屬數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷; 將依據(jù)所述字節(jié)填充確定的對應(yīng)長度的數(shù)據(jù)載荷恢復(fù)為對應(yīng)的數(shù)據(jù)報(bào)文; 將恢復(fù)得到的數(shù)據(jù)報(bào)文通過非PCIE總線向本端的CPU發(fā)送。
6.根據(jù)權(quán)利要求5所述的報(bào)文傳輸方法,其特征在于, 若一個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)小于等于一個(gè)TLP分片的載荷長度上限,則從一個(gè)TLP分片的載荷字段中識別出該數(shù)據(jù)報(bào)文的所述字節(jié)填充以及該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的全部; 若一個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度大于一個(gè)TLP分片的載荷長度上限,則從一個(gè)TLP分片的載荷字段中識別出該數(shù)據(jù)報(bào)文的所述字節(jié)填充以及該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的一部分、并從后續(xù)連續(xù)的至少一個(gè)其它TLP分片的載荷字段中識別出該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的其它部分。
7.根據(jù)權(quán)利要求6所述的報(bào)文傳輸方法,其特征在于, 若至少兩個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度之和小于等于一個(gè)TLP分片的載荷長度上限且被封裝在同一個(gè)TLP分片,則從該TLP分片的載荷字段中識別出該至少兩個(gè)數(shù)據(jù)報(bào)文中的每一個(gè)的所述字節(jié)填充及數(shù)據(jù)載荷。
8.根據(jù)權(quán)利要求5至7中任一項(xiàng)所述的報(bào)文傳輸方法,其特征在于,每個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充位于該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的前部。
9.一種報(bào)文傳輸裝置,其特征在于,該報(bào)文傳輸裝置承載于數(shù)據(jù)報(bào)文傳輸?shù)陌l(fā)送端的邏輯芯片中、并包括: 內(nèi)部接收模塊,通過非PCIE總線從本端的CPU接收待發(fā)送的數(shù)據(jù)報(bào)文; 字節(jié)填充模塊,為接收到的數(shù)據(jù)報(bào)文增加用于表示該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷長度的字節(jié)填充; 分片封裝模塊,將數(shù)據(jù)報(bào)文的所述字節(jié)填充和數(shù)據(jù)載荷封裝至事務(wù)層包TLP分片的載荷字段中; 外部發(fā)送模塊,將TLP分片通過PCIE總線向接收端發(fā)送。
10.根據(jù)權(quán)利要求9所述的報(bào)文傳輸裝置,其特征在于, 若一個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)小于等于一個(gè)TLP分片的載荷長度上限,則該數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷被封裝在一個(gè)TLP分片的載荷字段中、并獨(dú)占一個(gè)TLP分片的載荷字段; 若一個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度大于一個(gè)TLP分片的載荷長度上限,則該數(shù)據(jù)報(bào)文的所述字節(jié)填充以及該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的一部分被封裝在一個(gè)TLP分片的載荷字段中、該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的其它部分被封裝至后續(xù)連續(xù)的至少一個(gè)其它TLP分片的載荷字段中。
11.根據(jù)權(quán)利要求10所述的報(bào)文傳輸裝置,其特征在于, 若至少兩個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度之和小于等于一個(gè)TLP分片的載荷長度上限,則該至少兩個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷被封裝在同一個(gè)TLP分片的載荷字段中。
12.根據(jù)權(quán)利要求9至11中任一項(xiàng)所述的報(bào)文傳輸裝置,其特征在于,每個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充位于該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的前部。
13.一種報(bào)文傳輸裝置,其特征在于,該報(bào)文傳輸裝置承載于數(shù)據(jù)報(bào)文傳輸?shù)慕邮斩说倪壿嬓酒?、并包? 外部接收模塊,通過PCIE總線從發(fā)送端接收事務(wù)層包TLP分片; 長度確定模塊,依據(jù)TLP分片的載荷字段中用于表示數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷長度的字節(jié)填充,將TLP分片的載荷字段中的對應(yīng)長度的數(shù)據(jù)載荷確定為該字節(jié)填充所屬數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷; 報(bào)文恢復(fù)模塊,將依據(jù)所述字節(jié)填充確定的對應(yīng)長度的數(shù)據(jù)載荷恢復(fù)為對應(yīng)的數(shù)據(jù)報(bào)文; 內(nèi)部發(fā)送模塊,將恢復(fù)得到的數(shù)據(jù)報(bào)文通過非PCIE總線向本端的CPU發(fā)送。
14.根據(jù)權(quán)利要求13所述的報(bào)文傳輸裝置,其特征在于, 若一個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)小于等于一個(gè)TLP分片的載荷長度上限,則從一個(gè)TLP分片的載荷字段中識別出該數(shù)據(jù)報(bào)文的所述字節(jié)填充以及該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的全部; 若一個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度大于一個(gè)TLP分片的載荷長度上限,則從一個(gè)TLP分片的載荷字段中識別出該數(shù)據(jù)報(bào)文的所述字節(jié)填充以及該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的一部分、并從后續(xù)連續(xù)的至少一個(gè)其它TLP分片的載荷字段中識別出該數(shù)據(jù)報(bào)文的數(shù)據(jù)載荷的其它部分。
15.根據(jù)權(quán)利要求14所述的報(bào)文傳輸裝置,其特征在于, 若至少兩個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充及數(shù)據(jù)載荷的總字節(jié)長度之和小于等于一個(gè)TLP分片的載荷長度上限并封裝在同一個(gè)TLP分片,則從該TLP分片的載荷字段中識別出該至少兩個(gè)數(shù)據(jù)報(bào)文中的每一個(gè)的所述字節(jié)填充及數(shù)據(jù)載荷。
16.根據(jù)權(quán)利要求13至15中任一項(xiàng)所述的報(bào)文傳輸裝置,其特征在于,每個(gè)數(shù)據(jù)報(bào)文的所述字節(jié)填充位于該數(shù)據(jù)報(bào)`文的數(shù)據(jù)載荷的前部。
【文檔編號】H04L29/08GK103825768SQ201410075777
【公開日】2014年5月28日 申請日期:2014年3月4日 優(yōu)先權(quán)日:2014年3月4日
【發(fā)明者】張德寧, 孟丹 申請人:杭州華三通信技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
滁州市| 兴和县| 阿克| 安乡县| 通榆县| 蒲城县| 高雄县| 英德市| 天全县| 青神县| 滕州市| 土默特右旗| 韶关市| 鹿邑县| 永安市| 手游| 南郑县| 阳城县| 崇仁县| 甘孜县| 黔西县| 临安市| 阿鲁科尔沁旗| 左贡县| 湘潭县| 旬阳县| 麻城市| 通城县| 浦江县| 天峻县| 阿坝县| 望都县| 晋宁县| 娄烦县| 华坪县| 澎湖县| 昌邑市| 都江堰市| 禹城市| 教育| 镇康县|