PCIe总线的错误报告机制中四个比较重要的概念

前面的文章提到过,pci总线中定义两个边带信号(perr#和serr#)来处理总线错误。其中perr#主要对应的是普通数据奇偶校检错误(parity error),而serr#主要对应的是系统错误(system error)。具体如下:
· 普通的数据奇偶校检错误——通过perr#报告
· 在多任务事务(multi-task transaction,又称为special cycles)时的奇偶校检错误——通过serr#报告
· 地址和命令的奇偶校检错误——通过serr#报告
· 其他错误——通过serr#报告
一个简单的例子如下图所示:
pcie作为一种高速串行总线,取消了pci总线中的这两个边带信号,采用错误消息的方式来实现错误报告。但是,在软件层面上,pcie仍是兼容pci总线的,具体后面会详细描述。
在pcie总线的错误报告机制中,有如下四个比较重要的概念:
· 错误检测(error detection):指的是检测某个错误是否存在的过程。
· 错误登记(error logging):指的是将相关寄存器(配置空间中的)的对应为置位,以等待软件中的相关错误处理程序来处理该错误。
· 错误报告(error reporting):通知系统某个(或多个)错误发生了。在pcie总线中,发生错误的设备会通过错误消息(error message)逐级将错误信息发送至root,root接收到错误消息后,会产生对应的中断通知系统。
· 错误发送(error signaling):指的是通过发送错误消息(或者带有ur,ca的completion和poisoned tlp)来传递错误信息的过程。
注:“带有ur,ca的completion”在前面的文章中介绍过,不熟悉的可以回顾一下。“poisoned tlp”是pcie总线错误报告机制中的error forwarding的方式,具体会在后面详细介绍。
pcie总线spec定义了两个错误报告等级。第一个为基本的(baseline capability),是所有pcie设备都需要支持的功能。第二个是可选的,称之为高级错误报告(advanced error reporting capability)。
在基本的错误报告机制中,有两组相关的配置寄存器(配置空间中),分别为:
· 兼容pci总线的寄存器(pci-compatible registers)
· pcie总线中新增的寄存器(pci express capability registers)
高级错误报告机制(aer)中,又使用了一组专用的配置寄存器(配置空间中)。借助aer可以获得更多的错误信息,有助于软件定位错误源和分析错误原因。
pcie总线的错误可以分为(correctable errors)和不可校正错误(uncorrectable errors)。其中,可校正错误可以自动地被硬件识别并被自动的校正或恢复。而不可校正错误又被分为非致命的(non-fatal)和致命的(fatal)。非致命的错误一般有设备驱动软件(device specific software)直接处理,且链路(link)可恢复,甚至链路上的数据有可能得到恢复(不丢失数据)。致命的错误只能由系统软件(system software)处理,且一般需要进行复位等操作,因此链路上的数据必然会丢失。

阿米巴,真正强大的生物计算机了解一下?
海尔冰箱!深受国外青睐的中国制造
新能源汽车成长的方向
【EsDA 应用】Modbus RTU Master 转 TCP Server
西门子S7模拟量输入输出模块常见问题
PCIe总线的错误报告机制中四个比较重要的概念
2018中国异构系统架构标准(CSH)暨全球异构系统架构标准(HSA CRC)研讨会在湖南召开
如何让智慧城市变得更加的科学高效
虚拟机和容器的性能损耗评测
亚系外资出具报告 看好联发科明年营收可望年增7%
利用物联网技术,探寻智慧农业的解决方案
电阻焊与电弧焊的区别
变频器使用的21个干货经验
李自学踏上深圳的改革征程是否星辰大海?能否带领中兴通讯逆风翻盘?
3D自动光学检测技术应用于精准检测电路板制造缺陷
盘点2018年中国三元材料出货量TOP10
睿米手术机器人,为更多患者带来福音
富士100MP中幅无反相机GFX100预计明年推出 售价高达1万美元
恩兔N2云盘体验 安全实用
德国推出首个电子医疗档案应用软件