精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

一個(gè)簡(jiǎn)單的Byte Enable使用的例子

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

事務(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的地址邊界。

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

    關(guān)注

    5

    文章

    359

    瀏覽量

    39853
  • PCIe
    +關(guān)注

    關(guān)注

    15

    文章

    1217

    瀏覽量

    82441
  • TLP
    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)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    個(gè)簡(jiǎn)單的pipeline是如何構(gòu)建起來(lái)的?

    書(shū)接上文,個(gè)簡(jiǎn)單的流水線(xiàn)例子,這里對(duì)data_in打兩拍做輸出
    的頭像 發(fā)表于 08-12 11:18 ?1710次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>個(gè)</b><b class='flag-5'>簡(jiǎn)單</b>的pipeline是如何構(gòu)建起來(lái)的?

    AD7214 enable DATA_STATUS后,status byte沒(méi)有append 在3個(gè)data后面,請(qǐng)問(wèn)怎樣才能正確讀出來(lái)呢?

    數(shù)據(jù)手冊(cè)只是說(shuō)enable DATA_STATUS后, status byte會(huì)append 在3個(gè)data后面, 我要怎樣才能正確讀出來(lái)呢?
    發(fā)表于 08-07 09:08

    介紹些MOV與ADD指令的簡(jiǎn)單例子

    因?yàn)榍度胧较到y(tǒng)學(xué)習(xí)需要,開(kāi)始學(xué)習(xí)匯編語(yǔ)言學(xué)習(xí)資料是B站的視頻:匯編語(yǔ)言程序 P9目錄、簡(jiǎn)單的指令例子二、
    發(fā)表于 01-07 06:39

    個(gè)PSRAM簡(jiǎn)單的讀寫(xiě)例子

    下 esp32-s3-devkitc-1 N16R8 上面有 8M PSRAM 是用 SPI 控制的,似乎是滿(mǎn)足我需要的。但是,我怎么就找不到個(gè) PSRAM 簡(jiǎn)單的 讀寫(xiě)例子,有的是
    發(fā)表于 03-03 08:12

    簡(jiǎn)單的窗口及菜單的例子

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

    bit和byte的關(guān)系及區(qū)別

    bit和byte的關(guān)系:byte等于8bit bit意為“位”或“比特”,是計(jì)算機(jī)運(yùn)算的基礎(chǔ),屬于二進(jìn)制的范籌; Byte意為“字節(jié)”,是計(jì)算機(jī)文件大小的基本計(jì)算單位
    發(fā)表于 11-21 09:54 ?5189次閱讀

    labview與access操作簡(jiǎn)單例子

    做的labview與access操作簡(jiǎn)單例子,互相學(xué)習(xí)吧
    發(fā)表于 03-15 16:00 ?88次下載

    各種簡(jiǎn)單例子源碼

    關(guān)于單片機(jī)開(kāi)發(fā) 基于IAR平臺(tái) 各種簡(jiǎn)單例子源碼 入門(mén)級(jí)別
    發(fā)表于 06-20 16:09 ?1次下載

    STM32第一個(gè)例子

    STM32第一個(gè)例子是學(xué)習(xí)RAM單片機(jī)非常好的開(kāi)始
    發(fā)表于 07-14 18:14 ?0次下載

    個(gè)簡(jiǎn)單的事件驅(qū)動(dòng)的IO libevent編程例子

    本文演示個(gè)簡(jiǎn)單的基于libevent編程的例子。libevent是事件驅(qū)動(dòng)的IO,適用于“好萊塢原則”。
    的頭像 發(fā)表于 03-23 09:54 ?6363次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>最<b class='flag-5'>簡(jiǎn)單</b>的事件驅(qū)動(dòng)的IO libevent編程<b class='flag-5'>例子</b>

    個(gè)RMW操作的例子

    次RMW操作對(duì)于總線(xiàn)來(lái)說(shuō),本質(zhì)上是兩次子操作,次讀,次寫(xiě),只不過(guò)這兩次子操作必須由同一個(gè)主設(shè)備的完成,且讀數(shù)據(jù)和寫(xiě)數(shù)據(jù)的地址相同。"改"是不發(fā)生在總線(xiàn)上的,它發(fā)生在主設(shè)備內(nèi)部。
    的頭像 發(fā)表于 07-20 08:41 ?5070次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>RMW操作的<b class='flag-5'>例子</b>

    個(gè)簡(jiǎn)單例子講清楚指針的應(yīng)用

    很多人遇到指針就糊涂,搞不清到底指向什么,其實(shí)是你沒(méi)搞清楚 * 修飾誰(shuí),還有些關(guān)鍵字修飾誰(shuí)。 ? 看下面的例子,定義個(gè)無(wú)符號(hào)字符變量x,然后同時(shí)定義
    的頭像 發(fā)表于 02-10 17:54 ?2181次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>個(gè)</b><b class='flag-5'>簡(jiǎn)單</b><b class='flag-5'>例子</b>講清楚指針的應(yīng)用

    shell編程100個(gè)實(shí)用例子分享

    shell編程100個(gè)實(shí)用例子分享
    發(fā)表于 01-25 15:39 ?4次下載

    個(gè)模擬解像力圖表的例子

    實(shí)現(xiàn)本節(jié)介紹了個(gè)模擬解像力圖表的例子。作為個(gè)例子,我們將使用
    的頭像 發(fā)表于 09-21 10:47 ?1067次閱讀

    python最簡(jiǎn)單for循環(huán)例子

    Python是簡(jiǎn)單而又強(qiáng)大的編程語(yǔ)言,通過(guò)其清晰的語(yǔ)法和豐富的功能庫(kù),我們可以實(shí)現(xiàn)各種各樣的任務(wù)。其中個(gè)最基本的語(yǔ)法結(jié)構(gòu)就是for循環(huán),讓我們來(lái)看
    的頭像 發(fā)表于 11-21 14:53 ?967次閱讀