0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

PCI-E TLP學(xué)習(xí)筆記(1)

FPGA技術(shù)江湖 ? 來源:FPGA技術(shù)江湖 ? 2024-11-06 09:14 ? 次閱讀

大俠好,歡迎來到FPGA技術(shù)江湖,江湖偌大,相見即是緣分。大俠可以關(guān)注FPGA技術(shù)江湖,在“闖蕩江湖”、"行俠仗義"欄里獲取其他感興趣的資源,或者一起煮酒言歡。

今天給大俠帶來PCI-Express transaction Layer specification(處理層協(xié)議),本次PCIE TLP 學(xué)習(xí)經(jīng)驗分享分為三篇,今天帶來第一篇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. 四種空間:

570abdc0-90a3-11ef-a511-92fbcf53809c.png

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. 主要包格式

572d2b76-90a3-11ef-a511-92fbcf53809c.png

每種類型的包都有一定格式的包頭(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校驗。具體的包結(jié)構(gòu)圖如下:

57457e7e-90a3-11ef-a511-92fbcf53809c.png

由此圖可看出數(shù)據(jù)從低字節(jié)的高位先發(fā)送,從左到右。以下詳細(xì)介紹TLPS的每個成分。

5.TLP通用包頭

575e07dc-90a3-11ef-a511-92fbcf53809c.png

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ù),如下圖:

5772dc34-90a3-11ef-a511-92fbcf53809c.png

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)的類型如下:

578f9efa-90a3-11ef-a511-92fbcf53809c.png

上圖定義了各種類型的包,圖中的r[2:0]用于定義Message包的隱含尋址方式,在下文中更為詳細(xì)。 Length域定義了有效負(fù)荷的DW長度如下:

57ad02d8-90a3-11ef-a511-92fbcf53809c.png

在不包含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長。

57d19c74-90a3-11ef-a511-92fbcf53809c.png

57e74574-90a3-11ef-a511-92fbcf53809c.png

上圖就是64位地址的4DW的包頭和32位地址的3DW的包頭。對于memory讀寫request包,AT(address Type field)有如下的編碼。

5802ba02-90a3-11ef-a511-92fbcf53809c.png

2.ID尋址方式

主要用在configuration 請求包、部分message包、響應(yīng)包中。ID包括Bus number、Divce number、function number為TLP定位目標(biāo)接收器。ID尋址的TLP包頭長度也有4DW和3DW兩種,ID在TLP中位置見下圖。

581e2db4-90a3-11ef-a511-92fbcf53809c.png

584013ca-90a3-11ef-a511-92fbcf53809c.png

第七個Byte(Byte7)是第一個DW數(shù)據(jù)負(fù)荷和最后一個DW數(shù)據(jù)負(fù)荷使能位(Byte Enables),Byte Enables在于memory,i/o,configuration 請求包中有效,如圖。

585b30ba-90a3-11ef-a511-92fbcf53809c.png

對于last DW BE和1st DW BE中的每一個位,為0表示相應(yīng)的數(shù)據(jù)字節(jié)不被讀或?qū)?,?表示相應(yīng)的數(shù)據(jù)字節(jié)有效。每個使能位相對應(yīng)的字節(jié)如下。

587bf6ec-90a3-11ef-a511-92fbcf53809c.png

3.處理層描述符(transaction Descriptor)

對于兩種路由方式來說是通用的。

用于請求器件和應(yīng)答器件間轉(zhuǎn)送處理層信息,包括三部分,Transaciton ID、Attributes、Traffic class(TC),如下圖。

58940926-90a3-11ef-a511-92fbcf53809c.png

其中Transaction ID包括: Requester ID、Tag,如圖。

58a88554-90a3-11ef-a511-92fbcf53809c.png

Tag[7:0]是由產(chǎn)生請求包的器件生成的,如果請求器件需要應(yīng)答,則每個Tag[7:0]和Function Number是獨一無二的。Transaction ID是一個全局標(biāo)識符用于響應(yīng)包尋址請求器件。

TC的規(guī)定如下,描述服務(wù)的層次和用于映射虛擬通道:

58c1c8a2-90a3-11ef-a511-92fbcf53809c.png

處理層描述符在請求包中第二個DW:

58e0ba28-90a3-11ef-a511-92fbcf53809c.png

從圖中看出,描述字符放在第二個DW的前三個字節(jié)中。

第一篇到此結(jié)束,下次金帶來第二篇,i/o,memory,configuration,message request、completetion(Memory Request Package、I/O Request 包、Configuration Request包、Message、Completion Rules(應(yīng)答機(jī)制))等。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1624

    文章

    21617

    瀏覽量

    601129
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5290

    瀏覽量

    119782
  • PCI
    PCI
    +關(guān)注

    關(guān)注

    4

    文章

    662

    瀏覽量

    130120
  • TLP
    TLP
    +關(guān)注

    關(guān)注

    0

    文章

    32

    瀏覽量

    15590

原文標(biāo)題:PCI-E TLP(處理層協(xié)議)學(xué)習(xí)經(jīng)驗分享 I

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    PCI-E 的PADS封轉(zhuǎn)

    PCI-E封裝
    發(fā)表于 03-30 11:30

    在FPGA上設(shè)計PCI-e Gen2.0和PCI-e Gen3.0有什么不同

    請教各位大大,在FPGA上進(jìn)行設(shè)計PCI-e的接口通信,2代和3代的設(shè)計有什么不同嗎?如果學(xué)習(xí)了2代改到開發(fā)3代是在原工程上做小改變還是要推倒重做?
    發(fā)表于 03-03 09:55

    pci-e布線規(guī)范

    pci-e布線規(guī)范
    發(fā)表于 07-14 14:49

    解決臺式機(jī)PCI-E 1X不夠難題 :樂擴(kuò)PCI-E 1X轉(zhuǎn)2口PCI-E 1X擴(kuò)展卡

    針對目前解決臺式機(jī)PCI-E 1X插槽不夠用的瓶頸現(xiàn)狀,擁有十幾年研發(fā)和生產(chǎn)經(jīng)驗的老品牌廠家樂擴(kuò)發(fā)布了一款可以將主機(jī)PCI-E1X插槽轉(zhuǎn)換為2個PCI-E
    發(fā)表于 10-19 16:25

    PCI PCI-X PCI-E介紹 精選資料分享

    PCI PCI-X PCI-E介紹1.PCI外設(shè)互聯(lián)標(biāo)準(zhǔn)(或稱個人電腦接口,Personal Computer Interface),實際應(yīng)用中簡稱
    發(fā)表于 07-29 06:40

    什么是PCI PCI-X PCI-E?

    什么是PCI PCI-X PCI-E?
    發(fā)表于 10-25 07:37

    PCI-E接口定義 引腳定義圖 PCI-E針腳定義圖

    說明:PCI-E
    發(fā)表于 04-27 18:09 ?7.8w次閱讀
    <b class='flag-5'>PCI-E</b>接口定義 引腳定義圖 <b class='flag-5'>PCI-E</b>針腳定義圖

    南橋PCI-E通道數(shù)

    南橋PCI-E通道數(shù)              南橋PCI-E通道數(shù)是指芯片組中
    發(fā)表于 12-26 16:10 ?578次閱讀

    PCI-e總線FPGA開發(fā)板資料說明

    自從2004年pci-e1.0a規(guī)范之后,主板上就開始有了最新的串行高速PCI-E總線,相比原來的PCIV2.3,PCI-E總線有很大的優(yōu)勢,首先,PCI-E降低了芯片連接的管腳數(shù)量,
    發(fā)表于 04-14 00:56 ?171次下載

    淺談顯卡PCI/AGP/PCI-E接口的區(qū)別

    PCI-E 1.0標(biāo)準(zhǔn)提供了2.5GT/s(Giga Transmissionper second ,千兆傳輸/秒,即每一秒內(nèi)傳輸?shù)拇螖?shù),不同于Gbps)的傳輸速度,常用的PCI-E X16提供16
    發(fā)表于 11-03 16:13 ?7574次閱讀

    Intel的核顯真的占用了CPU的4根PCI-E通道嗎

    在討論到CPU的PCI-E通道問題時,我發(fā)現(xiàn)很多人都以為Intel的核顯占用了CPU的4根PCI-E通道,包括很多可以找到的“科普貼”中都寫了核顯會占用4條PCI-E通道。其實這是一種常見的誤區(qū),從
    發(fā)表于 11-23 10:20 ?5297次閱讀
    Intel的核顯真的占用了CPU的4根<b class='flag-5'>PCI-E</b>通道嗎

    連欣PCI模塊連接器PCI-E 52PIN原理圖

    連欣PCI模塊連接器PCI-E 52PIN原理圖
    發(fā)表于 07-08 09:20 ?49次下載

    pci-e插槽的規(guī)格有哪些 各個版本的pci-e的規(guī)范區(qū)別

    PCI-E的接口根據(jù)總線位寬不同而有所差異,包括X1、X4、X8以及X16,而X2模式將用于內(nèi)部接口而非插槽模式。PCI-E規(guī)格從1條 通道連接到32條通道連接,有非常強(qiáng)的伸縮性,以滿
    發(fā)表于 08-05 10:16 ?8269次閱讀
    <b class='flag-5'>pci-e</b>插槽的規(guī)格有哪些 各個版本的<b class='flag-5'>pci-e</b>的規(guī)范區(qū)別

    PCI-E TLP學(xué)習(xí)筆記(2)

    今天給大俠帶來PCI-Express transaction Layer specification(處理層協(xié)議),本次PCIE TLP 學(xué)習(xí)經(jīng)驗分享分為三篇,今天帶來第二篇,i/o,memory
    的頭像 發(fā)表于 11-06 09:16 ?79次閱讀
    <b class='flag-5'>PCI-E</b> <b class='flag-5'>TLP</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>(2)

    PCI-E TLP學(xué)習(xí)筆記(3)

    今天給大俠帶來PCI-Express transaction Layer specification(處理層協(xié)議),本次PCIE TLP 學(xué)習(xí)經(jīng)驗分享分為三篇,今天帶來第三篇,也就是最后一篇,請求
    的頭像 發(fā)表于 11-06 09:19 ?91次閱讀
    <b class='flag-5'>PCI-E</b> <b class='flag-5'>TLP</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>(3)