大俠好,歡迎來到FPGA技術(shù)江湖,江湖偌大,相見即是緣分。大俠可以關(guān)注FPGA技術(shù)江湖,在“闖蕩江湖”、"行俠仗義"欄里獲取其他感興趣的資源,或者一起煮酒言歡。
今天給大俠帶來PCI-Express transaction Layer specification(處理層協(xié)議),本次PCIE TLP 學(xué)習(xí)經(jīng)驗(yàn)分享分為三篇,今天帶來第一篇TLP概況(四種空間、三種處理類型、兩種屬性、主要包格式、TLP通用包頭)和TLP打包地址和路由導(dǎo)向方式(Address尋址、ID尋址方式、處理層描述符),話不多說,上貨。 為了方便各位大俠瀏覽,下面列出三篇分享的大概內(nèi)容目錄介紹:
- 一、TLP概況
- 1. 四種空間
- 2. 三種處理類型
- 3. 兩種屬性
- 4. 主要包格式
- 5. TLP通用包頭
- 二、TLP打包地址和路由導(dǎo)向方式
- 1. Address尋址
- 2. ID尋址方式
- 3. 處理層描述符(transaction Descriptor)
- 三、I/O,Memory,Configuration,Message Request、Completetion詳解
- 1. Memory Request Package
- 2. I/O Request 包
- 3. Configuration Request包
- 4. Message
- 5. Completion Rules(應(yīng)答機(jī)制)
- 四、請求和應(yīng)答處理機(jī)制
- 1. Request Handling Rules
- 2. Completion Handling
- 五、virtual channel(vc)Mechanism虛擬通道機(jī)制
- 1. TC/VC映射
- 2. Flow Control
- 六、Data Integrity數(shù)據(jù)完整性
一、TLP概況
處理層(transaction Layer specification)是請求和響應(yīng)信息形成的基礎(chǔ)。包括四種地址空間,三種處理類型,從下圖可以看出在transaction Layer 中形成的包的基本概括。
1. 四種空間:
2. 三種處理類型
i/o口和memory的讀寫包(TLPS:transaction Layers packages)
配置寄存器的讀寫設(shè)置包
信息包,描述通信狀態(tài)。
作為事件的信號告知用戶。
對memory的讀寫包分為讀請求包和響應(yīng)包、寫請求包(不需要存儲器的響應(yīng)包)。而i/o類型的讀寫請求都需要返回I/O口的響應(yīng)包,configuration包對配置寄存器的讀寫請求也有響應(yīng)包。這些請求包還可以按屬性來分類。
3.兩種屬性
Non Posted:即請求需要返回completion的響應(yīng)包;
Posted:即不需要completion返回響應(yīng)包。例如上面的存儲器寫入請求包和Message包都隸屬于posted包。
4. 主要包格式
每種類型的包都有一定格式的包頭(Tlp Header),根據(jù)不同的包的特性,還包括有效數(shù)據(jù)負(fù)荷(Data Payload)和tlp開銷塊(Tlp Digest)。包頭中的數(shù)據(jù)用于對包的管理和控制。有效數(shù)據(jù)負(fù)荷域存放有效數(shù)據(jù)信息。具有數(shù)據(jù)的TLP傳遞是有一定規(guī)則的:以DW為長度單位,發(fā)送端數(shù)據(jù)承載量不得超過“Device Control Register”中的“Max_Payload_Size”數(shù)值,接收端中,所接收到的數(shù)據(jù)量也不能超過接收端“Device Control Register”中的“Max_Payload_Size”數(shù)值。TLp Digest域是32位的ECRC校驗(yàn)。具體的包結(jié)構(gòu)圖如下:
由此圖可看出數(shù)據(jù)從低字節(jié)的高位先發(fā)送,從左到右。以下詳細(xì)介紹TLPS的每個成分。
5.TLP通用包頭
R為保留信息位,應(yīng)設(shè)為0,路由器switch對此位不做修改,接收器應(yīng)該忽略此位。
Fmt[1:0]:Format of TLP (see Table 2-2) – bits 6:5 of byte0。
Type[4:0]:Type of TLP – bits 4:0 of byte 0。
TC[2:0]: Traffic Class – bits [6:4] of byte1,關(guān)于TC的作用將在下文說明。
Attr[1:0]: Attributes – bits [5:4] of byte 2,詳細(xì)介紹見下文。
TD:1b indicates presence of TLP digest in the form of a single DW at the end of the TLP標(biāo)志TLPDigest域的有無。
EP: indicates the TLP is poisoned – bit 6 of byte 2有效數(shù)據(jù)中毒(出錯)機(jī)制。
Length[9:0]:Length of data payload in DW。
Fmt開銷位說明TLP Header的長度和TLP是否包含數(shù)據(jù),如下圖:
Fmt[1:0]=00b,代表3DW的包頭,沒有數(shù)據(jù)。
Fmt[1:0]=01b,代表4DW的包頭,沒有數(shù)據(jù)。
Fmt[1:0]=10b,代表3DW的包頭,有數(shù)據(jù)。
Fmt[1:0]=11b,代表4DW的包頭,有數(shù)據(jù)。
Fmt [0] 表示包頭格式是3長字還是4長字,F(xiàn)mt[1] 表示包頭是否包含數(shù)據(jù)。
Fmt和Type開銷組合定義了包(TLP)的類型如下:
上圖定義了各種類型的包,圖中的r[2:0]用于定義Message包的隱含尋址方式,在下文中更為詳細(xì)。 Length域定義了有效負(fù)荷的DW長度如下:
在不包含data payload塊的包中Length的值應(yīng)被設(shè)置為保留值R,并被接收端忽略。余下的各個開銷位將在后文提到。
二、TLP打包地址和路由導(dǎo)向方式
地址路由(address)
ID識別路由
間接路由(implicit) 下面主要介紹address和ID尋址方式,間接尋址將在后面提及。
1.Address尋址
主要用于memory和i/o request請求包
memory讀寫請求包支持64位地址和32位地址,
i/o讀寫請求只支持32位地址
64位地址尋址的TLP Header有4DW(16字節(jié)),
32位地址尋址的TLP Header有3DW長。
上圖就是64位地址的4DW的包頭和32位地址的3DW的包頭。對于memory讀寫request包,AT(address Type field)有如下的編碼。
2.ID尋址方式
主要用在configuration 請求包、部分message包、響應(yīng)包中。ID包括Bus number、Divce number、function number為TLP定位目標(biāo)接收器。ID尋址的TLP包頭長度也有4DW和3DW兩種,ID在TLP中位置見下圖。
第七個Byte(Byte7)是第一個DW數(shù)據(jù)負(fù)荷和最后一個DW數(shù)據(jù)負(fù)荷使能位(Byte Enables),Byte Enables在于memory,i/o,configuration 請求包中有效,如圖。
對于last DW BE和1st DW BE中的每一個位,為0表示相應(yīng)的數(shù)據(jù)字節(jié)不被讀或?qū)?,?表示相應(yīng)的數(shù)據(jù)字節(jié)有效。每個使能位相對應(yīng)的字節(jié)如下。
3.處理層描述符(transaction Descriptor)
對于兩種路由方式來說是通用的。
用于請求器件和應(yīng)答器件間轉(zhuǎn)送處理層信息,包括三部分,Transaciton ID、Attributes、Traffic class(TC),如下圖。
其中Transaction ID包括: Requester ID、Tag,如圖。
Tag[7:0]是由產(chǎn)生請求包的器件生成的,如果請求器件需要應(yīng)答,則每個Tag[7:0]和Function Number是獨(dú)一無二的。Transaction ID是一個全局標(biāo)識符用于響應(yīng)包尋址請求器件。
TC的規(guī)定如下,描述服務(wù)的層次和用于映射虛擬通道:
處理層描述符在請求包中第二個DW:
從圖中看出,描述字符放在第二個DW的前三個字節(jié)中。
第一篇到此結(jié)束,下次金帶來第二篇,i/o,memory,configuration,message request、completetion(Memory Request Package、I/O Request 包、Configuration Request包、Message、Completion Rules(應(yīng)答機(jī)制))等。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21729瀏覽量
602978 -
寄存器
+關(guān)注
關(guān)注
31文章
5336瀏覽量
120230 -
PCI
+關(guān)注
關(guān)注
4文章
663瀏覽量
130250 -
TLP
+關(guān)注
關(guān)注
0文章
32瀏覽量
15625
原文標(biāo)題:PCI-E TLP(處理層協(xié)議)學(xué)習(xí)經(jīng)驗(yàn)分享 I
文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論