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

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

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

介紹事務(wù)錯(cuò)誤、鏈路流量控制相關(guān)的錯(cuò)誤、異常的TLP以及內(nèi)部錯(cuò)誤

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

這篇文章主要介紹事務(wù)(Transaction)錯(cuò)誤、鏈路流量控制(Link Flow Control)相關(guān)的錯(cuò)誤、異常的TLP(Malformed TLP)以及內(nèi)部錯(cuò)誤(Internal Errors)等。

事務(wù)(Transaction )錯(cuò)誤

事務(wù)錯(cuò)誤主要包括不支持的請(qǐng)求(Unsupported Request)、Completer Abort、非預(yù)期的Completion和Completion超時(shí)。該錯(cuò)誤類型主要通過(guò)返回的Completion TLP包頭中的Compl. Status告知Requester,如下圖所示。

不支持的請(qǐng)求(Unsupported Request)主要包括:

1. 請(qǐng)求類型不被當(dāng)前PCIe設(shè)備支持

2. 消息中使用了不支持或者未定義的消息編碼

3. 請(qǐng)求的地址空間超出(或者不在)設(shè)備的地址空間中

4. 針對(duì)Completer的IO或者存儲(chǔ)映射控制空間(Memory-mapped Control Space)進(jìn)行的Poisoned寫(xiě)操作(EP=1)

5. Root或者Switch的Downstream端口接收到針對(duì)其二級(jí)總線(Secondary Bus)上的不存在的設(shè)備的配置請(qǐng)求(Configuration Request)

6. Endpoint接收到Type1型的配置請(qǐng)求

7. Completion中使用了保留的Completion狀態(tài)編碼(參考上面的表格)

8. 設(shè)備(的某個(gè)功能,F(xiàn)unction)處于D1、D2或者D3hot電源管理狀態(tài)時(shí),卻接收到了除了配置請(qǐng)求和消息之外的內(nèi)容

Completer Abort(CA)主要包括:

1. Completer接收的特殊請(qǐng)求,只有在違背其規(guī)則的情況下才能對(duì)該請(qǐng)求進(jìn)行響應(yīng)(返回Completion)

2. 因?yàn)槟承┖愣ǖ腻e(cuò)誤狀態(tài)(Permanent Error Condition),導(dǎo)致Completer無(wú)法響應(yīng)接收到的請(qǐng)求

3. Completer接收到存在訪問(wèn)控制服務(wù)錯(cuò)誤(Access Control Services Error,ACS Error)的請(qǐng)求

4. PCIe-to-PCI橋接收到針對(duì)其連接的PCI設(shè)備的請(qǐng)求,但是該P(yáng)CI設(shè)備無(wú)法處理該請(qǐng)求

非預(yù)期的Completion主要包括:

1. Requester接收到的Completion和其發(fā)出的Request不一致

Completion超時(shí):

所有的PCIe設(shè)備都必須支持Completion超時(shí)定時(shí)器,除非該設(shè)備只是用于初始化配置事務(wù)的。需要注意的是,PCIe設(shè)備必須能夠針對(duì)多個(gè)事務(wù)(Transaction)分別計(jì)時(shí)。PCIe 1.x和2.0的Spec建議超時(shí)時(shí)間最好設(shè)置為10ms至50ms之間,對(duì)于一些特殊情況,超時(shí)時(shí)間最低可設(shè)置為30us。PCIe 2.1 Spec開(kāi)始,增加了第二設(shè)備控制寄存器(Device Control Register 2)用于查看和控制超時(shí)時(shí)間的值。如下圖所示:

如果,某個(gè)請(qǐng)求對(duì)應(yīng)多個(gè)Completion,那么除了最后一個(gè)Completion,其他的Completion不會(huì)造成該請(qǐng)求的定時(shí)器停止計(jì)時(shí)。

鏈路流量控制(Link Flow Control)相關(guān)的錯(cuò)誤

鏈路流量控制相關(guān)的錯(cuò)誤主要有:

1. 在FC初始化時(shí),鏈路相鄰設(shè)備無(wú)法完成針對(duì)任何一個(gè)VC的,最小的FC Credits的交換更新(Advertises)

2. 鏈路相鄰設(shè)備交換更新(Advertises)的FC Credits超過(guò)了最大值(Data Payload最大為2047,Header最大為127)

3. 鏈路相鄰設(shè)備交換更新時(shí),F(xiàn)C Credits為非零值,且該鏈路的FC Credits之前已經(jīng)被初始化為無(wú)限值了

4. 接收端Buffer溢出,導(dǎo)致數(shù)據(jù)丟失(可選的,但是如果使能,則認(rèn)為是Fatal Error)

關(guān)于Flow Control可以參考之前的文章:http://blog.chinaaet.com/justlxy/p/5100053464

和http://blog.chinaaet.com/justlxy/p/5100053465

異常的TLP(MalformedTLP)

異常的TLP(Malformed TLP)錯(cuò)誤主要有:

1. Data Payload超過(guò)了最大值(Max Payload Size)

2. 數(shù)據(jù)長(zhǎng)度(Data Length)與包頭中的長(zhǎng)度值不一致

3. 存儲(chǔ)地址起始位置跨越了4KB邊界(Naturally-aligned 4KB Boundary)

4. TD(TLP Digest)的值與ECRC是否使用不一致

5. 字節(jié)使能沖突(Byte Enable Violation)

6. 未定義的類型值(Type Field Values)

7. Completion違反了RCB(Read Completion Boundary)值

8. 針對(duì)非配置請(qǐng)求返回的Completion中的狀態(tài)為配置請(qǐng)求重試狀態(tài)(Configuration Request Retry Status)

9. TC域包含了一個(gè)未被分配到當(dāng)前使能的VC的值(也被稱為TC Filtering)

10. IO或者配置請(qǐng)求沖突(可選的)

11. 中斷Emulation消息向下發(fā)送(可選的)

12. TLP前綴錯(cuò)誤(具體請(qǐng)參考PCIe Spec V2.0的2.2~2.6相關(guān)章節(jié))

內(nèi)部錯(cuò)誤(Internal Errors)

一般指的是Switch等橋設(shè)備內(nèi)部產(chǎn)生的錯(cuò)誤

聲明:本文內(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)投訴
  • PCIe
    +關(guān)注

    關(guān)注

    15

    文章

    1165

    瀏覽量

    81990
  • 配置
    +關(guān)注

    關(guān)注

    1

    文章

    187

    瀏覽量

    18302

原文標(biāo)題:【博文連載】PCIe掃盲——PCIe錯(cuò)誤源詳解(二)

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    TLP的數(shù)據(jù)鏈路層組成與操作

    Buffer保存的所有報(bào)文,當(dāng)處于DL INIT狀態(tài)時(shí),向事務(wù)層發(fā)送DL DOWN狀態(tài)信息 ?。?)、DL Init:物理層通知數(shù)據(jù)鏈路層當(dāng)前PCIe可用,此時(shí)數(shù)據(jù)鏈路層需要首先初始化VC0的
    發(fā)表于 01-08 17:25

    導(dǎo)致致命異常錯(cuò)誤和無(wú)效頁(yè)錯(cuò)誤的原因是什么?

    導(dǎo)致致命異常錯(cuò)誤和無(wú)效頁(yè)錯(cuò)誤的原因是什么? 如果Microsoft Word或Excel“崩潰”,意味著在程序執(zhí)行過(guò)程中出現(xiàn)了嚴(yán)重的錯(cuò)誤。操作系統(tǒng)常常會(huì)發(fā)現(xiàn)存在一個(gè)嚴(yán)重問(wèn)題,并
    發(fā)表于 08-05 10:33 ?993次閱讀

    《Visual C# 2005開(kāi)發(fā)技術(shù)》處理異常錯(cuò)誤

    《Visual C# 2005開(kāi)發(fā)技術(shù)》處理異常錯(cuò)誤
    發(fā)表于 02-07 15:17 ?0次下載

    PCIe掃盲—PCIe錯(cuò)誤檢測(cè)機(jī)制的詳細(xì)資料概述

    PCIe總線錯(cuò)誤檢測(cè)囊括了(Link)上的錯(cuò)誤以及包傳遞過(guò)程中的錯(cuò)誤,如下圖所示。用戶設(shè)計(jì)的
    的頭像 發(fā)表于 08-18 11:05 ?1.5w次閱讀

    PCIe總線的三種錯(cuò)誤報(bào)告方式

    PCIe設(shè)備的配置空間中的狀態(tài)與控制寄存器如上圖所示,通過(guò)這些寄存器可以使能(或禁止)通過(guò)錯(cuò)誤消息(Error Message)發(fā)送錯(cuò)誤報(bào)告、查詢錯(cuò)誤狀態(tài)信息,
    的頭像 發(fā)表于 08-23 10:14 ?1.4w次閱讀
    PCIe總線的三種<b class='flag-5'>錯(cuò)誤</b>報(bào)告方式

    TAC配置錯(cuò)誤引起用戶流量計(jì)費(fèi)異常案例

    TAC配置錯(cuò)誤引起用戶流量計(jì)費(fèi)異常案例(場(chǎng)效應(yīng)管接電源模塊)-該文檔為TAC配置錯(cuò)誤引起用戶流量計(jì)費(fèi)異常
    發(fā)表于 07-26 12:01 ?8次下載
    TAC配置<b class='flag-5'>錯(cuò)誤</b>引起用戶<b class='flag-5'>流量</b>計(jì)費(fèi)<b class='flag-5'>異常</b>案例

    Python中有哪些常見(jiàn)的錯(cuò)誤異常

    python常見(jiàn)異常類型 在程序運(yùn)行過(guò)程中,總會(huì)遇到各種各樣的問(wèn)題和錯(cuò)誤。 有些錯(cuò)誤是我們編寫(xiě)代碼時(shí)自己造成的,比如語(yǔ)法錯(cuò)誤、調(diào)用錯(cuò)誤,甚至
    的頭像 發(fā)表于 03-04 16:58 ?4035次閱讀

    關(guān)于CAN總線錯(cuò)誤相關(guān)知識(shí)

    在本系列文章中,我們將為您詳細(xì)介紹CAN總線錯(cuò)誤相關(guān)知識(shí),包括CAN總線錯(cuò)誤的基礎(chǔ)概念、CAN總線錯(cuò)誤的類型、CAN
    的頭像 發(fā)表于 05-27 17:56 ?2947次閱讀

    CAN總線錯(cuò)誤的類型介紹

    在本系列文章中,我們將為您詳細(xì)介紹CAN總線錯(cuò)誤相關(guān)知識(shí),包括CAN總線錯(cuò)誤的基礎(chǔ)概念、CAN總線錯(cuò)誤的類型、CAN
    的頭像 發(fā)表于 06-13 16:08 ?7905次閱讀

    can總線的信號(hào)錯(cuò)誤介紹

    錯(cuò)誤幀用于在接收和發(fā)送消息時(shí)檢測(cè)出錯(cuò)誤通知錯(cuò)誤的幀,它由錯(cuò)誤標(biāo)志和錯(cuò)誤界定符構(gòu)成。
    發(fā)表于 08-24 18:20 ?2888次閱讀

    虹科干貨 | 帶你全面認(rèn)識(shí)“CAN總線錯(cuò)誤”(二)——CAN錯(cuò)誤類型

    AsimpleintrotoCANerrorsCAN總線錯(cuò)誤介紹在本系列文章中,我們將為您詳細(xì)介紹CAN總線錯(cuò)誤相關(guān)知識(shí),包括CAN總線
    的頭像 發(fā)表于 06-09 09:46 ?1985次閱讀
    虹科干貨 | 帶你全面認(rèn)識(shí)“CAN總線<b class='flag-5'>錯(cuò)誤</b>”(二)——CAN<b class='flag-5'>錯(cuò)誤</b>類型

    虹科干貨 | 帶你全面認(rèn)識(shí)“CAN總線錯(cuò)誤”(一)——CAN總線錯(cuò)誤錯(cuò)誤

    AsimpleintrotoCANerrorsCAN總線錯(cuò)誤介紹在本系列文章中,我們將為您詳細(xì)介紹CAN總線錯(cuò)誤相關(guān)知識(shí),包括CAN總線
    的頭像 發(fā)表于 05-27 10:39 ?4353次閱讀
    虹科干貨 | 帶你全面認(rèn)識(shí)“CAN總線<b class='flag-5'>錯(cuò)誤</b>”(一)——CAN總線<b class='flag-5'>錯(cuò)誤</b>與<b class='flag-5'>錯(cuò)誤</b>幀

    虹科干貨 | 帶你全面認(rèn)識(shí)“CAN總線錯(cuò)誤”(二)——CAN錯(cuò)誤類型

    AsimpleintrotoCANerrorsCAN總線錯(cuò)誤介紹在本系列文章中,我們將為您詳細(xì)介紹CAN總線錯(cuò)誤相關(guān)知識(shí),包括CAN總線
    的頭像 發(fā)表于 06-02 09:41 ?1259次閱讀
    虹科干貨 | 帶你全面認(rèn)識(shí)“CAN總線<b class='flag-5'>錯(cuò)誤</b>”(二)——CAN<b class='flag-5'>錯(cuò)誤</b>類型

    虹科干貨 | 帶你全面了解“CAN總線錯(cuò)誤”(四)——在實(shí)踐中生成和記錄CAN錯(cuò)誤

    AsimpleintrotoCANerrorsCAN總線錯(cuò)誤介紹在本系列文章中,我們將為您詳細(xì)介紹CAN總線錯(cuò)誤相關(guān)知識(shí),包括CAN總線
    的頭像 發(fā)表于 06-09 10:21 ?1453次閱讀
    虹科干貨 | 帶你全面了解“CAN總線<b class='flag-5'>錯(cuò)誤</b>”(四)——在實(shí)踐中生成和記錄CAN<b class='flag-5'>錯(cuò)誤</b>

    ug內(nèi)部錯(cuò)誤,內(nèi)存訪問(wèn)違例怎么解決

    ug內(nèi)部錯(cuò)誤,內(nèi)存訪問(wèn)違例怎么解決 內(nèi)部錯(cuò)誤和內(nèi)存訪問(wèn)違例是編程中常見(jiàn)的問(wèn)題,它們可能會(huì)導(dǎo)致應(yīng)用程序崩潰、數(shù)據(jù)丟失或系統(tǒng)不穩(wěn)定。在本文中,我將詳細(xì)解釋
    的頭像 發(fā)表于 12-27 16:27 ?5271次閱讀