時間:2018-08-17 11:06:31來源:網(wǎng)絡轉載
前面的文章提到過,PCI總線中定義兩個邊帶信號(PERR#和SERR#)來處理總線錯誤。其中PERR#主要對應的是普通數(shù)據(jù)奇偶校檢錯誤(ParityError),而SERR#主要對應的是系統(tǒng)錯誤(SystemError)。具體如下:
·普通的數(shù)據(jù)奇偶校檢錯誤——通過PERR#報告
·在多任務事務(Multi-taskTransaction,又稱為SpecialCycles)時的奇偶校檢錯誤——通過SERR#報告
·地址和命令的奇偶校檢錯誤——通過SERR#報告
·其他錯誤——通過SERR#報告
一個簡單的例子如下圖所示:
PCIe作為一種高速串行總線,取消了PCI總線中的這兩個邊帶信號,采用錯誤消息的方式來實現(xiàn)錯誤報告。但是,在軟件層面上,PCIe仍是兼容PCI總線的,具體后面會詳細描述。
在PCIe總線的錯誤報告機制中,有如下四個比較重要的概念:
·錯誤檢測(ErrorDetection):指的是檢測某個錯誤是否存在的過程。
·錯誤登記(ErrorLogging):指的是將相關寄存器(配置空間中的)的對應為置位,以等待軟件中的相關錯誤處理程序來處理該錯誤。
·錯誤報告(ErrorReporting):通知系統(tǒng)某個(或多個)錯誤發(fā)生了。在PCIe總線中,發(fā)生錯誤的設備會通過錯誤消息(ErrorMessage)逐級將錯誤信息發(fā)送至Root,Root接收到錯誤消息后,會產(chǎn)生對應的中斷通知系統(tǒng)。
·錯誤發(fā)送(ErrorSignaling):指的是通過發(fā)送錯誤消息(或者帶有UR,CA的Completion和PoisonedTLP)來傳遞錯誤信息的過程。
注:“帶有UR,CA的Completion”在前面的文章中介紹過,不熟悉的可以回顧一下。“PoisonedTLP”是PCIe總線錯誤報告機制中的ErrorForwarding的方式,具體會在后面詳細介紹。
PCIe總線Spec定義了兩個錯誤報告等級。第一個為基本的(BaselineCapability),是所有PCIe設備都需要支持的功能。第二個是可選的,稱之為高級錯誤報告(AdvancedErrorReportingCapability)。
在基本的錯誤報告機制中,有兩組相關的配置寄存器(配置空間中),分別為:
·兼容PCI總線的寄存器(PCI-compatibleRegisters)
·PCIe總線中新增的寄存器(PCIExpressCapabilityRegisters)
高級錯誤報告機制(AER)中,又使用了一組專用的配置寄存器(配置空間中)。借助AER可以獲得更多的錯誤信息,有助于軟件定位錯誤源和分析錯誤原因。
PCIe總線的錯誤可以分為(CorrectableErrors)和不可校正錯誤(UncorrectableErrors)。其中,可校正錯誤可以自動地被硬件識別并被自動的校正或恢復。而不可校正錯誤又被分為非致命的(Non-Fatal)和致命的(Fatal)。非致命的錯誤一般有設備驅動軟件(DeviceSpecificSoftware)直接處理,且鏈路(Link)可恢復,甚至鏈路上的數(shù)據(jù)有可能得到恢復(不丟失數(shù)據(jù))。致命的錯誤只能由系統(tǒng)軟件(SystemSoftware)處理,且一般需要進行復位等操作,因此鏈路上的數(shù)據(jù)必然會丟失。
標簽:
中國傳動網(wǎng)版權與免責聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(wǎng)(surachana.com)獨家所有。如需轉載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責任。
本網(wǎng)轉載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
相關資訊
產(chǎn)品新聞
更多>2025-07-08
調(diào)機師傅的"外掛神器"!維宏「一鍵調(diào)機...
2025-06-30
顛覆傳統(tǒng)加工!維宏VHTube一鍵實現(xiàn)變徑...
2025-06-16
2025-06-09
2025-06-06
2025-05-26