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