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

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

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

詳細(xì)地聊一聊Non-Posted Transaction

SwM2_ChinaAET ? 來源:未知 ? 作者:李倩 ? 2018-04-25 09:14 ? 次閱讀

這篇文章來詳細(xì)地聊一聊Non-Posted Transaction(包括Ordinary Read、Locked Read和IO/Configuration Writes)與Posted Writes(包括Memory Writes和Message Writes)。

Non-Posted Transaction

o Ordinary Reads

下圖顯示的是一個Endpoint向System Memory發(fā)送讀請求(Read Request)的例子。

在這個例子中,Endpoint的讀請求通過了兩個Switch,然后到達(dá)其目標(biāo),即Root。Root對讀請求的包進(jìn)行解碼后,并從中識別出操作的地址,然后鎖存數(shù)據(jù),并將數(shù)據(jù)發(fā)送至Endpoint,即包含數(shù)據(jù)的Completion包,ClpD。需要注意的是,PCIe允許每個包的最大數(shù)據(jù)量(Max Data Payload)為4KB,但實(shí)際上經(jīng)常需要發(fā)送大于4KB的數(shù)據(jù)。因此,常常一個讀請求會對應(yīng)多個ClpD,即將大于4KB的數(shù)據(jù)分成多個包發(fā)送。如果遇到錯誤,則Root會通過Completion包告知相應(yīng)的Endpoint。

注:Root向發(fā)送請求的Endpoint發(fā)送Completion包,是通過Request包中的BDF信息(Bus,Device和Function)進(jìn)行查找對應(yīng)的Endpoint的。關(guān)于BDF,會在后面的文章詳細(xì)地介紹。

o Locked Reads

Locked請求實(shí)際上是PCIe為了兼容早期的PCI總線而設(shè)置的一種方式,對于非PCI兼容的設(shè)計中,是不允許使用Locked操作的。并且也只有Root可以發(fā)起Locked請求操作,Endpoint是不可以發(fā)起Locked請求操作的。下圖顯示的是一個簡單的Locked Read請求操作:

Locked Read主要用于支持一種叫做Atomic Read-Modify-Write操作,這是一種高優(yōu)先級且不可被打斷的操作。主要用于測試鏈路狀況等任務(wù)(針對PCI設(shè)備,PCIe設(shè)備禁止使用Locked操作)。此外,Locked操作采用的是目標(biāo)存儲尋址(Target Memory Address)來尋找Legacy Endpoint(PCI設(shè)備),而不是采用前面介紹的BDF。

o IO/Configuration Writes

下圖是一個Non-Posted IO寫操作的例子。和Locked操作一樣,IO操作也是為了兼容早期的PCI設(shè)備,在PCIe設(shè)備中也是不建議使用。

Posted Writes

o Memory Writes

前面的文章有所提及,PCIe中的Memory寫操作都是Posted的,因此Requester并不需要來自Completer的Completion。一個簡單的Memory Writes例子如下圖所示:

因此沒有返回Completion,所以當(dāng)發(fā)生錯誤時,Requester也不會知道。但是,此時Completer會將錯誤記錄到日志(Log),然后向Root發(fā)送包含錯誤信息的Message。

o Message Writes

和其他的幾種類型不太一樣,Message支持多種Routing方式。比如Requester可以將Message發(fā)送至一個指定的Completer,但是不管指定的Completer是不是Root,Root都會自動的收到來自任何一個Endpoint發(fā)送的Message。此外,當(dāng)Requester是Root的時候,Requester還可以向所有的Endpoint進(jìn)行廣播發(fā)送Message。

不得不說,Message機(jī)制的提出幫助PCIe總線省去了很多PCI總線中的邊帶信號。PCI中很多用于中斷、功耗管理、錯誤報告的邊帶信號,在PCIe中都通過了Message來進(jìn)行實(shí)現(xiàn)了。

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

    關(guān)注

    1

    文章

    203

    瀏覽量

    31777
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2859

    瀏覽量

    87914
  • PCIe
    +關(guān)注

    關(guān)注

    15

    文章

    1200

    瀏覽量

    82355

原文標(biāo)題:【博文連載】PCIe掃盲——PCIe總線事務(wù)層入門(二)

文章出處:【微信號:ChinaAET,微信公眾號:電子技術(shù)應(yīng)用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    從焊接角度,設(shè)計PCB的5個建議

    完成個電路板,需要PCB工程師、焊接工藝、焊接工人等諸多環(huán)節(jié)的把控。今天通過定位孔、MARK點(diǎn)、留邊、焊盤過孔、輔助工具這五個方面從畫板的角度跟大家PCB設(shè)計。
    的頭像 發(fā)表于 02-06 10:31 ?1947次閱讀
    從焊接角度<b class='flag-5'>聊</b><b class='flag-5'>一</b><b class='flag-5'>聊</b>,設(shè)計PCB的5個建議

    消息隊列技術(shù)選型的7種消息場景

    我們在做消息隊列的技術(shù)選型時,往往會結(jié)合業(yè)務(wù)場景進(jìn)行考慮。今天來消息隊列可能會用到的 7 種消息場景。
    的頭像 發(fā)表于 12-09 17:50 ?1302次閱讀
    <b class='flag-5'>聊</b><b class='flag-5'>一</b><b class='flag-5'>聊</b>消息隊列技術(shù)選型的7種消息場景

    Altium中Fill,Polygon Pour,Plane的區(qū)別和用法

    Fill會造成短路,為什么還用它呢?來Altium中Fill,Polygon Pour,Plane的區(qū)別和用法
    發(fā)表于 04-25 06:29

    stm32的低功耗調(diào)試

    前言:物聯(lián)網(wǎng)的大部分設(shè)備都是電池供電的,設(shè)備本身低功耗對延長設(shè)備使用至關(guān)重要,今天就實(shí)際調(diào)試總結(jié)stm32的低功耗調(diào)試。1、stm32在運(yùn)行狀態(tài)下的功耗上圖截圖自stm32l15x手冊
    發(fā)表于 08-11 08:18

    7系列FPGA的供電部分

    前幾篇咱們說了FPGA內(nèi)部邏輯,本篇咱們再聊7系列FPGA的供電部分。首先咱們說spartan7系列,通常咱們需要使用以下電源軌:1,VCCINTFPGA內(nèi)部核心電壓。其不損壞FPGA器件的范圍
    發(fā)表于 11-11 09:27

    平衡小車代碼的實(shí)現(xiàn)

    前言今天代碼,只有直立功能的代碼。代碼總體思路給定個目標(biāo)值,單片機(jī)通過IIC和mpu6050通信,得知數(shù)據(jù)后,根據(jù)角度環(huán)計算出個P
    發(fā)表于 01-14 08:29

    FPGA的片內(nèi)資源相關(guān)知識

    大家好,到了每日學(xué)習(xí)的時間了。今天我們來FPGA的片內(nèi)資源相關(guān)知識。 主流的FPGA仍是基于查找表技術(shù)的,已經(jīng)遠(yuǎn)遠(yuǎn)超出了先前版本的基本性能,并且整合了常用功能(如RAM、DCM和DSP)的硬核
    的頭像 發(fā)表于 05-25 14:11 ?8890次閱讀
    <b class='flag-5'>聊</b><b class='flag-5'>一</b><b class='flag-5'>聊</b>FPGA的片內(nèi)資源相關(guān)知識

    IIC總線設(shè)計

    大家好,又到了每日學(xué)習(xí)的時間了,今天咱們來 IIC 總線設(shè)計。 、概述: IIC 是Inter-Integrated Circuit的縮寫,發(fā)音為eye-squared cee
    的頭像 發(fā)表于 06-22 10:32 ?9261次閱讀

    小米米2月19日停止服務(wù) 米宣布關(guān)閉服務(wù)器

    v8.8.70 及以上版本支持批量導(dǎo)出。 2010年12月10日,反應(yīng)迅速的小米僅僅用了不到2個月的時間,發(fā)布了中國第款模仿kik的產(chǎn)品——米。Kik是款基于手機(jī)通信錄的社交軟件,用戶可以免費(fèi)短信聊天。 2012年5月,
    的頭像 發(fā)表于 01-20 05:43 ?6624次閱讀

    復(fù)活了 能維持多久?

    2021年2月19日,米宣布停服,2021年2月26日,米重新上線。不過這次,米卻是以全新的面貌與大家相見。
    發(fā)表于 03-08 16:32 ?1137次閱讀

    FPGA中的彩色轉(zhuǎn)灰度的算法

    大家好,又到了每日學(xué)習(xí)的時間了,今天我們來FPGA學(xué)習(xí)中可以遇到的些算法,今天就
    的頭像 發(fā)表于 04-15 15:47 ?1919次閱讀

    【職場雜談】與嵌入式物聯(lián)網(wǎng)架構(gòu)師幾個話題

    【職場雜談】與嵌入式物聯(lián)網(wǎng)架構(gòu)師幾個話題
    的頭像 發(fā)表于 08-23 09:19 ?1286次閱讀
    【職場雜談】與嵌入式物聯(lián)網(wǎng)架構(gòu)師<b class='flag-5'>聊</b><b class='flag-5'>一</b><b class='flag-5'>聊</b>幾個話題

    華為云彈性公網(wǎng)IP的那些事兒

    華為云彈性公網(wǎng)IP的那些事兒 如今,企業(yè)上云已成為熱門話題,云可以驅(qū)動流程創(chuàng)新和業(yè)務(wù)創(chuàng)新,成為企業(yè)新的利潤增長點(diǎn),被看成是企業(yè)實(shí)現(xiàn)數(shù)字化轉(zhuǎn)型的必經(jīng)之路。彈性公網(wǎng)IP作為種網(wǎng)絡(luò)基
    的頭像 發(fā)表于 11-21 15:20 ?852次閱讀
    <b class='flag-5'>聊</b><b class='flag-5'>一</b><b class='flag-5'>聊</b>華為云彈性公網(wǎng)IP的那些事兒

    簡單DPT技術(shù)-double pattern technology

    今天想來簡單DPT技術(shù)-double pattern technology,也就是雙層掩模版技術(shù),在目前先進(jìn)工藝下,這項技術(shù)已經(jīng)應(yīng)用的很普遍了。
    的頭像 發(fā)表于 12-05 14:26 ?1490次閱讀

    芯片設(shè)計的NDR是什么?

    今天突然想route相關(guān)的問題,講講NDR是什么,我也梳理總結(jié)下我對NDR的認(rèn)識。
    的頭像 發(fā)表于 12-06 15:14 ?1710次閱讀