基于pcie總線的報文傳輸方法與裝置制造方法
【專利摘要】本發(fā)明提供一種基于PCIE總線的報文傳輸方法與裝置,該方法包括:接收數(shù)據(jù)傳輸請求,并根據(jù)數(shù)據(jù)傳輸請求判斷數(shù)據(jù)傳輸請求所請求的待傳輸數(shù)據(jù)是否具備壓縮條件;若具備壓縮條件,則將待傳輸數(shù)據(jù)封裝在至少兩個數(shù)據(jù)報文中;其中,所述壓縮事務(wù)層數(shù)據(jù)報文缺少至少一個字段或所述壓縮事務(wù)層數(shù)據(jù)報文的至少一個字段中配置壓縮信息;將所述至少兩個數(shù)據(jù)報文的數(shù)據(jù)標識設(shè)置為相同值;將至少兩個數(shù)據(jù)報文通過PCIE總線傳輸給對端設(shè)備。本發(fā)明實施例提供的基于PCIE總線的報文傳輸方法與裝置,在傳輸過程中實現(xiàn)節(jié)約信道資源。
【專利說明】基于PCIE總線的報文傳輸方法與裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù),尤其涉及一種基于PCIE總線的報文傳輸方法與裝置。
【背景技術(shù)】
[0002]外圍組件互連快遞(PeripheralComponent Interconnect Express,簡稱 PCIE)總線是一種采用端對端的連接方式的高速差分總線,具有三個層次:物理層、數(shù)據(jù)鏈路層和事務(wù)層,其中事務(wù)層是所有層次中的最高層。PCIE具有多種總線事務(wù),包括:存儲器讀請求總線事務(wù)、存儲器寫請求總線事務(wù)、輸入/輸出讀和寫請求總線事務(wù)以及配置讀和寫請求總線事務(wù)等。在使用PCIE總線進行數(shù)據(jù)傳輸時,在事務(wù)層中,需要將待傳輸數(shù)據(jù)采用事務(wù)層數(shù)據(jù)報文(Transact1n Lay Packet,簡稱TLP)的格式將所要傳輸?shù)臄?shù)據(jù)封裝成至少一個TLP,再通過PCIE總線的多個層次發(fā)送出去。在實際傳輸數(shù)據(jù)過程中,將一份數(shù)據(jù)按照一定字節(jié)長度切割成多份數(shù)據(jù),并對上述多份數(shù)據(jù)分別封裝成TLP,通常屬于一份數(shù)據(jù)對應(yīng)的多個TLP都會對一段連續(xù)的地址空間進行讀或?qū)憽?br>
[0003]現(xiàn)有技術(shù)中,在將所傳輸?shù)臄?shù)據(jù)封裝為多個TLP后,每一個TLP中,除了必要的數(shù)據(jù)信息外,每個TLP的包頭中都包含TLP的長度信息、TLP的類型信息、標識該TLP在傳輸時的各種特性與支持的傳輸功能的信息、地址字段信息、以及沒有確定含義的保留字段等額外信息。當設(shè)備A接到另一個設(shè)備B傳輸?shù)腡LP,根據(jù)每個TLP的包頭就可以將各個TLP還原為待傳輸數(shù)據(jù),執(zhí)行寫入或讀取等操作,當對應(yīng)一份數(shù)據(jù)的多個TLP全部到達設(shè)備A時,即完成一次數(shù)據(jù)的傳輸。
[0004]在現(xiàn)有技術(shù)的使用PCIE總線傳輸數(shù)據(jù)的過程中,TLP中包含不必要的冗余信息,額外的冗余信息占用了寶貴的數(shù)據(jù)信道資源,并且在對應(yīng)一份數(shù)據(jù)的多個TLP中,每個TLP中都包含與其他TLP相同或相近的額外的冗余信息,因此在數(shù)據(jù)傳輸?shù)倪^程中,會存在大量的冗余信息,并且傳輸冗余信息對寶貴的數(shù)據(jù)信道資源造成很大的浪費。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種基于PCIE總線的報文傳輸方法與裝置,用以節(jié)約數(shù)據(jù)信道資源,進而提高數(shù)據(jù)的傳輸效率。
[0006]第一方面,本發(fā)明實施例提供一種基于PCIE總線的報文傳輸方法,該方法包括:
[0007]接收數(shù)據(jù)傳輸請求,并根據(jù)所述數(shù)據(jù)傳輸請求判斷所述數(shù)據(jù)傳輸請求所請求的待傳輸數(shù)據(jù)是否具備壓縮條件;
[0008]若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在至少兩個數(shù)據(jù)報文中;其中,所述至少兩個數(shù)據(jù)報文的第一個數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文和所述至少兩個數(shù)據(jù)報文的其他數(shù)據(jù)報文中的至少一個為壓縮事務(wù)層數(shù)據(jù)報文,各所述數(shù)據(jù)報文中配置有標識所述數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文或壓縮事務(wù)層數(shù)據(jù)報文的信息;與所述完全事務(wù)層數(shù)據(jù)報文相t匕,所述壓縮事務(wù)層數(shù)據(jù)報文缺少至少一個字段或所述壓縮事務(wù)層數(shù)據(jù)報文的至少一個字段中配置壓縮信息;將所述至少兩個數(shù)據(jù)報文的數(shù)據(jù)標識設(shè)置為相同值;[0009]將所述至少兩個數(shù)據(jù)報文通過PCIE總線傳輸給對端設(shè)備。
[0010]在第一方面的第一種可能的實現(xiàn)方式中,所述接收數(shù)據(jù)傳輸請求,并根據(jù)所述數(shù)據(jù)傳輸請求判斷待傳輸數(shù)據(jù)是否具備壓縮條件包括:
[0011]接收數(shù)據(jù)傳輸請求;
[0012]判斷所述數(shù)據(jù)傳輸請求的類型是否為設(shè)定的可壓縮請求,若是,則待傳輸數(shù)據(jù)具備壓縮條件。
[0013]根據(jù)第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述判斷所述數(shù)據(jù)傳輸請求的類型是否為設(shè)定的可壓縮請求,若是,則待傳輸數(shù)據(jù)具備壓縮條件包括:
[0014]判斷所述數(shù)據(jù)傳輸請求的類型是否為DMA數(shù)據(jù)讀寫請求;
[0015]若是DMA數(shù)據(jù)讀寫請求,則判斷所述DMA數(shù)據(jù)讀寫請求的讀寫地址是否連續(xù);
[0016]若讀寫地址連續(xù),則所述DMA數(shù)據(jù)讀寫請求的待傳輸數(shù)據(jù)具備壓縮條件。
[0017]結(jié)合第一方面、第一方面的第一種可能的實現(xiàn)方式或第二種可能的實現(xiàn)方式中任一種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述壓縮事務(wù)層數(shù)據(jù)報文的包頭缺少的至少一個字段包括:數(shù)據(jù)報文長度字段和字節(jié)使能字段。
[0018]結(jié)合第一方面、第一方面的第一種可能的實現(xiàn)方式或第二種可能的實現(xiàn)方式中任一種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述壓縮事務(wù)層數(shù)據(jù)報文配置壓縮信息的字段包括目標地址字段,在該字段配置的壓縮信息為地址偏移量;所述地址偏移量為所述壓縮事務(wù)層數(shù)據(jù)報文的目標地址相對于完全事務(wù)層數(shù)據(jù)報文的目標地址的地址偏移量。
[0019]結(jié)合第一方面、第一方面的第一種可能的實現(xiàn)方式或第二種可能的實現(xiàn)方式中任一種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,所述若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在至少兩個數(shù)據(jù)報文包括:
[0020]若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在至少兩個事務(wù)層數(shù)據(jù)報文中;所述至少兩個事務(wù)層數(shù)據(jù)報文中的報文長度相等。
[0021]結(jié)合第一方面、第一方面的第一種可能的實現(xiàn)方式或第二種可能的實現(xiàn)方式中任一種可能的實現(xiàn)方式,在第六種可能的實現(xiàn)方式中,所述若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在至少兩個數(shù)據(jù)報文包括:
[0022]若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在一個頭事務(wù)層數(shù)據(jù)報文、至少一個中間事務(wù)層數(shù)據(jù)報文和一個尾事務(wù)層數(shù)據(jù)報文中,其中,所述頭事務(wù)層數(shù)據(jù)報文和尾事務(wù)層數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文,中間事務(wù)層數(shù)據(jù)報文為壓縮事務(wù)層數(shù)據(jù)報文。
[0023]第二方面,本發(fā)明實施例提供一種基于外圍組件互連快遞PCIE總線的報文傳輸方法,該方法包括:接收對端設(shè)備通過PCIE總線傳輸?shù)氖聞?wù)層數(shù)據(jù)報文并進行識別;
[0024]當識別到所述事務(wù)層數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文時,從所述完全事務(wù)層數(shù)據(jù)報文的各字段中獲取完整信息;
[0025]當識別到所述事務(wù)層數(shù)據(jù)報文為壓縮事務(wù)層數(shù)據(jù)報文時,根據(jù)數(shù)據(jù)標識將屬于同一次待傳輸數(shù)據(jù)的所述完全事務(wù)層數(shù)據(jù)報文中的完整信息恢復(fù)所述壓縮事務(wù)層數(shù)據(jù)報文中缺少的字段或配置壓縮信息的字段,獲得壓縮事務(wù)層數(shù)據(jù)報文;
[0026]拼接各事務(wù)層數(shù)據(jù)報文以獲取對端設(shè)備數(shù)據(jù)發(fā)送的待傳輸數(shù)據(jù)。[0027]在第二方面的第一種可能的實現(xiàn)方式中,所述接收對端設(shè)備基于PCIE總線傳輸?shù)氖聞?wù)層數(shù)據(jù)報文并進行識別包括:
[0028]接收對端設(shè)備基于PCIE總線傳輸?shù)氖聞?wù)層數(shù)據(jù)報文;
[0029]從所述事務(wù)層數(shù)據(jù)報文中解析設(shè)定字段的標識;
[0030]當識別到所述標識為完全標識時,則所述事務(wù)層數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文;
[0031]當識別到所述標識為壓縮標識時,則所述事務(wù)層數(shù)據(jù)報文為壓縮事務(wù)層數(shù)據(jù)報文。
[0032]結(jié)合第二方面或第二方面的第一種可能的實現(xiàn)方式,在第二方面的第二種可能的實現(xiàn)方式中,所述根據(jù)數(shù)據(jù)標識將屬于同一次待傳輸數(shù)據(jù)的所述完全事務(wù)層數(shù)據(jù)報文中的完整信息恢復(fù)所述壓縮事務(wù)層數(shù)據(jù)報文中缺少的字段或配置壓縮信息的字段,獲得壓縮事務(wù)層數(shù)據(jù)報文,包括:
[0033]從所述壓縮事務(wù)層數(shù)據(jù)報文的目標地址字段中獲得地址偏移量;
[0034]從與所述壓縮事務(wù)層數(shù)據(jù)報文的數(shù)據(jù)標識相同的完全事務(wù)層數(shù)據(jù)報文中的目標地址字段中獲得基地址;
[0035]將地址偏移量與基地址相加,得到所述壓縮數(shù)據(jù)層報文的目標地址信息。
[0036]第三方面,本發(fā)明實施例提供一種基于外圍組件互連快遞PCIE總線的報文傳輸裝置,該裝置包括:接收判斷模塊,用于接收數(shù)據(jù)傳輸請求,并根據(jù)所述數(shù)據(jù)傳輸請求判斷所述數(shù)據(jù)傳輸請求所請求的待傳輸數(shù)據(jù)是否具備壓縮條件;
[0037]封裝模塊,用于若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在至少兩個數(shù)據(jù)報文中;其中,所述至少兩個數(shù)據(jù)報文的第一個數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文和所述至少兩個數(shù)據(jù)報文的其他數(shù)據(jù)報文中的至少一個為壓縮事務(wù)層數(shù)據(jù)報文,各所述數(shù)據(jù)報文中配置有標識所述數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文或壓縮事務(wù)層數(shù)據(jù)報文的信息;與所述完全事務(wù)層數(shù)據(jù)報文相比,所述壓縮事務(wù)層數(shù)據(jù)報文缺少至少一個字段或所述壓縮事務(wù)層數(shù)據(jù)報文的至少一個字段中配置壓縮信息;將所述至少兩個數(shù)據(jù)報文的數(shù)據(jù)標識設(shè)置為相同值;
[0038]傳輸模塊,用于將所述至少兩個數(shù)據(jù)報文通過PCIE總線傳輸給對端設(shè)備。
[0039]在第三方面的第一種可能的實現(xiàn)方式中,所述接收模塊,包括:
[0040]第一接收單元,用于接收數(shù)據(jù)傳輸請求;
[0041]判斷單元,用于判斷所述數(shù)據(jù)傳輸請求的類型是否為設(shè)定的可壓縮請求,若是,則待傳輸數(shù)據(jù)具備壓縮條件。
[0042]根據(jù)第三方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述判斷單元具體用于:
[0043]判斷所述數(shù)據(jù)傳輸請求的類型是否為直接內(nèi)存存取DMA數(shù)據(jù)讀寫請求,所述DMA數(shù)據(jù)讀寫請求包含DMA數(shù)據(jù)寫請求和DMA數(shù)據(jù)讀請求;
[0044]若是DMA數(shù)據(jù)讀寫請求,則判斷所述DMA數(shù)據(jù)讀寫請求的讀寫地址是否連續(xù);
[0045]若讀寫地址連續(xù),則所述DMA數(shù)據(jù)讀寫請求的待傳輸數(shù)據(jù)具備壓縮條件。
[0046]結(jié)合第三方面、第三方面的第一種可能的實現(xiàn)方式及第二種可能的實現(xiàn)方式中任一種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述封裝模塊,包括:
[0047]等長封裝單元,用于若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在至少兩個事務(wù)層數(shù)據(jù)報文中;所述至少兩個事務(wù)層數(shù)據(jù)報文中的報文長度相等。
[0048]結(jié)合本發(fā)明的第三方面、第三方面的第一種可能的實現(xiàn)方式及第二種可能的實現(xiàn)方式中任一種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述封裝模塊,用于:若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在一個頭事務(wù)層數(shù)據(jù)報文、至少一個中間事務(wù)層數(shù)據(jù)報文和一個尾事務(wù)層數(shù)據(jù)報文中,其中,所述頭事務(wù)層數(shù)據(jù)報文和尾事務(wù)層數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文,中間事務(wù)層數(shù)據(jù)報文為壓縮事務(wù)層數(shù)據(jù)報文。
[0049]第四方面,本發(fā)明實施例提供一種基于外圍組件互連快遞PCIE總線的報文傳輸裝置,該裝置包括:接收識別模塊,用于接收對端設(shè)備通過PCIE總線傳輸?shù)氖聞?wù)層數(shù)據(jù)報文并進行識別;
[0050]獲取模塊,用于當識別到所述事務(wù)層數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文時,從所述完全事務(wù)層數(shù)據(jù)報文的各字段中獲取完整信息;
[0051]修復(fù)模塊,用于當識別到所述事務(wù)層數(shù)據(jù)報文為壓縮事務(wù)層數(shù)據(jù)報文時,根據(jù)數(shù)據(jù)標識將屬于同一次待傳輸數(shù)據(jù)的所述完全事務(wù)層數(shù)據(jù)報文中的完整信息恢復(fù)所述壓縮事務(wù)層數(shù)據(jù)報文中缺少的字段或配置壓縮信息的字段,獲得壓縮事務(wù)層數(shù)據(jù)報文;
[0052]拼接模塊,用于拼接各事務(wù)層數(shù)據(jù)報文以獲取對端設(shè)備數(shù)據(jù)發(fā)送的待傳輸數(shù)據(jù)。
[0053]在第四方面的第一種可能的實現(xiàn)方式中,所述接收識別模塊包括:
[0054]第二接收單元,用于接收對端設(shè)備基于PCIE總線傳輸?shù)氖聞?wù)層數(shù)據(jù)報文;
[0055]標識解析單元,用于從所述事務(wù)層數(shù)據(jù)報文中解析設(shè)定字段的標識;
[0056]完全報文識別單元,用于當識別到所述標識為完全標識時,則所述事務(wù)層數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文;
[0057]壓縮報文識別單元,用于當識別到所述標識為壓縮標識時,則所述事務(wù)層數(shù)據(jù)報文為壓縮事務(wù)層數(shù)據(jù)報文。
[0058]結(jié)合第四方面或第四方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述修復(fù)模塊具體用于:
[0059]從所述壓縮事務(wù)層數(shù)據(jù)報文的目標地址字段中獲得地址偏移量;
[0060]從與所述壓縮事務(wù)層數(shù)據(jù)報文的數(shù)據(jù)標識相同的完全事務(wù)層數(shù)據(jù)報文中的目標地址字段中獲得基地址;
[0061]將地址偏移量與基地址相加,得到所述壓縮數(shù)據(jù)層報文的目標地址信息。
[0062]本發(fā)明實施例提供的基于PCIE總線的報文傳輸方法與裝置,如果待傳輸數(shù)據(jù)具備壓縮條件,則將待傳輸?shù)臄?shù)據(jù)封裝成配置有完全事務(wù)層數(shù)據(jù)報文標識信息的一個完全事務(wù)層數(shù)據(jù)報文和至少一個壓縮事務(wù)層數(shù)據(jù)報文,其中,壓縮事務(wù)層數(shù)據(jù)報文中缺少至少一個字段或者在至少一個字段配置了壓縮信息,使得壓縮事務(wù)層數(shù)據(jù)報文相對于完全事務(wù)層數(shù)據(jù)報文傳輸?shù)男畔⑸伲诮邮斩藢嚎s事務(wù)層數(shù)據(jù)報文進行恢復(fù),在保證傳輸數(shù)據(jù)不出錯的情況下,壓縮后的數(shù)據(jù)報文去除了部分信息,在傳輸過程中實現(xiàn)節(jié)約信道資源。
【專利附圖】
【附圖說明】
[0063]圖1是本發(fā)明基于PCIE總線的報文傳輸方法實施例一的流程圖;
[0064]圖2是本發(fā)明基于PCIE總線的報文傳輸方法實施例二的流程圖;
[0065]圖3是本發(fā)明實施例中DMA數(shù)據(jù)讀寫請求發(fā)起端增加控制邏輯之后的流程圖;[0066]圖4a是本發(fā)明實施例中DMA數(shù)據(jù)寫請求的事務(wù)層數(shù)據(jù)報文中的頭事務(wù)層數(shù)據(jù)報文包頭格式示意圖;
[0067]圖4b是本發(fā)明實施例中數(shù)據(jù)寫請求的事務(wù)層數(shù)據(jù)報文中中間事務(wù)層數(shù)據(jù)報文包頭格式示意圖;
[0068]圖4c是本發(fā)明實施例中數(shù)據(jù)寫請求的事務(wù)層數(shù)據(jù)報文中尾事務(wù)層數(shù)據(jù)報文包頭格式示意圖;
[0069]圖5是本發(fā)明實施例中DMA接收端增加控制邏輯之后的流程圖;
[0070]圖6是本發(fā)明基于PCIE總線的報文傳輸裝置實施例一的結(jié)構(gòu)示意圖;
[0071]圖7是本發(fā)明基于PCIE總線的報文傳輸裝置實施例二的結(jié)構(gòu)示意圖;
[0072]圖8是本發(fā)明基于PCIE總線的報文傳輸發(fā)起端設(shè)備的結(jié)構(gòu)示意圖;
[0073]圖9是本發(fā)明基于PCIE總線的報文傳輸接收端設(shè)備的結(jié)構(gòu)示意圖。
【具體實施方式】
[0074]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0075]圖1是本發(fā)明基于PCIE總線的報文傳輸方法實施例一的流程圖,本發(fā)明實施例可適用于任意基于PCIE總線交互的設(shè)備中,由該設(shè)備中的報文傳輸裝置來執(zhí)行。如圖1所示,本實施例提供的基于PCIE總線的報文傳輸方法包括:
[0076]步驟101、接收數(shù)據(jù)傳輸請求,并根據(jù)數(shù)據(jù)傳輸請求判斷數(shù)據(jù)傳輸請求所請求的待傳輸數(shù)據(jù)是否具備壓縮條件。
[0077]具體地,基于PCIE總線交互的設(shè)備接收數(shù)據(jù)傳輸請求,該數(shù)據(jù)傳輸請求可以是數(shù)據(jù)寫請求,也可以是數(shù)據(jù)讀請求,基于PCIE總線交互的設(shè)備可以根據(jù)數(shù)據(jù)傳輸請求的類型判斷數(shù)據(jù)傳輸請求是否具備壓縮條件。
[0078]步驟102、若具備壓縮條件,則將待傳輸數(shù)據(jù)封裝在至少兩個數(shù)據(jù)報文中;其中,至少兩個數(shù)據(jù)報文的第一個數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文和至少兩個數(shù)據(jù)報文的其他數(shù)據(jù)報文中的至少一個為壓縮事務(wù)層數(shù)據(jù)報文,各數(shù)據(jù)報文中配置有標識數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文或壓縮事務(wù)層數(shù)據(jù)報文的信息;所述壓縮事務(wù)層數(shù)據(jù)報文缺少至少一個字段或所述壓縮事務(wù)層數(shù)據(jù)報文的至少一個字段中配置壓縮信息;將所述至少兩個數(shù)據(jù)報文的數(shù)據(jù)標識設(shè)置為相同值。配置壓縮信息的字段通常是事務(wù)層數(shù)據(jù)報文中具有某些規(guī)律變化的字段,其特點是大部分信息相同而少部分信息不同,或者是字段內(nèi)信息按照設(shè)定規(guī)律變化。
[0079]屬于同一次待傳輸數(shù)據(jù)的數(shù)據(jù)報文的數(shù)據(jù)標識設(shè)置為相同值,以使當前次待傳輸數(shù)據(jù)的數(shù)據(jù)報文區(qū)別于其他次待傳輸數(shù)據(jù)的數(shù)據(jù)報文。
[0080]在實際應(yīng)用中,如果確定該數(shù)據(jù)傳輸請求具備壓縮條件,則將該數(shù)據(jù)傳輸請求所指定的待傳輸?shù)臄?shù)據(jù)按照一定字節(jié)數(shù)切割成子數(shù)據(jù)后,將其進行封裝后再進行傳輸。例如,若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在一個頭事務(wù)層數(shù)據(jù)報文、至少一個中間事務(wù)層數(shù)據(jù)報文和一個尾事務(wù)層數(shù)據(jù)報文中,其中,所述頭事務(wù)層數(shù)據(jù)報文和尾事務(wù)層數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文,中間事務(wù)層數(shù)據(jù)報文為壓縮事務(wù)層數(shù)據(jù)報文。并且由于中間事務(wù)層數(shù)據(jù)報文為壓縮事務(wù)層數(shù)據(jù)報文,因此在中間事務(wù)層數(shù)據(jù)報文中刪除與完全事務(wù)層數(shù)據(jù)報文相同字段,該與完全事務(wù)層數(shù)據(jù)報文相同字段可以具體為數(shù)據(jù)報文長度字段和字節(jié)使能字段配置的信息,因為即使沒有這些字段,對端設(shè)備也可以根據(jù)完全事務(wù)層數(shù)據(jù)報文和壓縮事務(wù)層數(shù)據(jù)報文中的信息獲取壓縮事務(wù)層數(shù)據(jù)報文的數(shù)據(jù)以及讀取地址或儲存地址。另外需要為完全事務(wù)層數(shù)據(jù)報文和壓縮事務(wù)層數(shù)據(jù)報文配置相應(yīng)的標識位,以使對端設(shè)備能夠識別接收到的數(shù)據(jù)報文是完全事務(wù)層數(shù)據(jù)報文還是壓縮事務(wù)層數(shù)據(jù)報文。在第一個事務(wù)層數(shù)據(jù)報文的各字段配置完整信息,該完整信息是指完全事務(wù)層數(shù)據(jù)報文的包頭信息中包含全部字段及其字段信息,且在完全事務(wù)層數(shù)據(jù)報文的包頭信息中的保留字段配置完全標識,以將所述事務(wù)層數(shù)據(jù)報文作為完全事務(wù)層數(shù)據(jù)報文;在剩余事務(wù)層數(shù)據(jù)報文與完全事務(wù)層數(shù)據(jù)報文的相近字段中配置壓縮信息,或?qū)嚎s事務(wù)層數(shù)據(jù)報文中的與完全事務(wù)層數(shù)據(jù)報文相同字段刪除,刪除的相同字段可以是數(shù)據(jù)報文長度字段和字節(jié)使能字段,且在壓縮事務(wù)層數(shù)據(jù)局報文的包頭信息中的保留字段配置壓縮標識,以將所述事務(wù)層數(shù)據(jù)報文作為壓縮事務(wù)層數(shù)據(jù)報文。將待傳輸數(shù)據(jù)封裝成至少兩個數(shù)據(jù)報文中,在該兩個數(shù)據(jù)報文中都設(shè)置有相同的數(shù)據(jù)標識,該數(shù)據(jù)標識用于表示數(shù)據(jù)報文屬于一個待傳輸數(shù)據(jù),以使當前次待傳輸數(shù)據(jù)的數(shù)據(jù)報文區(qū)別于其他次待傳輸數(shù)據(jù)的數(shù)據(jù)報文。在對端設(shè)備接收到數(shù)據(jù)報文時,可以區(qū)分屬于不同次傳輸?shù)臄?shù)據(jù)報文,避免產(chǎn)生亂序的問題,保證接收數(shù)據(jù)的準確性。
[0081]步驟103、將至少兩個數(shù)據(jù)報文通過PCIE總線傳輸給對端設(shè)備。
[0082]具體地,基于PCIE總線交互的設(shè)備將封裝的完全事務(wù)層數(shù)據(jù)報文和壓縮事務(wù)層數(shù)據(jù)報文根據(jù)PCIE總線的協(xié)議傳輸對端設(shè)備。該對端設(shè)備可以是PCIE設(shè)備。
[0083]本發(fā)明實施例提供的基于PCIE總線的報文傳輸方法,在數(shù)據(jù)傳輸過程中,通過判斷數(shù)據(jù)傳輸請求的待傳輸數(shù)據(jù)是否具備壓縮條件,如果具備壓縮條件,則將待傳輸?shù)臄?shù)據(jù)封裝成配置有完全事務(wù)層數(shù)據(jù)報文標識信息的一個完全事務(wù)層數(shù)據(jù)報文和配置壓縮事務(wù)層數(shù)據(jù)報文的標識信息的至少一個壓縮事務(wù)層數(shù)據(jù)報文,其中,壓縮事務(wù)層數(shù)據(jù)報文中缺少與完全事務(wù)層數(shù)據(jù)報文的相同字段或壓縮事務(wù)層數(shù)據(jù)報文與完全事務(wù)層數(shù)據(jù)報文相近字段中配置了壓縮信息,以使壓縮事務(wù)層數(shù)據(jù)報文相對與完全事務(wù)層數(shù)據(jù)報文傳輸?shù)男畔⑸?,待傳輸?shù)據(jù)封裝在至少兩個數(shù)據(jù)報文中,該至少兩個數(shù)據(jù)報文中設(shè)置了相同值的數(shù)據(jù)標識,并將封裝后的待傳輸數(shù)據(jù)通過PCIE總線傳輸給對端設(shè)備,以使對端設(shè)備可以根據(jù)數(shù)據(jù)標識接收屬于一次待傳輸數(shù)據(jù)的至少兩個數(shù)據(jù)報文,在保證傳輸數(shù)據(jù)不出錯的情況下,壓縮后的數(shù)據(jù)報文去除了部分信息,在傳輸過程中實現(xiàn)節(jié)約信道資源。
[0084]在上述實施例的基礎(chǔ)上,步驟101可以具體為:接收數(shù)據(jù)傳輸請求;判斷數(shù)據(jù)傳輸請求的是否為設(shè)定的可壓縮請求,若是,則待傳輸數(shù)據(jù)具備壓縮條件,否則,待傳輸數(shù)據(jù)不具備壓縮條件。即可區(qū)分不同類型的數(shù)據(jù)傳輸請求來判定其是否可壓縮。
[0085]例如,在數(shù)據(jù)寫請求或數(shù)據(jù)讀請求中,由于待傳輸數(shù)據(jù)在封裝為多個事務(wù)層數(shù)據(jù)報文之后,大部分字段都相同,所以可作為可壓縮請求。
[0086]本發(fā)明實施例提供的基于PCIE總線的報文傳輸方法,將事務(wù)層數(shù)據(jù)報文區(qū)分為攜帶完整信息和壓縮信息兩種,因而在壓縮事務(wù)層數(shù)據(jù)報文中減少了與完全事務(wù)層數(shù)據(jù)報文的重復(fù)信息,在傳輸過程中實現(xiàn)節(jié)約信道資源。[0087]進一步的,當寫地址或讀地址連續(xù)時,則目標地址字段只會發(fā)生順序且有規(guī)律的變化,也可以進行壓縮,不用攜帶完整的地址信息,而僅攜帶地址偏移量。所以,上述判斷的步驟又可以具體是:
[0088]判斷所述數(shù)據(jù)傳輸請求的類型是否為DMA數(shù)據(jù)寫請求;
[0089]若是DMA數(shù)據(jù)寫請求,則判斷所述DMA數(shù)據(jù)寫請求的寫地址是否連續(xù);
[0090]若寫地址連續(xù),則所述DMA數(shù)據(jù)寫請求的待傳輸數(shù)據(jù)具備壓縮條件。
[0091]或者是:
[0092]判斷所述數(shù)據(jù)傳輸請求的類型是否為DMA數(shù)據(jù)讀請求;
[0093]若是DMA數(shù)據(jù)讀請求,則判斷所述DMA數(shù)據(jù)讀請求的讀地址是否連續(xù);
[0094]若讀地址連續(xù),則所述DMA數(shù)據(jù)讀請求的待傳輸數(shù)據(jù)具備壓縮條件。
[0095]更進一步地,區(qū)分完全事務(wù)層數(shù)據(jù)報文和壓縮事務(wù)層數(shù)據(jù)報文的方式可以通過標識來實現(xiàn),優(yōu)選是以事務(wù)層數(shù)據(jù)報文中的保留字段攜帶完全標識或壓縮標識來區(qū)分事務(wù)層數(shù)據(jù)報文。
[0096]在本發(fā)明實施例中,通過判斷DMA數(shù)據(jù)的寫請求的寫地址是否連續(xù)或讀請求的讀地址是否連續(xù),并且如果寫地址或讀地址連續(xù),則表示具備壓縮條件,并將具備壓縮條件的中間事務(wù)層數(shù)據(jù)報文,刪除重復(fù)字段,以及減少部分字段的信息后進行傳輸。
[0097]在上述實施例中,作為一種可選的實施方式,壓縮事務(wù)層數(shù)據(jù)報文與完全事務(wù)層數(shù)據(jù)報文的相同字段至少包括:數(shù)據(jù)報文長度字段和字節(jié)使能字段。
[0098]具體地,在壓縮事務(wù)層數(shù)據(jù)報文中缺少的字段包括:數(shù)據(jù)報文長度字段和字節(jié)使能字段,由于壓縮事務(wù)層數(shù)據(jù)報文中相對于完全事務(wù)層數(shù)據(jù)報文缺少兩個字段,節(jié)約了在傳輸壓縮事務(wù)層數(shù)據(jù)報文過程中的信道資源,同時也提高了信道資源的利用率。
[0099]作為另一種可選的實施方式,壓縮事務(wù)層數(shù)據(jù)報文配置壓縮信息的字段包括目標地址字段,在該字段配置的壓縮信息為地址偏移量;地址偏移量為壓縮事務(wù)層數(shù)據(jù)報文的目標地址相對于完全事務(wù)層數(shù)據(jù)報文的目標地址的地址偏移量。
[0100]在實際應(yīng)用中,目標地址字段占用數(shù)據(jù)報文中的8個字節(jié),而如果將壓縮事務(wù)層數(shù)據(jù)報文中的目標地址字段配置為地址偏移量,該地址偏移量占用數(shù)據(jù)報文中的4個字節(jié),地址偏移量為壓縮事務(wù)層數(shù)據(jù)報文的目標地址相對于完全事務(wù)層數(shù)據(jù)報文的目標地址的地址偏移量。因此通過將壓縮事務(wù)層數(shù)據(jù)報文的目標地址字段配置為地址偏移量,減少了壓縮事務(wù)層數(shù)據(jù)報文在傳輸過程中占用的信道資源。
[0101]本發(fā)明實施例提供的基于PCIE總線的報文傳輸方法,通過在完全事務(wù)層數(shù)據(jù)報文配置完整的信息,而壓縮事務(wù)層數(shù)據(jù)報文配置的信息并不完整,壓縮事務(wù)層數(shù)據(jù)報文中缺少與完全事務(wù)層數(shù)據(jù)報文的相同的數(shù)據(jù)報文長度字段和字節(jié)使能字段或?qū)嚎s事務(wù)層數(shù)據(jù)報文中的目標地址信息配置為地址偏移量,從而在數(shù)據(jù)傳輸過程中,可以有效節(jié)約信道資源。
[0102]在上述實施例的基礎(chǔ)上,可以采用事務(wù)層數(shù)據(jù)報文中的保留字段攜帶標識的方式來區(qū)別完全事務(wù)層數(shù)據(jù)報文和壓縮事務(wù)層數(shù)據(jù)報文。此外,數(shù)據(jù)報文可以非等長劃分,但優(yōu)選是等長劃分,即所述若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在至少一個完全事務(wù)層數(shù)據(jù)報文和至少一個壓縮事務(wù)層數(shù)據(jù)報文可包括:
[0103]若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在至少兩個事務(wù)層數(shù)據(jù)報文中;所述至少兩個事務(wù)層數(shù)據(jù)報文中的報文長度相等。
[0104]此外的非等長或等長劃分方式為,若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在一個頭事務(wù)層數(shù)據(jù)報文、至少一個中間事務(wù)層數(shù)據(jù)報文和一個尾事務(wù)層數(shù)據(jù)報文中,其中,所述頭事務(wù)層數(shù)據(jù)報文和尾事務(wù)層數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文,中間事務(wù)層數(shù)據(jù)報文為壓縮事務(wù)層數(shù)據(jù)報文。此方式適用于非等長劃分方式,尾事務(wù)層數(shù)據(jù)報文的報文長度可以與頭、中間事務(wù)層數(shù)據(jù)報文的報文長度不等。
[0105]具體地,一份數(shù)據(jù)切割成多個子數(shù)據(jù),在對多個子數(shù)據(jù)封裝成多個事務(wù)層數(shù)據(jù)報文的過程中,在判斷當前的一份數(shù)據(jù)寫入地址連續(xù)后,將其切割后的子數(shù)據(jù)封裝在等長的至少兩個事務(wù)層數(shù)據(jù)報文中,并且在屬于同一份數(shù)據(jù)的第一個子數(shù)據(jù)封裝的事務(wù)層數(shù)據(jù)報文的各字段配置完整信息,并且在第一個子數(shù)據(jù)的事務(wù)層報文的保留字段配置完全標識,表示該事務(wù)層數(shù)據(jù)報文中包含完整的數(shù)據(jù)報文信息。并在剩余的事務(wù)層報文與完全事務(wù)層數(shù)據(jù)報文的相同字段配置壓縮信息,且在保留字段配置壓縮標識,表示剩余的事務(wù)層數(shù)據(jù)報文屬于當前一份數(shù)據(jù)中的其他子數(shù)據(jù)封裝的事務(wù)層數(shù)據(jù)報文。
[0106]進一步地,實際應(yīng)用中還存在一種情況,就是當前的一份數(shù)據(jù)不能切割成等分的多個子數(shù)據(jù),在按照一定字節(jié)切割的過程中,可能尾事務(wù)層數(shù)據(jù)的長度與其他子數(shù)據(jù)的長度不一致,因此,在封裝的過程中,就將待傳輸?shù)臄?shù)據(jù)封裝在一個頭事務(wù)層數(shù)據(jù)報文、至少一個中間事務(wù)層數(shù)據(jù)報文和一個尾事務(wù)層數(shù)據(jù)報文中,其中,頭事務(wù)層數(shù)據(jù)報文作為當前數(shù)據(jù)的第一個子數(shù)據(jù)事務(wù)層數(shù)據(jù)報文,包含完整的信息,屬于完全事務(wù)層數(shù)據(jù)報文,中間事務(wù)層數(shù)據(jù)報文不需要包含完整的信息,屬于壓縮事務(wù)層數(shù)據(jù)報文,由于尾事務(wù)層數(shù)據(jù)報文與其他事務(wù)層數(shù)據(jù)報文不等長,因此也需要包含完整的信息,屬于完全事務(wù)層數(shù)據(jù)報文。
[0107]圖2是本發(fā)明基于PCIE總線的報文傳輸方法實施例二的流程圖,本發(fā)明實施例可適用于任意基于PCIE總線交互的設(shè)備中,由該設(shè)備中的報文傳輸裝置來執(zhí)行。如圖2所示,本發(fā)明實施例提供的基于PCIE總線的報文傳輸方法包括:
[0108]步驟201、接收對端設(shè)備通過PCIE總線傳輸?shù)氖聞?wù)層數(shù)據(jù)報文并進行識別。
[0109]具體地,在接收到基于PCIE總線傳輸?shù)氖聞?wù)層數(shù)據(jù)報文后,對事務(wù)層數(shù)據(jù)報文中保留字段的信息進行識別,判斷接收到的事務(wù)層數(shù)據(jù)報文是完全事務(wù)層數(shù)據(jù)報文還是壓縮事務(wù)層數(shù)據(jù)報文。
[0110]步驟202、當識別到事務(wù)層數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文時,從完全事務(wù)層數(shù)據(jù)報文的各字段中獲取完整信息。
[0111]具體地,如果識別為完全事務(wù)層數(shù)據(jù)報文,則將完全事務(wù)層數(shù)據(jù)報文中獲取完整信息,該完整信息可包括:目標地址字段和數(shù)據(jù)報文長度字段等,并且目標地址字段作為基地址,而壓縮數(shù)據(jù)報文長度字段作為地址增量的偏移量。
[0112]步驟203、當識別到事務(wù)層數(shù)據(jù)報文為壓縮事務(wù)層數(shù)據(jù)報文時,根據(jù)數(shù)據(jù)標識將屬于同一次待傳輸數(shù)據(jù)的完全事務(wù)層數(shù)據(jù)報文中的完整信息恢復(fù)壓縮事務(wù)層數(shù)據(jù)報文中缺少的字段或配置壓縮信息的字段,獲得壓縮事務(wù)層數(shù)據(jù)報文。
[0113]具體地,步驟203可以為:當識別到事務(wù)層數(shù)據(jù)報文為壓縮事務(wù)層數(shù)據(jù)報文時,從壓縮事務(wù)層數(shù)據(jù)報文的目標地址字段中獲得地址偏移量;從與壓縮事務(wù)層數(shù)據(jù)報文的數(shù)據(jù)標識相同的完全事務(wù)層數(shù)據(jù)報文中的目標地址字段中獲得基地址;將地址偏移量與基地址相加,得到壓縮數(shù)據(jù)層報文的目標地址信息。[0114]如果識別為壓縮事務(wù)層數(shù)據(jù)報文,則從壓縮事務(wù)層數(shù)據(jù)報文中提取數(shù)據(jù)標識,該數(shù)據(jù)標識可以是DMA_ID字段。根據(jù)DMA_ID字段就可以判斷當前接收到的事務(wù)層數(shù)據(jù)報文屬于哪一次數(shù)據(jù)讀請求或數(shù)據(jù)寫請求,不會產(chǎn)生亂序,并且根據(jù)屬于同一次待傳輸數(shù)據(jù)的完全事物層數(shù)據(jù)報文中的完整信息恢復(fù)壓縮事務(wù)層數(shù)據(jù)報文中缺少的字段或配置壓縮信息的字段。
[0115]對于壓縮事務(wù)層數(shù)據(jù)報文中缺少的字段,可以從屬于當前次待傳輸數(shù)據(jù)的完全事務(wù)層數(shù)據(jù)報文中獲取,而對于壓縮事務(wù)層數(shù)據(jù)報文中配置壓縮信息的字段,可以從壓縮事務(wù)層數(shù)據(jù)報文的目標地址字段中獲得地址偏移量;從與壓縮事務(wù)層數(shù)據(jù)報文的數(shù)據(jù)標識相同的完全事務(wù)層數(shù)據(jù)報文中的目標地址字段中獲得基地址;將地址偏移量與基地址相加,得到壓縮數(shù)據(jù)層報文的目標地址信息。
[0116]步驟204、拼接各事務(wù)層數(shù)據(jù)報文以獲取對端設(shè)備數(shù)據(jù)傳輸請求的待傳輸數(shù)據(jù)。
[0117]當接收到所有子數(shù)據(jù)的事務(wù)層數(shù)據(jù)報文后,可以根據(jù)各事務(wù)層數(shù)據(jù)報文拼接出完整的待傳輸數(shù)據(jù)。
[0118]本發(fā)明實施例提供的PCIE總線的報文傳輸方法,通過接收對端設(shè)備發(fā)送的事務(wù)層數(shù)據(jù)報文,并對其進行解析識別,判斷接收的是事務(wù)層數(shù)據(jù)報文是完全事務(wù)層數(shù)據(jù)報文還是壓縮事務(wù)層數(shù)據(jù)報文,在完全事務(wù)層報文中提取完整的信息,在壓縮事務(wù)層數(shù)據(jù)報文中獲取壓縮信息,最后就可以將收到的事務(wù)層數(shù)據(jù)報文拼接得到完整的待傳輸數(shù)據(jù)。
[0119]在上述實施例二的基礎(chǔ)上,上述步驟201具體可以包括:
[0120]接收對端設(shè)備基于PCIE總線傳輸?shù)氖聞?wù)層數(shù)據(jù)報文;
[0121]從所述事務(wù)層數(shù)據(jù)報文中解析設(shè)定字段的標識;
[0122]當識別到所述標識為完全標識時,則所述事務(wù)層數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文;
[0123]當識別到所述標識為壓縮標識時,則所述事務(wù)層數(shù)據(jù)報文為壓縮事務(wù)層數(shù)據(jù)報文。
[0124]本實施例通過對事務(wù)層數(shù)據(jù)報文中的設(shè)定的字段標識進行解析,可以判斷當前收到的事務(wù)層數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文還是壓縮事務(wù)層數(shù)據(jù)報文,具體地,字段標識可以設(shè)置在事務(wù)層數(shù)據(jù)報文中保留字段,從而順利接收并解析得到待傳輸數(shù)據(jù)。
[0125]在上述實施例的基礎(chǔ)上,壓縮事務(wù)層數(shù)據(jù)報文中,刪除所述數(shù)據(jù)報文長度字段和字節(jié)使能字段,或?qū)⒛繕说刂纷侄闻渲玫膲嚎s信息為地址偏移量。
[0126]具體地,所有的壓縮事務(wù)層數(shù)據(jù)報文長度相同,因此可以刪除數(shù)據(jù)報文長度字段配置的表征數(shù)據(jù)報文長度的信息,對端設(shè)備接收待壓縮事務(wù)層數(shù)據(jù)報文時可以根據(jù)完全事務(wù)層數(shù)據(jù)報文的信息獲取壓縮事務(wù)層數(shù)據(jù)報文的報文長度信息,而對于對端設(shè)備而言,壓縮事務(wù)層數(shù)據(jù)報文中的字節(jié)使能字段也可以刪除,以節(jié)約數(shù)據(jù)傳輸過程中的信道資源。對端設(shè)備還可以根據(jù)地址字段配置的地址偏移量計算得到壓縮事務(wù)層數(shù)據(jù)報文寫入或讀取地址。
[0127]在實際應(yīng)用中,本發(fā)明實施例提供的基于PCIE總線的報文傳輸過程中,和現(xiàn)有技術(shù)中的事務(wù)層數(shù)據(jù)報文不同的是,本發(fā)明將事務(wù)層數(shù)據(jù)報文中原有的保留字段賦予了新的意義,可以和現(xiàn)有技術(shù)相同的是,本發(fā)明實施例中的保留字段與現(xiàn)有技術(shù)中的保留字段位置相同。例如,保留字段包括的三個比特位分別位于第二字節(jié)中的第7位、第二字節(jié)中的第3位以及第字節(jié)中的第I位,通過保留字段內(nèi)容的不同可以區(qū)分事務(wù)層數(shù)據(jù)報文的類型,SP事務(wù)層數(shù)據(jù)報文是屬于普通事務(wù)層數(shù)據(jù)報文還是完全事務(wù)層數(shù)據(jù)報文或具備壓縮條件的壓縮事務(wù)層數(shù)據(jù)報文。更進一步地,可以根據(jù)保留字段的信息判斷當前發(fā)送的事務(wù)層數(shù)據(jù)報文是頭事務(wù)層數(shù)據(jù)報文、中間事務(wù)層數(shù)據(jù)報文或尾事務(wù)層數(shù)據(jù)報文,本發(fā)明通過使用保留字段的三個比特位對事務(wù)層數(shù)據(jù)報文進行區(qū)分,具體地,如果三個比特位為000,則表示當前的事務(wù)層數(shù)據(jù)報文為普通事務(wù)層數(shù)據(jù)報文;如果三個比特位不是000,則表示當前的事務(wù)層數(shù)據(jù)報文是完全事務(wù)層數(shù)據(jù)報文或具備壓縮條件的事務(wù)層數(shù)據(jù)報文。
[0128]下面將針對當前的事務(wù)層數(shù)據(jù)報文是具備壓縮條件的事務(wù)層數(shù)據(jù)報文,更進一步地,可以通過DMA數(shù)據(jù)寫請求和DMA數(shù)據(jù)讀請求對上述實施例提供的基于PCIE總線的報文傳輸方法做進一步詳細地說明。
[0129]本實施例將以DMA數(shù)據(jù)寫請求為例進行說明,首先DMA數(shù)據(jù)寫請求的傳輸過程涉及DMA數(shù)據(jù)寫請求發(fā)起端和DMA數(shù)據(jù)寫請求接收端。
[0130]圖3是本發(fā)明實施例中DMA數(shù)據(jù)讀寫請求發(fā)起端增加控制邏輯之后的流程圖,如圖3所示,該方法包括如下步驟:
[0131]步驟301、DMA發(fā)起端判斷DMA數(shù)據(jù)讀寫請求的讀寫地址是否連續(xù),如果是,執(zhí)行步驟302和步驟303,若否,則執(zhí)行步驟304 ;
[0132]步驟302、將待傳輸?shù)臄?shù)據(jù)按照一定字節(jié)長度進行切割后封裝成多個事務(wù)層數(shù)據(jù)報文;
[0133]步驟303、使用具備壓縮條件的TLP報文傳輸模式進行事務(wù)層數(shù)據(jù)報文的傳送;
[0134]步驟304、按照已有的普通模式傳送該DMA數(shù)據(jù)讀寫請求。
[0135]步驟303中,第一個事務(wù)層數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文,在此事務(wù)層數(shù)據(jù)報文中的各字段配置完整信息,并且在數(shù)據(jù)傳輸過程中,將包含“生成當前報文”的發(fā)起端設(shè)備的總線號、設(shè)備號和功能號的Requester ID字段更改為DMA_ID字段。對于數(shù)據(jù)寫請求報文,由于接收端收到發(fā)起端的事務(wù)層數(shù)據(jù)報文后,不需要對發(fā)起端做應(yīng)答,因此RequesterID字段對于寫請求報文沒有實際意義,因此可以將其更改,因為在PCIE總線上傳輸數(shù)據(jù)的過程中,存在后一個存儲器的事務(wù)層數(shù)據(jù)報文超越前一個存儲器的事務(wù)層數(shù)據(jù)報文提前執(zhí)行,這樣就需要采用DMA_ID字段來對多次DMA數(shù)據(jù)讀寫過程進行標識,不同次的DMA讀寫請求的事務(wù)層數(shù)據(jù)報文中的DMA_ID字段是不同的,從而將當前的DMA數(shù)據(jù)傳輸過程與PCIE總線上其他的DMA數(shù)據(jù)傳輸過程區(qū)別開來。接收端根據(jù)DMA_ID字段可以區(qū)分當前的壓縮后的事務(wù)層數(shù)據(jù)報文屬于哪一次DMA數(shù)據(jù)傳輸過程。
[0136]在實際應(yīng)用過程中,完全事務(wù)層數(shù)據(jù)報文可以是DMA數(shù)據(jù)傳輸過程中的第一個事務(wù)層數(shù)據(jù)報文和/或最后一個事務(wù)層數(shù)據(jù)報文,也就是一個頭事務(wù)層數(shù)據(jù)報文和/或一個尾事務(wù)層數(shù)據(jù)報文,在完全事務(wù)層數(shù)據(jù)報文中,配置了完整信息的各字段可以有數(shù)據(jù)報文長度字段、字節(jié)使能字段、特性字段、傳輸功能字段及目標地址字段等,這些字段通常情況下在各事務(wù)層數(shù)據(jù)報文中內(nèi)容相同,或者是按照規(guī)律變化的,在壓縮事務(wù)層數(shù)據(jù)報文中,刪除所述數(shù)據(jù)報文長度字段、字節(jié)使能字段、特性字段、傳輸功能字段,且所述目標地址字段配置的壓縮信息為寫地址偏移量。
[0137]圖4a是本發(fā)明實施例中數(shù)據(jù)寫請求的事務(wù)層數(shù)據(jù)報文中的頭事務(wù)層數(shù)據(jù)報文包頭格式示意圖、圖4b是本發(fā)明實施例中數(shù)據(jù)寫請求的事務(wù)層數(shù)據(jù)報文中中間事務(wù)層數(shù)據(jù)報文包頭格式示意圖、圖4c是本發(fā)明實施例中數(shù)據(jù)寫請求的事務(wù)層數(shù)據(jù)報文中尾事務(wù)層數(shù)據(jù)報文包頭格式示意圖,如圖4a所示,一個頭事務(wù)層數(shù)據(jù)報文包頭的長度為4個雙字,而如圖4b所示,一個中間事務(wù)層數(shù)據(jù)報文包頭的長度為I個雙字,如圖4c所示,一個尾事務(wù)層數(shù)據(jù)報文包頭的長度為4個雙字。
[0138]在DMA接收端,與DMA發(fā)起端配合完成一次DMA寫數(shù)據(jù)傳輸過程。DMA接收端接收到一個事務(wù)層數(shù)據(jù)報文后,對事務(wù)層數(shù)據(jù)報文的類型標識位進行解析和判斷,圖5是本發(fā)明實施例中DMA接收端增加控制邏輯之后的流程圖,如圖5所示:
[0139]步驟501、接收發(fā)起端基于PCIE總線傳輸?shù)氖聞?wù)層數(shù)據(jù)報文并進行識別;
[0140]步驟502a、如果識別事務(wù)層數(shù)據(jù)報文的保留字段的三個字節(jié)為000,則識別為按照普通模式傳輸?shù)氖聞?wù)層數(shù)據(jù)報文,按照普通的事務(wù)層數(shù)據(jù)報文進行接收;
[0141]步驟502b、如果識別相應(yīng)地事務(wù)層數(shù)據(jù)報文中保留字段的三個字節(jié)為100,則識別為頭事務(wù)層數(shù)據(jù)報文,然后執(zhí)行步驟503b ;
[0142]步驟503b、提取該頭事務(wù)層數(shù)據(jù)報文中數(shù)據(jù)報文長度字段信息,并保存該頭事務(wù)層數(shù)據(jù)報文的目標地址字段,作為當前此次DMA寫數(shù)據(jù)傳輸?shù)幕刂?,最后?zhí)行步驟504b ;
[0143]步驟504b、保存該頭事務(wù)層數(shù)據(jù)報文的DMA_ID字段,以確定當前此次DMA寫數(shù)據(jù)傳輸?shù)男蛱枺?br>
[0144]步驟502c、如果識別相應(yīng)地事務(wù)層數(shù)據(jù)報文中保留字段的三個字節(jié)為101,則識別為中間事務(wù)層數(shù)據(jù)報文,然后執(zhí)行步驟503c ;
[0145]步驟503c、提取報文包頭中的DMA_ID字段信息,以與接收到此事務(wù)層數(shù)據(jù)報文之前的事務(wù)層數(shù)據(jù)報文進行匹配,以確定當前的中間事務(wù)層數(shù)據(jù)報文屬于哪一次DMA寫數(shù)據(jù)傳輸過程,最后執(zhí)行步驟504c ;
[0146]步驟504c、計算偏移量及當前事務(wù)層數(shù)據(jù)報文的寫入地址;
[0147]步驟502d、如果識別相應(yīng)地事務(wù)層數(shù)據(jù)報文中保留字段的三個字節(jié)為110,則識別為尾事務(wù)層數(shù)據(jù)報文,然后執(zhí)行步驟503d ;
[0148]步驟503d、提取尾事務(wù)層數(shù)據(jù)報文中長度字段信息及目標地址信息,進行正常的傳輸。
[0149]另外,在DMA接收端,還包括一個DMA狀態(tài)表,用來保存每一次DMA寫數(shù)據(jù)傳輸過程中對應(yīng)的DMA_ID、基地址信息及地址增量,在頭事務(wù)層數(shù)據(jù)報文所攜帶的信息中就可以獲取當前此次DMA寫數(shù)據(jù)傳輸過程對應(yīng)的DMA_ID、基地址信息,對于地址增量字段初始值為0,地址增量的大小隨著DMA接收端接收到的事務(wù)層數(shù)據(jù)報文個數(shù)的增加而增加,本發(fā)明各實施例中的DMA_ID字段屬于數(shù)據(jù)標識。
[0150]通過上述過程,DMA接收端和DMA發(fā)送端配合完成DMA寫數(shù)據(jù)傳輸?shù)耐暾^程,在上述報文處理過程中,既存在按照正常模式進行傳輸?shù)臄?shù)據(jù)報文,還包括按照壓縮模式進行傳輸?shù)臄?shù)據(jù)報文,在使用壓縮模式進行傳輸?shù)倪^程中,由于中間事務(wù)層數(shù)據(jù)報文刪除了原有的冗余信息,使得信道資源占用比例大大減少,節(jié)約了信道資源。
[0151]本發(fā)明的另一實施例將對DMA讀數(shù)據(jù)請求過程做進一步地說明,在本實施例中,與DMA數(shù)據(jù)寫請求過程不同的是保留字段的標識字段是不同的,另外,和DMA數(shù)據(jù)寫請求過程不同的是,在DMA數(shù)據(jù)讀請求過程中事務(wù)層數(shù)據(jù)報文包含中的數(shù)據(jù)載荷字段是要寫入的數(shù)據(jù),而DMA數(shù)據(jù)讀請求過程中事務(wù)層數(shù)據(jù)報文是不存在載荷字段的。其他的與DMA數(shù)據(jù)寫請求過程類似,在此不再贅述。
[0152]圖6是本發(fā)明基于PCIE總線的報文傳輸裝置實施例一的結(jié)構(gòu)示意圖,如圖6所示,本發(fā)明實施例提供的基于PCIE總線的報文傳輸裝置包括:接收判斷模塊11、封裝模塊12和傳輸模塊13,其中,接收判斷模塊11,用于接收數(shù)據(jù)傳輸請求,并根據(jù)所述數(shù)據(jù)傳輸請求判斷所述數(shù)據(jù)傳輸請求所請求的待傳輸數(shù)據(jù)是否具備壓縮條件;封裝模塊12,用于若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在至少兩個數(shù)據(jù)報文中;其中,所述至少兩個數(shù)據(jù)報文的第一個數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文和所述至少兩個數(shù)據(jù)報文的其他數(shù)據(jù)報文中的至少一個為壓縮事務(wù)層數(shù)據(jù)報文,各所述數(shù)據(jù)報文中配置有標識所述數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文或壓縮事務(wù)層數(shù)據(jù)報文的信息;所述壓縮事務(wù)層數(shù)據(jù)報文缺少與完全事務(wù)層數(shù)據(jù)報文的字段或所述壓縮事務(wù)層數(shù)據(jù)報文的至少一個字段中配置為壓縮信息;屬于同一次待傳輸數(shù)據(jù)的數(shù)據(jù)報文的數(shù)據(jù)標識設(shè)置為相同值,以使當前次待傳輸數(shù)據(jù)的數(shù)據(jù)報文區(qū)別于其他次待傳輸數(shù)據(jù)的數(shù)據(jù)報文;傳輸模塊13,用于將所述至少兩個數(shù)據(jù)報文通過PCIE總線傳輸給對端設(shè)備。
[0153]在上述裝置實施例一的基礎(chǔ)上,接收判斷模塊11,包括:第一接收單元111和判斷單元112,其中第一接收單元111用于接收數(shù)據(jù)傳輸請求;判斷單元112,用于判斷所述數(shù)據(jù)傳輸請求的類型是否為設(shè)定的可壓縮請求,若是,則待傳輸數(shù)據(jù)具備壓縮條件。判斷單元112具體用于:判斷所述數(shù)據(jù)傳輸請求的類型是否為DMA數(shù)據(jù)讀寫請求,若是DMA數(shù)據(jù)讀寫請求,則判斷所述DMA數(shù)據(jù)讀寫請求的讀寫地址是否連續(xù),若讀寫地址連續(xù),則所述DMA數(shù)據(jù)讀寫請求的待傳輸數(shù)據(jù)具備壓縮條件。
[0154]在上述實施例的基礎(chǔ)上,優(yōu)選地,封裝模塊12還可以包括:等長封裝單元,其中,等長封裝單元用于若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在至少兩個事務(wù)層數(shù)據(jù)報文中;所述至少兩個事務(wù)層數(shù)據(jù)報文中的報文長度相等。
[0155]更進一步地,封裝模塊12,還可以用于若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在一個頭事務(wù)層數(shù)據(jù)報文、至少一個中間事務(wù)層數(shù)據(jù)報文和一個尾事務(wù)層數(shù)據(jù)報文中,其中,所述頭事務(wù)層數(shù)據(jù)報文和尾事務(wù)層數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文,中間事務(wù)層數(shù)據(jù)報文為壓縮事務(wù)層數(shù)據(jù)報文。
[0156]本實施例的基于PCIE總線的報文傳輸裝置,可以用于執(zhí)行圖1所示方法實施例的技術(shù)方案,其實現(xiàn)原理類似,此處不再贅述。
[0157]本發(fā)明實施例提供的基于PCIE總線的報文傳輸裝置,在數(shù)據(jù)傳輸過程中,通常是對目標設(shè)備存儲器的連續(xù)地址進行讀或?qū)?,通過接收判斷模塊11判斷數(shù)據(jù)傳輸請求是否具備壓縮條件,如果具備壓縮條件,則利用封裝模塊12將待傳輸?shù)臄?shù)據(jù)封裝成至少一個包含完整信息的完全事務(wù)層數(shù)據(jù)報文和至少一個壓縮事務(wù)層數(shù)據(jù)報文,并通過傳輸模塊13將封裝后的待傳輸數(shù)據(jù)通過PCIE總線傳輸給對端設(shè)備,在保證傳輸數(shù)據(jù)不出錯的情況下,壓縮后的數(shù)據(jù)報文減少了部分字段信息,在傳輸過程中實現(xiàn)節(jié)約信道資源。
[0158]圖7是本發(fā)明基于PCIE總線的報文傳輸裝置實施例二的結(jié)構(gòu)示意圖,如圖7所示,本發(fā)明提供的一種基于PCIE總線的報文傳輸裝置,該裝置包括:接收識別模塊21、獲取模塊22、修復(fù)模塊23和拼接模塊24,其中,接收識別模塊21,用于接收對端設(shè)備通過PCIE總線傳輸?shù)氖聞?wù)層數(shù)據(jù)報文并進行識別;獲取模塊22,用于當識別到所述事務(wù)層數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文時,從所述完全事務(wù)層數(shù)據(jù)報文的各字段中獲取完整信息;修復(fù)模塊23,用于當識別到所述事務(wù)層數(shù)據(jù)報文為壓縮事務(wù)層數(shù)據(jù)報文時,根據(jù)數(shù)據(jù)標識將屬于同一次待傳輸數(shù)據(jù)的所述完全事務(wù)層數(shù)據(jù)報文中的完整信息恢復(fù)所述壓縮事務(wù)層數(shù)據(jù)報文中缺少的字段或配置壓縮信息的字段,獲得壓縮事務(wù)層數(shù)據(jù)報文;拼接模塊24,用于拼接各事務(wù)層數(shù)據(jù)報文獲取對端設(shè)備數(shù)據(jù)發(fā)送的待傳輸數(shù)據(jù)。
[0159]優(yōu)選地,所述接收識別模塊21具體包括:第二接收單元211、標識解析單元212、完全報文識別單元213和壓縮報文識別單元214,其中,第二接收單元211,用于接收對端設(shè)備基于PCIE總線傳輸?shù)氖聞?wù)層數(shù)據(jù)報文;標識解析單元212,用于從所述事務(wù)層數(shù)據(jù)報文中解析設(shè)定字段的標識;完全報文識別單元213,用于當識別到所述標識為完全標識時,則所述事務(wù)層數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文;壓縮報文識別單元214,用于當識別到所述標識為壓縮標識時,則所述事務(wù)層數(shù)據(jù)報文為壓縮事務(wù)層數(shù)據(jù)報文。
[0160]更為優(yōu)選地,所述修復(fù)模塊23具體用于:從所述壓縮事務(wù)層數(shù)據(jù)報文的目標地址字段中獲得地址偏移量;從與所述壓縮事務(wù)層數(shù)據(jù)報文的數(shù)據(jù)標識相同的完全事務(wù)層數(shù)據(jù)報文中的目標地址字段中獲得基地址;將地址偏移量與基地址相加,得到所述壓縮數(shù)據(jù)層報文的目標地址信息。
[0161]本實施例提供的基于PCIE總線的報文傳輸裝置,可以用于執(zhí)行圖2所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0162]圖8是本發(fā)明基于PCIE總線的報文傳輸發(fā)起端設(shè)備的結(jié)構(gòu)示意圖,如圖8所示,本發(fā)明實施例提供的基于PCIE總線的報文傳輸發(fā)起端設(shè)備600包括總線610 ;以及連接到總線610的處理器620和存儲器630,其中該存儲器630用于存儲指令,該處理器620用于執(zhí)行該指令用于接收數(shù)據(jù)傳輸請求,并根據(jù)所述數(shù)據(jù)傳輸請求判斷所述數(shù)據(jù)傳輸請求所請求的待傳輸數(shù)據(jù)是否具備壓縮條件;該處理器620執(zhí)行該指令還用于若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在至少兩個數(shù)據(jù)報文中;其中,所述至少兩個數(shù)據(jù)報文的第一個數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文和所述至少兩個數(shù)據(jù)報文的其他數(shù)據(jù)報文中的至少一個為壓縮事務(wù)層數(shù)據(jù)報文,各所述數(shù)據(jù)報文中配置有標識所述數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文或壓縮事務(wù)層數(shù)據(jù)報文的信息;所述壓縮事務(wù)層數(shù)據(jù)報文缺少與完全事務(wù)層數(shù)據(jù)報文的字段或所述壓縮事務(wù)層數(shù)據(jù)報文的至少一個字段中配置為壓縮信息;屬于同一次待傳輸數(shù)據(jù)的數(shù)據(jù)報文的數(shù)據(jù)標識設(shè)置為相同值,以使當前次待傳輸數(shù)據(jù)的數(shù)據(jù)報文區(qū)別于其他次待傳輸數(shù)據(jù)的數(shù)據(jù)報文;該處理器620執(zhí)行該指令還用于將所述至少兩個數(shù)據(jù)報文通過PCIE總線傳輸給對端設(shè)備。
[0163]圖9是本發(fā)明基于PCIE總線的報文傳輸接收端設(shè)備的結(jié)構(gòu)示意圖,如圖9所示,本發(fā)明實施例提供的基于PCIE總線的報文傳輸接收端設(shè)備700包括總線710 ;以及連接到總線710的處理器720和存儲器730,其中該存儲器730用于存儲指令,該處理器720用于執(zhí)行該指令用于接收對端設(shè)備通過PCIE總線傳輸?shù)氖聞?wù)層數(shù)據(jù)報文并進行識別;該處理器720執(zhí)行該指令還用于當識別到所述事務(wù)層數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文時,從所述完全事務(wù)層數(shù)據(jù)報文的各字段中獲取完整信息;該處理器720執(zhí)行該指令還用于當識別到所述事務(wù)層數(shù)據(jù)報文為壓縮事務(wù)層數(shù)據(jù)報文時,根據(jù)數(shù)據(jù)標識將屬于同一次待傳輸數(shù)據(jù)的所述完全事務(wù)層數(shù)據(jù)報文中的完整信息恢復(fù)所述壓縮事務(wù)層數(shù)據(jù)報文中缺少的字段或配置壓縮信息的字段,獲得壓縮事務(wù)層數(shù)據(jù)報文;該處理器720執(zhí)行該指令還用于拼接各事務(wù)層數(shù)據(jù)報文以獲取對端設(shè)備數(shù)據(jù)發(fā)送的待傳輸數(shù)據(jù)。[0164]本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0165]最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。
【權(quán)利要求】
1.一種基于外圍組件互連快遞PCIE總線的報文傳輸方法,其特征在于,包括: 接收數(shù)據(jù)傳輸請求,并根據(jù)所述數(shù)據(jù)傳輸請求判斷所述數(shù)據(jù)傳輸請求所請求的待傳輸數(shù)據(jù)是否具備壓縮條件; 若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在至少兩個數(shù)據(jù)報文中;其中,所述至少兩個數(shù)據(jù)報文的第一個數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文和所述至少兩個數(shù)據(jù)報文的其他數(shù)據(jù)報文中的至少一個為壓縮事務(wù)層數(shù)據(jù)報文,各所述數(shù)據(jù)報文中配置有標識所述數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文或壓縮事務(wù)層數(shù)據(jù)報文的信息;與所述完全事務(wù)層數(shù)據(jù)報文相比,所述壓縮事務(wù)層數(shù)據(jù)報文缺少至少一個字段或所述壓縮事務(wù)層數(shù)據(jù)報文的至少一個字段中配置壓縮信息;將所述至少兩個數(shù)據(jù)報文的數(shù)據(jù)標識設(shè)置為相同值; 將所述至少兩個數(shù)據(jù)報文通過PCIE總線傳輸給對端設(shè)備。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述接收數(shù)據(jù)傳輸請求,并根據(jù)所述數(shù)據(jù)傳輸請求判斷待傳輸數(shù)據(jù)是否具備壓縮條件包括: 接收數(shù)據(jù)傳輸請求; 判斷所述數(shù)據(jù)傳輸請求的類型是否為設(shè)定的可壓縮請求,若是,則待傳輸數(shù)據(jù)具備壓縮條件。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述判斷所述數(shù)據(jù)傳輸請求的類型是否為設(shè)定的可壓縮請求,若是,則待傳輸數(shù)據(jù)具備壓縮條件包括: 判斷所述數(shù)據(jù)傳輸請求 的類型是否為直接內(nèi)存存取DMA數(shù)據(jù)讀寫請求,所述DMA數(shù)據(jù)讀寫請求包含DMA數(shù)據(jù)寫請求和DMA數(shù)據(jù)讀請求; 若是DMA數(shù)據(jù)讀寫請求,則判斷所述DMA數(shù)據(jù)讀寫請求的讀寫地址是否連續(xù); 若讀寫地址連續(xù),則所述DMA數(shù)據(jù)讀寫請求的待傳輸數(shù)據(jù)具備壓縮條件。
4.根據(jù)權(quán)利要求1-3任一所述的方法,其特征在于,所述壓縮事務(wù)層數(shù)據(jù)報文的包頭缺少的至少一個字段包括:數(shù)據(jù)報文長度字段和字節(jié)使能字段。
5.根據(jù)權(quán)利要求1-3任一所述的方法,其特征在于,所述壓縮事務(wù)層數(shù)據(jù)報文配置壓縮信息的字段包括目標地址字段,在該字段配置的壓縮信息為地址偏移量;所述地址偏移量為所述壓縮事務(wù)層數(shù)據(jù)報文的目標地址相對于完全事務(wù)層數(shù)據(jù)報文的目標地址的地址偏移量。
6.根據(jù)權(quán)利要求1-3任一所述的方法,其特征在于,所述若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在至少兩個數(shù)據(jù)報文中包括: 若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在至少兩個事務(wù)層數(shù)據(jù)報文中;所述至少兩個事務(wù)層數(shù)據(jù)報文中的報文長度相等。
7.根據(jù)權(quán)利要求1-3任一所述的方法,其特征在于,所述若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在至少兩個數(shù)據(jù)報文中包括: 若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在一個頭事務(wù)層數(shù)據(jù)報文、至少一個中間事務(wù)層數(shù)據(jù)報文和一個尾事務(wù)層數(shù)據(jù)報文中,其中,所述頭事務(wù)層數(shù)據(jù)報文和尾事務(wù)層數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文,中間事務(wù)層數(shù)據(jù)報文為壓縮事務(wù)層數(shù)據(jù)報文。
8.一種基于外圍組件互連快遞PCIE總線的報文傳輸方法,其特征在于,包括: 接收對端設(shè)備通過PCIE總線傳輸?shù)氖聞?wù)層數(shù)據(jù)報文并進行識別; 當識別到所述事務(wù)層數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文時,從所述完全事務(wù)層數(shù)據(jù)報文的各字段中獲取完整信息; 當識別到所述事務(wù)層數(shù)據(jù)報文為壓縮事務(wù)層數(shù)據(jù)報文時,根據(jù)數(shù)據(jù)標識將屬于同一次待傳輸數(shù)據(jù)的所述完全事務(wù)層數(shù)據(jù)報文中的完整信息恢復(fù)所述壓縮事務(wù)層數(shù)據(jù)報文中缺少的字段或配置壓縮信息的字段,獲得壓縮事務(wù)層數(shù)據(jù)報文; 拼接各事務(wù)層數(shù)據(jù)報文以獲取對端設(shè)備數(shù)據(jù)發(fā)送的待傳輸數(shù)據(jù)。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述接收對端設(shè)備基于PCIE總線傳輸?shù)氖聞?wù)層數(shù)據(jù)報文并進行識別包括: 接收對端設(shè)備基于PCIE總線傳輸?shù)氖聞?wù)層數(shù)據(jù)報文; 從所述事務(wù)層數(shù)據(jù)報文中解析設(shè)定字段的標識; 當識別到所述標識為完全標識時,則所述事務(wù)層數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文; 當識別到所述標識為壓縮標識時,則所述事務(wù)層數(shù)據(jù)報文為壓縮事務(wù)層數(shù)據(jù)報文。
10.根據(jù)權(quán)利要求8或9所述的方法,其特征在于,所述根據(jù)數(shù)據(jù)標識將屬于同一次待傳輸數(shù)據(jù)的所述完全事務(wù)層數(shù)據(jù)報文中的完整信息恢復(fù)所述壓縮事務(wù)層數(shù)據(jù)報文中缺少的字段或配置壓縮信息的字段,獲得壓縮事務(wù)層數(shù)據(jù)報文,包括: 從所述壓縮事務(wù)層數(shù)據(jù)報文的目標地址字段中獲得地址偏移量; 從與所述壓縮事務(wù)層 數(shù)據(jù)報文的數(shù)據(jù)標識相同的完全事務(wù)層數(shù)據(jù)報文中的目標地址字段中獲得基地址; 將地址偏移量與基地址相加,得到所述壓縮數(shù)據(jù)層報文的目標地址信息。
11.一種基于外圍組件互連快遞PCIE總線的報文傳輸裝置,其特征在于,包括: 接收判斷模塊,用于接收數(shù)據(jù)傳輸請求,并根據(jù)所述數(shù)據(jù)傳輸請求判斷所述數(shù)據(jù)傳輸請求所請求的待傳輸數(shù)據(jù)是否具備壓縮條件; 封裝模塊,用于若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在至少兩個數(shù)據(jù)報文中;其中,所述至少兩個數(shù)據(jù)報文的第一個數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文和所述至少兩個數(shù)據(jù)報文的其他數(shù)據(jù)報文中的至少一個為壓縮事務(wù)層數(shù)據(jù)報文,各所述數(shù)據(jù)報文中配置有標識所述數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文或壓縮事務(wù)層數(shù)據(jù)報文的信息;與所述完全事務(wù)層數(shù)據(jù)報文相比,所述壓縮事務(wù)層數(shù)據(jù)報文缺少至少一個字段或所述壓縮事務(wù)層數(shù)據(jù)報文的至少一個字段中配置壓縮信息;將所述至少兩個數(shù)據(jù)報文的數(shù)據(jù)標識設(shè)置為相同值; 傳輸模塊,用于將所述至少兩個數(shù)據(jù)報文通過PCIE總線傳輸給對端設(shè)備。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述接收模塊,包括: 第一接收單元,用于接收數(shù)據(jù)傳輸請求; 判斷單元,用于判斷所述數(shù)據(jù)傳輸請求的類型是否為設(shè)定的可壓縮請求,若是,則待傳輸數(shù)據(jù)具備壓縮條件。
13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述判斷單元具體用于: 判斷所述數(shù)據(jù)傳輸請求的類型是否為直接內(nèi)存存取DMA數(shù)據(jù)讀寫請求,所述DMA數(shù)據(jù)讀寫請求包含DMA數(shù)據(jù)寫請求和DMA數(shù)據(jù)讀請求; 若是DMA數(shù)據(jù)讀寫請求,則判斷所述DMA數(shù)據(jù)讀寫請求的讀寫地址是否連續(xù); 若讀寫地址連續(xù),則所述DMA數(shù)據(jù)讀寫請求的待傳輸數(shù)據(jù)具備壓縮條件。
14.根據(jù)權(quán)利要求11-13任一所述的裝置,其特征在于,所述封裝模塊包括: 等長封裝單元,用于若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在至少兩個事務(wù)層數(shù)據(jù)報文中;所述至少兩個事務(wù)層數(shù)據(jù)報文中的報文長度相等。
15.根據(jù)權(quán)利要求11-13任一項所述的裝置,其特征在于,所述封裝模塊具體用于:若具備壓縮條件,則將所述待傳輸數(shù)據(jù)封裝在一個頭事務(wù)層數(shù)據(jù)報文、至少一個中間事務(wù)層數(shù)據(jù)報文和一個尾事務(wù)層數(shù)據(jù)報文中,其中,所述頭事務(wù)層數(shù)據(jù)報文和尾事務(wù)層數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文,中間事務(wù)層數(shù)據(jù)報文為壓縮事務(wù)層數(shù)據(jù)報文。
16.一種基于外圍組件互連快遞PCIE總線的報文傳輸裝置,其特征在于,包括: 接收識別模塊,用于接收對端設(shè)備通過PCIE總線傳輸?shù)氖聞?wù)層數(shù)據(jù)報文并進行識別; 獲取模塊,用于當識別到所述事務(wù)層數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文時,從所述完全事務(wù)層數(shù)據(jù)報文的各字段中獲取完整信息; 修復(fù)模塊,用于當識別到所述事務(wù)層數(shù)據(jù)報文為壓縮事務(wù)層數(shù)據(jù)報文時,根據(jù)數(shù)據(jù)標識將屬于同一次待傳輸數(shù)據(jù)的所述完全事務(wù)層數(shù)據(jù)報文中的完整信息恢復(fù)所述壓縮事務(wù)層數(shù)據(jù)報文中缺少的字段或配置壓縮信息的字段,獲得壓縮事務(wù)層數(shù)據(jù)報文; 拼接模塊,用于拼接各事務(wù)層數(shù)據(jù)報文以獲取對端設(shè)備數(shù)據(jù)發(fā)送的待傳輸數(shù)據(jù)。
17.根據(jù)權(quán)利要求16所述的裝置,其特征在于,所述接收識別模塊包括: 第二接收單元,用于接收對端設(shè)備基于PCIE總線傳輸?shù)氖聞?wù)層數(shù)據(jù)報文; 標識解析單元,用于從所述 事務(wù)層數(shù)據(jù)報文中解析設(shè)定字段的標識; 完全報文識別單元,用于當識別到所述標識為完全標識時,則所述事務(wù)層數(shù)據(jù)報文為完全事務(wù)層數(shù)據(jù)報文; 壓縮報文識別單元,用于當識別到所述標識為壓縮標識時,則所述事務(wù)層數(shù)據(jù)報文為壓縮事務(wù)層數(shù)據(jù)報文。
18.根據(jù)權(quán)利要求16或17所述的裝置,其特征在于,所述修復(fù)模塊具體用于:從所述壓縮事務(wù)層數(shù)據(jù)報文的目標地址字段中獲得地址偏移量;從與所述壓縮事務(wù)層數(shù)據(jù)報文的數(shù)據(jù)標識相同的完全事務(wù)層數(shù)據(jù)報文中的目標地址字段中獲得基地址;將地址偏移量與基地址相加,得到所述壓縮數(shù)據(jù)層報文的目標地址信息。
【文檔編號】H04L12/951GK104038450SQ201310068224
【公開日】2014年9月10日 申請日期:2013年3月4日 優(yōu)先權(quán)日:2013年3月4日
【發(fā)明者】王曦爽, 侯銳, 馮煜晶, 張柳航 申請人:華為技術(shù)有限公司, 中國科學(xué)院計算技術(shù)研究所