0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

SwM2_ChinaAET 来源:未知 作者:李倩 2018-08-17 10:09 次阅读

前面的文章提到过,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)处理,且一般需要进行复位等操作,因此链路上的数据必然会丢失。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5308

    浏览量

    119980
  • 总线
    +关注

    关注

    10

    文章

    2864

    浏览量

    87973
  • PCIe
    +关注

    关注

    15

    文章

    1217

    浏览量

    82424

原文标题:【博文连载】PCIe扫盲——PCIe错误定义与分类

文章出处:【微信号:ChinaAET,微信公众号:电子技术应用ChinaAET】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    PCB设计如何进行统一批量检测并生成错误报告

    不仅能在PCB设计的过程实时检测, 而且也能够在需要的时候进行统一的批量检测并生成错误报告。 Altium Designer的设计规则不是PCB对象的属性, 而是独立定义的。 每条规则需针对具体的PCB对象。对于PCB规则系统来说,它必须知道给定的规则应用于哪些对象,即
    的头像 发表于 04-04 09:21 1.1w次阅读
    PCB设计<b class='flag-5'>中</b>如何进行统一批量检测并生成<b class='flag-5'>错误报告</b>

    CAN控制器总线错误分析之CAN节点BusOff恢复过程分析与测试

    总线关闭(bus off)是CAN节点比较重要错误处理机制。那么,在总线关闭状态下,CAN节点的恢复流程是怎样的?又该如何理解节点恢复流程的“快恢复”和“慢恢复”
    发表于 08-04 11:16 1.5w次阅读
    CAN控制器<b class='flag-5'>总线</b><b class='flag-5'>错误</b>分析之CAN节点BusOff恢复过程分析与测试

    Win8系统操作不当弹出错误报告

    win8有时候会操作不当,系统会弹出一错误报告,频繁弹出提示窗口,非常麻烦,有什么方法可以将提示窗口关闭呢?系统 会弹出一错误报告,它会将系统出现的一些问题生成文件
    发表于 06-24 14:35

    仿真停止后怎样关掉错误报告

    问个小问题 请问怎样设定才能在仿真停止之后让那个错误报告页面不弹出。每次仿真完之后都弹出烦死了
    发表于 06-23 00:29

    关于Quartus II 错误报告Error (171173): Node from partition Top cannot preserve previous placement at PIN_P8 and honor the location assigment to PIN_F8

    问题:在修改分配管脚后总是出现下面这个错误报告,编译不过。Error (171173): Node rs232_tx from partition Top cannot preserve
    发表于 11-04 21:13

    MPLAB X IDE v3.20编译器使用错误的行号引用报告错误

    嗨,我使用XC16并在汇编编写,所以当编译过程中代码出错时,编译器将错误报告错误的行。例如,我在编辑器的第1439行出错,编译器将错误报告
    发表于 09-16 11:14

    为什么我设计的TMS320VC5402板子在调试软件时总会出现存储器错误报告

    我设计的TMS320VC5402板子在调试软件时会经常出现存储器错误报告,排除是映射的问题,是不是板子不稳定的因素?还是DSP工作不正常的问题?如何判别?
    发表于 09-17 05:33

    PCIe配置为端点时,如何启用AER(高级错误报告)驱动程序?

    PCIe 配置为端点时,如何启用 AER(高级错误报告)驱动程序。
    发表于 04-19 07:31

    基于软件错误报告数据集成的改进贝叶斯算法

    用户提交的软件错误报告随意性大、主观性强且内容少导致自动分类正确率不高,需要花费大量人工干预时间。随着互联网的快速发展用户提交的错误报告数量也不断增加,如何在海量数据下提高其自动分类的精确度越来越
    发表于 12-18 11:25 1次下载

    PCIe扫盲—PCIe错误检测机制的详细资料概述

    PCIe总线错误检测囊括了链路(Link)上的错误以及包传递过程错误,如下图所示。用户设计的
    的头像 发表于 08-18 11:05 1.5w次阅读

    PCIe总线的三种错误报告方式

    PCIe设备的配置空间中的状态与控制寄存器如上图所示,通过这些寄存器可以使能(或禁止)通过错误消息(Error Message)发送错误报告、查询错误状态信息,以及链路训练和初始化状态
    的头像 发表于 08-23 10:14 1.4w次阅读
    <b class='flag-5'>PCIe</b><b class='flag-5'>总线</b>的三种<b class='flag-5'>错误报告</b>方式

    PCIe错误报告机制上高级错误报告AER

    也是其他错误的根源。PCIe Spec V2.1还支持多个错误的追踪(Tracking Multiple Errors)。
    的头像 发表于 08-27 11:31 7387次阅读
    <b class='flag-5'>PCIe</b><b class='flag-5'>错误报告</b><b class='flag-5'>机制</b>上高级<b class='flag-5'>错误报告</b>AER

    Root如何处理来自其他PCIe设备的错误消息

    高级可校正错误屏蔽寄存器如下图所示,默认情况下,这些bit的值都是0。也就是说,只要发生相关错误,且该错误报告功能被使能,则相关错误便会被报告
    的头像 发表于 08-28 09:44 4339次阅读
    Root如何处理来自其他<b class='flag-5'>PCIe</b>设备的<b class='flag-5'>错误</b>消息

    PCIe错误报告的两种机制详解

    机制PCIe设备必需支持的一种错误报告机制,同时设备会定义最小的错误报告请求。应该是通过配置Device Control和Command
    的头像 发表于 10-23 11:14 2.5w次阅读
    <b class='flag-5'>PCIe</b><b class='flag-5'>错误报告</b>的两种<b class='flag-5'>机制</b>详解

    查看服务器连接错误报告的方法说明

    查看服务器连接错误报告的方法
    发表于 01-07 11:04 1023次阅读