<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一個簡單的Byte Enable使用的例子

SwM2_ChinaAET ? 來源:未知 ? 作者:李倩 ? 2018-05-17 09:10 ? 次閱讀

事務層包(TLP)的一般格式如下圖所示:

前面的文章介紹過,TLP Header為3DW或者4DW,Data Payload為1-1024DW,最后的TLPDigest(ECRC)是可選的,為1DW。

TLP Header在整個TLP的位置如下圖所示,需要注意的是,TLP Header的格式和內容都會隨著TLP的類型和路由方式的改變而改變。

TLP的類型和路由方式由Fmt和Type所決定,這在前面關于TLP路由的文章中已經詳細的介紹過。上圖顯示的是各種不同格式的TLP Header的相同的部分。

每一個Field的作用與意義如下表所示:

下面分別詳細地介紹一下Byte Enable,在PCIe中Data Payload的單位是DW,也就是說數據大?。ǖ刂罚┬枰訢W作為對齊。但是很多情況下,數據的大小并不是DW的整數倍,因此PCIe引入了Byte Enable來解決這一問題。使用Byte Enable需要遵循一下原則:

· Byte Enable為高電平有效,低電平(0)表示Data Payload的對應Byte將被認為是無效的,即不被Completer使用。

· 如果有效數據小于1DW,則Last DW Byte Enable應全部為0。

· 如果Data Payload大于1DW,則First DW Byte Enable至少有一位是有效的。

· 如果Data Payload大于或等于3DW,則First DW Byte Enable和Last DW Byte Enable當中的有效位必須是連續的。即這種情況下,Byte Enable只能用于調整起始地址和結束地址。

· 如果Data Payload等于1DW,則First DW Byte Enable中的有效位可以是不連續的。

· 如果Data Payload等于2DW,則First DW Byte Enable和Last DW Byte Enable中的有效位都可以是不連續的。

· 寫請求中的DW等于1,但是First DW Byte Enable中沒有任何一位是有效的,也是允許的,但是這樣的請求對于Completer沒有任何作用。

· 如果讀請求DW等于1,但是First DW Byte Enable中沒有任何一位是有效的,此時Completer會返回1DW的Data Payload,只是其中的數據都是無效的。這一方式常備用于Flush Mechanism。

一個簡單的Byte Enable使用的例子,如下圖所示:

關于TLP的Data Payload有:

· Data Payload的大小由TLP Header中的Length決定。

· Data Payload的數據采用的是Little Endian,即低字節存放于低地址中。

· Data Payload的大小并不是有效的數據的大小,有效數據的大小是由Data Payload和Byte Enable共同決定的。

· 當TLP類型為Message時,Length一般是保留的(Reserved),除非該Message是帶有數據的(MsgD)。

· TLP的Data Payload大小不得超過Max_Payload_Size的值,該值位于Device Control Register中。對于比較大的數據量,因此只能分多次進行發送。對于讀請求來說,并沒有Data Payload,也就是說該規則并不適用于讀請求。

· 需要特別注意的是,起始地址和結束地址之間不能夠跨越4KB的地址邊界。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 電平
    +關注

    關注

    5

    文章

    342

    瀏覽量

    39590
  • PCIe
    +關注

    關注

    13

    文章

    1102

    瀏覽量

    81200
  • TLP
    TLP
    +關注

    關注

    0

    文章

    30

    瀏覽量

    15531

原文標題:【博文連載】PCIe掃盲——TLP Header詳解(一)

文章出處:【微信號:ChinaAET,微信公眾號:電子技術應用ChinaAET】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    labview的例子使用

    labview的串口通訊小例子
    發表于 02-20 22:56

    易語言,簡單例子

    易語言簡單例子
    發表于 08-20 09:24

    請教大蝦簡單的問題??!

    ) ******************************************************************************* RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT; USED: 0926H
    發表于 11-16 15:33

    ucos的個例子

    ucos的個例子,希望對大家有用。
    發表于 04-14 21:41

    AD7214 enable DATA_STATUS后,status byte沒有append 在3data后面,請問怎樣才能正確讀出來呢?

    數據手冊只是說enable DATA_STATUS后, status byte會append 在3data后面, 我要怎樣才能正確讀出來呢?
    發表于 08-07 09:08

    介紹些MOV與ADD指令的簡單例子

    因為嵌入式系統學習需要,開始學習匯編語言學習資料是B站的視頻:匯編語言程序 P9目錄、簡單的指令例子二、
    發表于 01-07 06:39

    PSRAM簡單的讀寫例子

    下 esp32-s3-devkitc-1 N16R8 上面有 8M PSRAM 是用 SPI 控制的,似乎是滿足我需要的。但是,我怎么就找不到 PSRAM 簡單的 讀寫例子,有的是
    發表于 03-03 08:12

    求分享關于PSRAM簡單的讀寫例子

    下 esp32-s3-devkitc-1 N16R8 上面有 8M PSRAM 是用 SPI 控制的,似乎是滿足我需要的。但是,我怎么就找不到 PSRAM 簡單的 讀寫例子,有的是
    發表于 03-14 09:10

    VHDL “Cheat” Code (To Enable B

    VHDL “Cheat” Code To Enable Basic CPU ROM Communication
    發表于 03-28 15:32 ?22次下載

    簡單的窗口及菜單的例子

    簡單的窗口及菜單的例子:  Dos匯編,Win32匯編,硬件資料,豐富的匯編、C 源代碼,編程例子詳解。
    發表于 05-06 16:36 ?8次下載

    bit和byte的關系及區別

    bit和byte的關系:一byte等于8bit bit意為“位”或“比特”,是計算機運算的基礎,屬于二進制的范籌; Byte意為“字節”,是計算機文件大小的基本計算單位
    發表于 11-21 09:54 ?4873次閱讀

    labview與access操作簡單例子

    做的labview與access操作簡單例子,互相學習吧
    發表于 03-15 16:00 ?87次下載

    各種簡單例子源碼

    關于單片機開發 基于IAR平臺 各種簡單例子源碼 入門級別
    發表于 06-20 16:09 ?1次下載

    一個最簡單的事件驅動的IO libevent編程例子

    本文演示一個最簡單的基于libevent編程的例子。libevent是事件驅動的IO,適用于“好萊塢原則”。
    的頭像 發表于 03-23 09:54 ?6184次閱讀
    一個最<b class='flag-5'>簡單</b>的事件驅動的IO libevent編程<b class='flag-5'>例子</b>

    python最簡單for循環例子

    Python是一種簡單而又強大的編程語言,通過其清晰的語法和豐富的功能庫,我們可以實現各種各樣的任務。其中一個最基本的語法結構就是for循環,讓我們來看一下如何使用for循環來編寫一個最簡單例子
    的頭像 發表于 11-21 14:53 ?557次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>