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

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

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

Root如何處理來(lái)自其他PCIe設(shè)備的錯(cuò)誤消息

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

這一篇文章講一講,高級(jí)錯(cuò)誤報(bào)告(Advanced Error Reporting,AER)關(guān)于可校正和不可校正錯(cuò)誤的相關(guān)寄存器,以及Root如何處理來(lái)自其他PCIe設(shè)備的錯(cuò)誤消息等內(nèi)容。

? 高級(jí)可校正錯(cuò)誤處理(Advanced Correctable Error Handling)

o 高級(jí)可校正錯(cuò)誤狀態(tài)

高級(jí)可校正錯(cuò)誤狀態(tài)寄存器如下圖所示,當(dāng)相關(guān)錯(cuò)誤發(fā)生后,硬件會(huì)自動(dòng)地將對(duì)應(yīng)bit置1。軟件可以通過(guò)向?qū)?yīng)bit寫(xiě)1,來(lái)清零。

o 高級(jí)可校正錯(cuò)誤屏蔽

高級(jí)可校正錯(cuò)誤屏蔽寄存器如下圖所示,默認(rèn)情況下,這些bit的值都是0。也就是說(shuō),只要發(fā)生相關(guān)錯(cuò)誤,且該錯(cuò)誤報(bào)告功能被使能,則相關(guān)錯(cuò)誤便會(huì)被報(bào)告(不被屏蔽)。當(dāng)然,軟件可以通過(guò)將相關(guān)bit置1,來(lái)屏蔽相關(guān)的錯(cuò)誤報(bào)告信息。

? 高級(jí)不可校正錯(cuò)誤處理(Advanced Uncorrectable Error Handling)

o 高級(jí)不可校正錯(cuò)誤狀態(tài)

高級(jí)不可校正錯(cuò)誤狀態(tài)寄存器如下圖所示,當(dāng)相關(guān)錯(cuò)誤發(fā)生時(shí),不管這些錯(cuò)誤會(huì)不會(huì)被報(bào)告到Root,相關(guān)的bit都會(huì)被置1。

回顧一下,前一篇文章中的當(dāng)前錯(cuò)誤指針(First Error Pointer)。假設(shè)該指針的值為18d,則表明不可校正錯(cuò)誤狀態(tài)寄存器中的第18位對(duì)應(yīng)的錯(cuò)誤——異常的TLP(Malformed TLP)將會(huì)被最先處理。一旦該錯(cuò)誤被處理后,軟件將會(huì)向不可校正錯(cuò)誤狀態(tài)寄存器的第18位寫(xiě)1,來(lái)清除該bit。然后,當(dāng)前錯(cuò)誤指針將會(huì)被更新到下一個(gè)值。

軟件可以通過(guò)高級(jí)不可校正錯(cuò)誤嚴(yán)重度寄存器(Advanced Uncorrectable Error Severity Register)來(lái)修改不可校正錯(cuò)誤是否被作為致命的(Fatal)錯(cuò)誤處理,進(jìn)而使得這些錯(cuò)誤得到區(qū)分處理。如下圖所示,其中,0表示非致命的(Non-Fatal),1表示致命的(Fatal)。

o 高級(jí)不可校正錯(cuò)誤屏蔽

高級(jí)不可校正錯(cuò)誤評(píng)級(jí)寄存器如下圖所示,當(dāng)相關(guān)bit被置1時(shí),對(duì)應(yīng)的錯(cuò)誤類(lèi)型將不會(huì)被報(bào)告。

配置空間中的高級(jí)錯(cuò)誤報(bào)告結(jié)構(gòu)中包含有一個(gè)4DW的子空間,用于緩存接收到的,發(fā)生不可校正錯(cuò)誤的(未被屏蔽的)的TLP的包頭。PCIe Spec規(guī)定,當(dāng)設(shè)備支持AER功能時(shí),必須有能力至少緩存一個(gè)TLP包頭(4DW)。當(dāng)然,有些設(shè)備可能支持緩存更多的TLP包頭。該子空間被稱(chēng)為包頭緩存寄存器(Header Log Register),其支持的錯(cuò)誤類(lèi)型如下圖所示。

在PCIe總線拓?fù)浣Y(jié)構(gòu)中,Root是所有其他PCIe設(shè)備錯(cuò)誤報(bào)告的目標(biāo)(Target)。當(dāng)Root接收到來(lái)自其他PCIe設(shè)備的錯(cuò)誤消息(Error Message)后,Root會(huì)根據(jù)系統(tǒng)的參數(shù)設(shè)置選擇是否向系統(tǒng)報(bào)告錯(cuò)誤,并以何種方式(中斷等)報(bào)告。

注:關(guān)于PCIe的中斷機(jī)制會(huì)在后續(xù)的文章中詳細(xì)介紹。

當(dāng)Root接收到錯(cuò)誤消息后,便會(huì)將Root錯(cuò)誤狀態(tài)寄存器中的對(duì)應(yīng)位置位。需要注意的時(shí),由于Root自身也是PCIe設(shè)備,當(dāng)其自身發(fā)生錯(cuò)誤時(shí),也會(huì)導(dǎo)致Root錯(cuò)誤狀態(tài)寄存器中的對(duì)應(yīng)位置位,就像是其收到了錯(cuò)誤消息了一樣。該寄存器如下圖所示:

前面的文章介紹過(guò),錯(cuò)誤消息也是消息(Message)的一種。錯(cuò)誤消息中包含了錯(cuò)誤源設(shè)備的ID信息(BDF,Bus,Device and Function),根據(jù)ID信息,便可以確定錯(cuò)誤源的位置等信息,同時(shí)將該信息緩存在高級(jí)源ID寄存器中,如下圖所示。

可以通過(guò)Root錯(cuò)誤命令寄存器(Root Error Command Register)的相關(guān)bit來(lái)使能或者禁止相關(guān)類(lèi)型的錯(cuò)誤是否被報(bào)告至系統(tǒng)。如下圖所示:

聲明:本文內(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)注

    31

    文章

    5359

    瀏覽量

    120818
  • PCIe
    +關(guān)注

    關(guān)注

    15

    文章

    1247

    瀏覽量

    82890
  • root
    +關(guān)注

    關(guān)注

    1

    文章

    86

    瀏覽量

    21403

原文標(biāo)題:【博文連載】PCIe掃盲——高級(jí)錯(cuò)誤報(bào)告AER(二)

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    何處理變頻電路中電磁輻射引起的干擾

    何處理變頻電路中電磁輻射引起的干擾 變頻器帶來(lái)大經(jīng)濟(jì)效益同時(shí)也帶來(lái)許多負(fù)面影響,變頻電路產(chǎn)生電磁輻射可以造成其他通信設(shè)備及電子設(shè)備干擾。1.
    發(fā)表于 01-04 13:06 ?1969次閱讀
    如<b class='flag-5'>何處理</b>變頻電路中電磁輻射引起的干擾

    英特爾至強(qiáng)處理器可擴(kuò)展系列是否支持PCIe AtomicOps主機(jī)到設(shè)備交易?

    PCIe規(guī)范定義了3種類(lèi)型的AtomicOps事務(wù):“AtomicOps的架構(gòu)適用于設(shè)備到主機(jī),設(shè)備設(shè)備和主機(jī)到設(shè)備的交易?!比绻⑻貭?
    發(fā)表于 10-15 11:23

    何處理“map.ncd缺失”的錯(cuò)誤

    :198”并閱讀MAP修正問(wèn)題的主答復(fù)記錄。有人告訴我如何處理它?以上來(lái)自于谷歌翻譯以下為原文i think the problem "map.ncd is missing"lead
    發(fā)表于 07-19 11:38

    MCU功耗來(lái)自何處?

    MCU功耗來(lái)自何處?低功耗MCU設(shè)計(jì)考慮平均功耗計(jì)算范例
    發(fā)表于 02-24 07:38

    MCU功耗來(lái)自何處

    MCU功耗來(lái)自何處 在開(kāi)始討論低功耗MCU設(shè)計(jì)前,必須先探討MCU功耗的來(lái)源,其主要由靜態(tài)功耗及運(yùn)行功耗兩部分組成。考慮實(shí)際的應(yīng)用,最后決定系統(tǒng)功耗性能指針則必須計(jì)算平均功耗。 運(yùn)行功耗 現(xiàn)代 MCU 已整合相當(dāng)多的的模擬外圍,不能單純考慮數(shù)...
    發(fā)表于 11-01 09:31

    PCIe設(shè)備發(fā)出MSI-X中斷請(qǐng)求的方法

    x86處理器如何處理MSI-X中斷請(qǐng)求PCIe設(shè)備發(fā)出MSI-X中斷請(qǐng)求的方法與發(fā)出MSI中斷請(qǐng)求的方法類(lèi)似,都是向Message Address所在的地址寫(xiě)Message Data字
    發(fā)表于 02-16 06:36

    PCIe的Spec中明確規(guī)定只有Root有權(quán)限發(fā)起配置請(qǐng)求

    處理器一般不能夠直接發(fā)起配置讀寫(xiě)請(qǐng)求,因?yàn)槠渲荒墚a(chǎn)生Memory Request和IO Request。這就意味著Root必須要將處理器的相關(guān)請(qǐng)求轉(zhuǎn)換為配置讀寫(xiě)請(qǐng)求。針對(duì)傳統(tǒng)的PCI設(shè)備
    的頭像 發(fā)表于 05-04 09:12 ?6990次閱讀
    <b class='flag-5'>PCIe</b>的Spec中明確規(guī)定只有<b class='flag-5'>Root</b>有權(quán)限發(fā)起配置請(qǐng)求

    PCIe總線的錯(cuò)誤報(bào)告機(jī)制中四個(gè)比較重要的概念

    錯(cuò)誤報(bào)告(Error Reporting):通知系統(tǒng)某個(gè)(或多個(gè))錯(cuò)誤發(fā)生了。在PCIe總線中,發(fā)生錯(cuò)誤設(shè)備會(huì)通過(guò)
    的頭像 發(fā)表于 08-17 10:09 ?6725次閱讀

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

    PCIe總線錯(cuò)誤檢測(cè)囊括了鏈路(Link)上的錯(cuò)誤以及包傳遞過(guò)程中的錯(cuò)誤,如下圖所示。用戶(hù)設(shè)計(jì)的應(yīng)用程序?qū)又械?b class='flag-5'>錯(cuò)誤不屬于鏈路傳輸中的
    的頭像 發(fā)表于 08-18 11:05 ?1.5w次閱讀

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

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

    PCIe錯(cuò)誤報(bào)告機(jī)制上高級(jí)錯(cuò)誤報(bào)告AER

    也是其他錯(cuò)誤的根源。PCIe Spec V2.1還支持多個(gè)錯(cuò)誤的追蹤(Tracking Multiple Errors)。
    的頭像 發(fā)表于 08-27 11:31 ?7529次閱讀
    <b class='flag-5'>PCIe</b><b class='flag-5'>錯(cuò)誤</b>報(bào)告機(jī)制上高級(jí)<b class='flag-5'>錯(cuò)誤</b>報(bào)告AER

    PCIe設(shè)備在一個(gè)系統(tǒng)中是如何發(fā)現(xiàn)與訪問(wèn)的

    PCIe體系架構(gòu)一般由root complex,switch,endpoint等類(lèi)型的PCIe設(shè)備組成,在root complex和swit
    的頭像 發(fā)表于 03-11 15:28 ?1.9w次閱讀
    <b class='flag-5'>PCIe</b><b class='flag-5'>設(shè)備</b>在一個(gè)系統(tǒng)中是如何發(fā)現(xiàn)與訪問(wèn)的

    PCIe錯(cuò)誤報(bào)告的兩種機(jī)制詳解

    該機(jī)制是PCIe設(shè)備必需支持的一種錯(cuò)誤報(bào)告機(jī)制,同時(shí)設(shè)備會(huì)定義最小的錯(cuò)誤報(bào)告請(qǐng)求。應(yīng)該是通過(guò)配置Device Control和Command
    的頭像 發(fā)表于 10-23 11:14 ?2.6w次閱讀
    <b class='flag-5'>PCIe</b><b class='flag-5'>錯(cuò)誤</b>報(bào)告的兩種機(jī)制詳解

    x86處理器如何處理MSI-X中斷請(qǐng)求

    x86處理器如何處理MSI-X中斷請(qǐng)求PCIe設(shè)備發(fā)出MSI-X中斷請(qǐng)求的方法與發(fā)出MSI中斷請(qǐng)求的方法類(lèi)似,都是向Message Address所在的地址寫(xiě)Message Data字
    發(fā)表于 12-17 18:28 ?9次下載
    x86<b class='flag-5'>處理</b>器如<b class='flag-5'>何處理</b>MSI-X中斷請(qǐng)求

    何處理RTOS錯(cuò)誤和超時(shí)

      在典型系統(tǒng)中,許多路徑流經(jīng) RTOS,因此它處于檢測(cè)和處理錯(cuò)誤的良好位置。一般來(lái)說(shuō),函數(shù)的返回值,尤其是 RTOS 服務(wù),不應(yīng)該在沒(méi)有檢查的情況下使用。
    的頭像 發(fā)表于 06-29 09:46 ?3251次閱讀
    如<b class='flag-5'>何處理</b>RTOS<b class='flag-5'>錯(cuò)誤</b>和超時(shí)