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

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

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

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

SwM2_ChinaAET ? 來源:未知 ? 作者:李倩 ? 2018-08-22 10:22 ? 次閱讀

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

事務(wù)(Transaction )錯誤

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

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

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

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

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

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

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

6. Endpoint接收到Type1型的配置請求

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

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

Completer Abort(CA)主要包括:

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

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

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

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

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

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

Completion超時:

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

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

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

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

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

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

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

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)錯誤主要有:

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

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

3. 存儲地址起始位置跨越了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. 針對非配置請求返回的Completion中的狀態(tài)為配置請求重試狀態(tài)(Configuration Request Retry Status)

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

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

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

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

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

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

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

    關(guān)注

    15

    文章

    1241

    瀏覽量

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

    關(guān)注

    1

    文章

    189

    瀏覽量

    18402

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

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

收藏 人收藏

    評論

    相關(guān)推薦

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

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

    導(dǎo)致致命異常錯誤和無效頁錯誤的原因是什么?

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

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

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

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

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

    PCIe總線的三種錯誤報告方式

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

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

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

    Python中有哪些常見的錯誤異常

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

    關(guān)于CAN總線錯誤相關(guān)知識

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

    CAN總線錯誤的類型介紹

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

    can總線的信號錯誤介紹

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

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

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

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

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

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

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

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

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

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

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