熱門關(guān)鍵詞: 聯(lián)樂 宇瞻工業(yè)級TF卡 工業(yè)閃存卡品牌 固態(tài)硬盤品牌
主機與PCIe設(shè)備之間,或者PCIe設(shè)備與設(shè)備之間,數(shù)據(jù)傳輸都是以 Packet形式進行發(fā)送端的事務(wù)層到接收端的事務(wù)層的傳輸。根據(jù)上層(軟件層或者應(yīng)用層)請求(Request)的類型、目的地址和其他相關(guān)屬性,把這些請求打包,產(chǎn)生TLP(Transaction Layer Packet,事務(wù)層數(shù)據(jù)包)。然后這些TLP往下,經(jīng)歷數(shù)據(jù)鏈路層、物理層,最終到達目標設(shè)備,下面來看看PCIe的TLP結(jié)構(gòu):
TLP主要由三部分組成:Header、Data和CRC(可選)。TLP都是始于發(fā)送端的事務(wù)層(Transaction Layer),終于接收端的事務(wù)層。每個TLP都有一個Header,跟人類一樣,沒有頭就中止了生命,所以TLP可以沒手沒腳,但絕不能沒有頭。事務(wù)層根據(jù)上層請求內(nèi)容,生成TLP Header。Header內(nèi)容包括發(fā)送者的相關(guān)信息、目標地址(該TLP要發(fā)給誰)、TLP類型(諸如前面提到的Memory Read、 Memory Write之類的)、數(shù)據(jù)長度(如果有的話)等。
Data Payload 域,用以放有效載荷數(shù)據(jù)。該域不是必需的,因為不是每個TLP都一定攜帶數(shù)據(jù),比如Memory Read TLP,它僅僅是一個請求,數(shù)據(jù)是由目標設(shè)備通過 Completion TLP 返回的。一個 TLP 最大載重是4KB,數(shù)據(jù)長度大于4KB的話,就需要分幾個 TLP 進行傳輸。
ECRC(End to End CRC)域,它對之前的Header和Data(如果有的話)生成一個CRC在接收端根據(jù)收到的TLP重新生成Header和Data(如果有的話)的CRC,與收到的CRC比較,一樣則說明數(shù)據(jù)在傳輸過程中沒有出錯,否則就有錯。它也是可選的,完全可以設(shè)置不加CRC。