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

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

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

PCIE知識點:談談bus master en等

ruikundianzi ? 來源:IP與SoC設計 ? 2023-05-15 14:24 ? 次閱讀

PCIE Zero-Length read

1、Zero-Length Write

PCIe協(xié)議提出了zero-length的讀寫操作,并且做了如下說明

Zero-Length Write的含義

A Memory Write Request of 1 DW with no bytes enabled, 即Memory Write 類型tlp中只有1DW的data,且length字段為1,并且tlp header中的First DW BE[3:0] 和Last DW BE[3:0]均為0。

A Memory Write Request of 1 DW with “zero-length Write,”

Zero-Length Write的作用

Zero-Length Write has no effect at the Completer unless otherwise specified. 正常情況下Zero-Length Write不會對完成者造成任何影響,除非特別指定。例如:正常情況下,一顆芯片中的PCIe作為endpoint,收到Zero-Length Write時,此Zero-Length Write不會改寫當前tlp中addr對應的寄存器(or RAM)的數(shù)值,也不會產(chǎn)生對應地址的寫脈沖,更不會應該此寫操作造成芯片功能的變化

A Memory Write 通常在特定的協(xié)議中去使用,已達到額外的效果,例如LN protocol.(沒深入看)

2、Zero-Length Read

PCIe協(xié)議提出了zero-length的讀操作,并且做了如下說明

Zero-Length Read的含義

A Memory Read Request of 1 DW with no bytes enabled。即Memory Read 類型tlp中且length字段為1,并且tlp header中的First DW BE[3:0] 和Last DW BE[3:0]均為0。

Zero-Length Write的作用

協(xié)議原文描述如下:

Zero-Length Read may be used by devices as a type of flush Request. For a Requester, the flush semantic allows a device to ensure that previously issued Posted Writes have been completed at their PCI Express destination. To be effective in all cases, the address for the zero-length Read must target the same device as the Posted Writes that are being flushed. One recommended approach is using the same address as one of the Posted Writes being flushed.

即:

Zero-Length Read 通常作為一種刷新操作,用于確保之前發(fā)起的Posted Writes已經(jīng)被completer完成了。假設master在T0時刻已經(jīng)發(fā)起mem_write(addrA),T1時刻發(fā)起zero_mem_rd(addA),T3時刻master收到對應的cpld。此時在T3時刻,master就知道了mem_write(addrA)已經(jīng)被slave正確執(zhí)行了。

對Zero-Length Write的要求:

If a Read Request of 1 DW specifies that no bytes are enabled to be read (First DW BE[3:0] field = 0000b), the corresponding Completion must specify a Length of 1 DW, and include a data payload of 1 DW.The contents of the data payload within the Completion packet is unspecified and may be any value。即對應cpl的長度必須指定為1DW,且必須包含1DW的data payload,并且data的數(shù)值沒有要求,可以是任意值。

3、Zero-Length Read相對于正常讀操作有什么優(yōu)勢呢?

假設目標地址的讀寫操作均會觸發(fā)芯片內(nèi)部不同功能的啟動,而Zero-Length Read實際不要求真正去執(zhí)行一次memory read操作。同樣都能確保之前Posted Writes已經(jīng)被執(zhí)行,但是真實的讀操作可能會改變芯片功能狀態(tài),而Zero-Length Read不會,因此Zero-Length Read更有優(yōu)勢。

談談bus master en

Bus master en信號

Type0的function:控制function發(fā)起Memory and I/O Read/Write Requests

1.Bus Master Enable為0,不允許function發(fā)起Memory and I/O Read/Write Requests

2.PF的Bus Master Enable 位于PF配置空間的Command Register的bit2,僅僅控制PF自身的請求,不會控制所屬VF的請求

3.VF的Bus Master Enable,位于VF配置空間的Command Register的bit2,僅僅控制VF自身的請求

Type1的function:控制function向Upstream方向轉(zhuǎn)發(fā)Memory and I/O Read/Write Requests

1.Switch upstream port的Bus Master Enable為0,

(1)會將downstream side收到的Memory and I/O Read/Write Requests當做UR處理

(2)Switch upstream port自身不允許向upstream 方向發(fā)出Memory and I/O Read/Write Requests

ECRC 與 credit 信用量

1、ECRC 是不算在信用量范圍內(nèi)的

從PCIe協(xié)議上可以看出,信用量僅僅包含三類:CPL credit/Post credit/non-post credit,其中每種包含data credit和header credit。

ECRC 是額外添加的校驗字段,在TLP內(nèi)是1DW,即4byte,不屬于data payload,也不屬于header字段。因此ECRC不在信用量的考量范圍內(nèi)。

2、Buffer size的注意事項

支持ECRC check功能的PCIE 在設計rx buffer時,需要考慮到當所有收到的TLP都帶ECRC字段時,buffer是否會溢出。

審核編輯 :李倩

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

    關注

    455

    文章

    50851

    瀏覽量

    424001
  • 寄存器
    +關注

    關注

    31

    文章

    5343

    瀏覽量

    120451
  • PCIe
    +關注

    關注

    15

    文章

    1239

    瀏覽量

    82698

原文標題:PCIE知識點:談談bus master en等

文章出處:【微信號:IP與SoC設計,微信公眾號:IP與SoC設計】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    C語言鏈表知識點(2)

    C語言鏈表知識點(2)
    發(fā)表于 08-22 10:38 ?333次閱讀
    C語言鏈表<b class='flag-5'>知識點</b>(2)

    計算機組成原理考研知識點歸納

    計算機組成原理考研知識點歸納 寫在前面的話:理科知識重在于理解知識點本身,對于每一個知識點,大家都有自己理解的方式。這篇
    發(fā)表于 04-13 14:06 ?1923次閱讀

    高一數(shù)學知識點總結(jié)

    高一數(shù)學知識點總結(jié)高一數(shù)學知識點總結(jié)高一數(shù)學知識點總結(jié)
    發(fā)表于 02-23 15:27 ?0次下載

    高二數(shù)學知識點總結(jié)

    高二數(shù)學知識點總結(jié)高二數(shù)學知識點總結(jié)高二數(shù)學知識點總結(jié)
    發(fā)表于 02-23 15:27 ?0次下載

    液晶屏知識點培訓

    液晶屏知識點液晶屏分辨率,液晶屏接口
    發(fā)表于 01-01 08:00 ?42次下載

    SI、PI、EMC、RF知識點

    SI、PI、EMC、RF知識點
    發(fā)表于 01-14 02:53 ?17次下載

    PWM知識點詳解

    PWM知識點
    發(fā)表于 03-16 08:00 ?44次下載

    嵌入式知識點總結(jié)

    嵌入式知識點總結(jié)(arm嵌入式開發(fā)led過程)-嵌入式知識點總結(jié)? ? ? ? ? ? ? ? ? ??
    發(fā)表于 07-30 14:20 ?23次下載
    嵌入式<b class='flag-5'>知識點</b>總結(jié)

    電力基礎知識點合集

    電力基礎知識點合集
    發(fā)表于 03-14 16:35 ?0次下載

    詳解射頻微波基礎知識點

    詳解射頻微波基礎知識點
    的頭像 發(fā)表于 01-29 10:28 ?2382次閱讀

    C語言最重要的知識點

    C語言知識點總結(jié).doc
    發(fā)表于 02-16 16:37 ?9次下載

    Linux中多線程編程的知識點

    Hello、Hello大家好,我是木榮,今天我們繼續(xù)來聊一聊Linux中多線程編程中的重要知識點,詳細談談多線程中同步和互斥機制。
    發(fā)表于 04-26 17:27 ?604次閱讀
    Linux中多線程編程的<b class='flag-5'>知識點</b>

    數(shù)字電路知識點總結(jié)

    本文整理了數(shù)字電路課程中的相關基本的知識點和較為重要的知識點,用于求職的數(shù)電部分的知識準備,差缺補漏。
    的頭像 發(fā)表于 05-30 15:07 ?4897次閱讀
    數(shù)字電路<b class='flag-5'>知識點</b>總結(jié)

    滾珠螺桿的基本知識點

    滾珠螺桿的基本知識點
    的頭像 發(fā)表于 07-07 17:40 ?1543次閱讀
    滾珠螺桿的基本<b class='flag-5'>知識點</b>

    STM32 RTOS知識點

    電子發(fā)燒友網(wǎng)站提供《STM32 RTOS知識點.pdf》資料免費下載
    發(fā)表于 08-01 14:28 ?3次下載
    STM32 RTOS<b class='flag-5'>知識點</b>