事務(wù)層包(TLP)的一般格式如下圖所示:
前面的文章介紹過(guò),TLP Header為3DW或者4DW,Data Payload為1-1024DW,最后的TLPDigest(ECRC)是可選的,為1DW。
TLP Header在整個(gè)TLP的位置如下圖所示,需要注意的是,TLP Header的格式和內(nèi)容都會(huì)隨著TLP的類(lèi)型和路由方式的改變而改變。
TLP的類(lèi)型和路由方式由Fmt和Type所決定,這在前面關(guān)于TLP路由的文章中已經(jīng)詳細(xì)的介紹過(guò)。上圖顯示的是各種不同格式的TLP Header的相同的部分。
每一個(gè)Field的作用與意義如下表所示:
下面分別詳細(xì)地介紹一下Byte Enable,在PCIe中Data Payload的單位是DW,也就是說(shuō)數(shù)據(jù)大?。ǖ刂罚┬枰訢W作為對(duì)齊。但是很多情況下,數(shù)據(jù)的大小并不是DW的整數(shù)倍,因此PCIe引入了Byte Enable來(lái)解決這一問(wèn)題。使用Byte Enable需要遵循一下原則:
· Byte Enable為高電平有效,低電平(0)表示Data Payload的對(duì)應(yīng)Byte將被認(rèn)為是無(wú)效的,即不被Completer使用。
· 如果有效數(shù)據(jù)小于1DW,則Last DW Byte Enable應(yīng)全部為0。
· 如果Data Payload大于1DW,則First DW Byte Enable至少有一位是有效的。
· 如果Data Payload大于或等于3DW,則First DW Byte Enable和Last DW Byte Enable當(dāng)中的有效位必須是連續(xù)的。即這種情況下,Byte Enable只能用于調(diào)整起始地址和結(jié)束地址。
· 如果Data Payload等于1DW,則First DW Byte Enable中的有效位可以是不連續(xù)的。
· 如果Data Payload等于2DW,則First DW Byte Enable和Last DW Byte Enable中的有效位都可以是不連續(xù)的。
· 寫(xiě)請(qǐng)求中的DW等于1,但是First DW Byte Enable中沒(méi)有任何一位是有效的,也是允許的,但是這樣的請(qǐng)求對(duì)于Completer沒(méi)有任何作用。
· 如果讀請(qǐng)求DW等于1,但是First DW Byte Enable中沒(méi)有任何一位是有效的,此時(shí)Completer會(huì)返回1DW的Data Payload,只是其中的數(shù)據(jù)都是無(wú)效的。這一方式常備用于Flush Mechanism。
一個(gè)簡(jiǎn)單的Byte Enable使用的例子,如下圖所示:
關(guān)于TLP的Data Payload有:
· Data Payload的大小由TLP Header中的Length決定。
· Data Payload的數(shù)據(jù)采用的是Little Endian,即低字節(jié)存放于低地址中。
· Data Payload的大小并不是有效的數(shù)據(jù)的大小,有效數(shù)據(jù)的大小是由Data Payload和Byte Enable共同決定的。
· 當(dāng)TLP類(lèi)型為Message時(shí),Length一般是保留的(Reserved),除非該Message是帶有數(shù)據(jù)的(MsgD)。
· TLP的Data Payload大小不得超過(guò)Max_Payload_Size的值,該值位于Device Control Register中。對(duì)于比較大的數(shù)據(jù)量,因此只能分多次進(jìn)行發(fā)送。對(duì)于讀請(qǐng)求來(lái)說(shuō),并沒(méi)有Data Payload,也就是說(shuō)該規(guī)則并不適用于讀請(qǐng)求。
· 需要特別注意的是,起始地址和結(jié)束地址之間不能夠跨越4KB的地址邊界。
-
電平
+關(guān)注
關(guān)注
5文章
359瀏覽量
39853 -
PCIe
+關(guān)注
關(guān)注
15文章
1217瀏覽量
82441 -
TLP
+關(guān)注
關(guān)注
0文章
32瀏覽量
15605
原文標(biāo)題:【博文連載】PCIe掃盲——TLP Header詳解(一)
文章出處:【微信號(hào):ChinaAET,微信公眾號(hào):電子技術(shù)應(yīng)用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論