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

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

3天内不再提示

CCIX错误控制和状态结构概述

安芯教育科技 来源:老秦谈芯 作者:老秦谈芯 2022-08-23 18:13 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

7.RAS概述

PCIe错误分为可校正的错误(Correctable Error)和不可校正的错误(Uncorrectable Error), Uncorrectable又分为致命的(Fatal)和非致命的(Nonfatal)。可校正错误可以自动地被硬件识别并被自动的校正或恢复。非致命错误可能会导致特定的传输变得不可靠,但是链路和硬件的其他功能不受影响。设备驱动软件提供恢复机制,并不会影响到链路和其他设备的运行。致命错误会导致链路和硬件异常,只有通过系统软件进行复位操作实现恢复。

7.1 硬件故障分类

三类硬件故障(Fault):

同步且精确的CPU异常(exception),这些异常可能是由于数据中止、指令预取中止,或由于访问某个故障地址时出现硬件故障而导致的某种形式的总线错误。

异步和不精确的CPU异常,可能由CPU内部的不可纠正错误(Uncorrected Error,UE)、可纠正错误(Corrected Error,CE)或外部总线错误触发。

异步和不精确的系统异常或中断,这些异常发生在CPU子系统之外,一般通过中断线或者消息中断(MSI)报告给CPU,通知CPU发生硬件故障。

7.2 硬件错误传播

主机系统和CCIX设备可以有类似的组件集:

不同类型的存储

不同类型的缓存和寄存器

处理单元(Processing Elements)

一致性互连

上述每个组件都可能消耗、产生或是检测硬件错误。这些硬件错误可能与ECC、命令故障、传输错误、解码错误、逻辑错误、超时/看门狗等有关。

当数据中毒(poisoned)时,错误可能会在整个系统中从一个实体传播到另一个实体,这可能是由处理单元,或者缓存/监听逻辑启动的事务触发的。下图展示了有毒数据如何流经连接到CCIX设备的主机系统。

0ae99f0e-22ca-11ed-ba43-dac502259ad0.png

CCIX规范只规定了如何报告和处理CCIX错误。

7.3 CCIX协议错误报告(Protocol Error Reporting,PER)

有两类硬件故障(Fault)可以引起CCIX硬件错误(Error):

PCIe传输错误,通过标准的PCIe机制报告

CCIX协议错误(CCIX Protocol Errors ,PER),在设备端通过CCIX PER消息报告,并记录到CCIX DVSEC空间;在主机端,错误被报告给错误代理,错误代理向CPU报告错误

7.3.1 PER消息格式

PER消息格式:

0b0db2e0-22ca-11ed-ba43-dac502259ad0.png

其中的PER Type字段的含义是:

0x0:Memory Error Type Structure

0x1:Cache Error Type Structure

0x2:ATC Error Type Structure

0x3:Port Error Type Structure

0x4:CCIX Link Error Type Structure

0x5:Agent Internal

在规范的7.3.3 – 7.3.8章节有具体介绍。

7.3.2 PER日志结构

CCIX PER日志用于报告会导致协议错误的硬件故障。协议错误通常与特定的CCIX协议组件(即CCIX链路、端口、HA、SA或RA)相关。每个日志结构开始的偏移量(字节数)由各种能力结构的错误日志偏移量表示。

0b2b3bc6-22ca-11ed-ba43-dac502259ad0.png

每个日志头由256位组成。DW0和DW1表示错误日志属性字段。DW2和DW3提供错误的故障地址。DW4提供错误的错误地址掩码长度。DW5-7保留供将来使用。后面的具体结构说明全都略去。

7.4 CCIX错误控制和状态结构

CCIX在两个级别提供错误控制机制:

Level 1:CCIX设备错误控制和状态(每个CCIX设备)

Level 2:组件错误控制和状态(根据CCIX协议组件)

必须禁用CCIX设备中所有错误控制和状态寄存器的重置值。主机软件必须明确启用CCIX设备和每个CCIX协议组件的错误报告。启用后,默认情况下,除非软件设置了掩码位,否则错误将被不能被屏蔽。

7.4.1 错误控制寄存器定义

设备和组件的控制寄存器如下:

0b4234de-22ca-11ed-ba43-dac502259ad0.png

7.4.2 设备错误控制流程

本章节介绍错误屏蔽规则和启动时启用错误的流程,略过。

8.地址翻译服务(Address Translation Services)

ATS机制是在PCIe中定义的。简单介绍一下,为节省CPU资源,PCIe设备常采用DMA方式访问内存。Root Complex需要将DMA请求进行一次地址转换才能将访问到真实物理存储地址。进行地址转换可以防止非法DMA请求,并且有利于实现虚拟化传输。但是,RC进行DMA地址转换是需要时间的,相较于不进行地址转换,显然进行DMA地址转换会增加DMA访问的时间。为了减小地址转换的影响,设计人员常常在需要进行地址转换的地方添加地址转换缓存(Address Translation Cache,ATC)。需要设备设计出具有良好的ATC机制,包括ATC的预测、地址翻译请求的长度、发送翻译请求的时机等。

8.1 介绍

CCIX请求代理(RA)发出的内存请求时使用的是物理地址。因此与RA关联的加速器功能(Accelerator Functions,AFs)必须向RA提供物理地址。但是软件使用的是虚拟地址,所以AFs需要执行地址转换。

请求代理不可以向CCIX链路发出带有未翻译虚拟地址的内存请求,因为这可能会违反基于页表的安全性或虚拟化。

AF可以使用两种方法来转换虚拟地址。第一种是使用PCIe定义的地址转换服务变体从主机系统获取地址转换。第二种方法是让AF包含一个MMU,以支持主机系统页表格式。

8.2 ATS

PCIe格式的ATS转换请求、转换完成、失效请求、页面请求和页面响应通过VC0发送。除CCIX VC外,可以在任何VC上发送失效响应。

8.3 无效语义

略过。

8.4 内存类型

除了获取翻译后的页面地址外,CCIX请求代理还需要内存类型信息,以便与内存正确交互。内存类型信息决定了CCIX链路上支持的操作类型,以及数据是否可以在本地缓存。

带有内存属性的ATS翻译完成的格式和定义如下:

0b5931a2-22ca-11ed-ba43-dac502259ad0.png

其中Mem[2:0]的定义如下:

0b6f2f52-22ca-11ed-ba43-dac502259ad0.png

关于Reodering,Early write acknowledge这些在之前的文章中介绍过。

至此,CCIX规范的内容大致粗过一遍,其中PCIe部分基本都略过了,有的地方介绍了一点概念性知识。真需要用到CCIX的时候,还是多看协议。



审核编辑:刘清

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

    关注

    31

    文章

    5618

    浏览量

    130386
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11320

    浏览量

    225832
  • PCIe
    +关注

    关注

    16

    文章

    1474

    浏览量

    88895

原文标题:技术分享 | CCIX(九)

文章出处:【微信号:Ithingedu,微信公众号:安芯教育科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    电能质量在线监测装置的相序错误记录功能可以保存多久?

    电能质量在线监测装置的相序错误记录保存时间, 受设备类型、存储配置、行业标准及应用场景影响,从数天到数年不等 ,具体如下: 一、相序错误记录的存储特性 相序错误作为电能质量异常事件的一种,通常
    的头像 发表于 12-05 17:32 2203次阅读
    电能质量在线监测装置的相序<b class='flag-5'>错误</b>记录功能可以保存多久?

    瀚海微SD NAND/TF卡数据损坏与校验错误(含CRC错误、数据比对失败)问题解析

    数据损坏与校验错误是瀚海微SD NAND/TF卡在数据存储与传输过程中的关键故障,除常见的CRC错误外,数据比对失败(读取数据与写入数据不一致)是核心表现形式,直接影响数据准确性,在工业控制、高清存储等场景中可能引发严重后果。以
    的头像 发表于 11-30 15:15 1094次阅读

    什么是状态机?

    OFF/OFF--- gt;ON/OFF--- gt;ON/ON--- gt;OFF/ON--- gt;OFF/OFF 通过按键控制L1L2的状态,每次状态转换需连续按键5次 L1L2的初始
    发表于 11-27 08:15

    控制结构介绍

    1. 顺序结构:按照代码的书写顺序,逐行执行程序。这是最基本的程序结构。 2. 选择结构:根据条件判断的结果,选择执行不同的代码块。常见的选择结构有if语句和switch语句。 3
    发表于 11-24 06:43

    Cortex-M0+处理器的HardFault错误介绍

    在ARM处理器中,如果一个程序产生了错误并且被处理器检测到,就会产生错误异常。Cortex-M0+处理器只有一种异常用以处理错误:HardFault。
    的头像 发表于 10-14 10:50 3632次阅读
    Cortex-M0+处理器的HardFault<b class='flag-5'>错误</b>介绍

    如何解决I/O时钟布局器错误

    在 I/O 时钟布局器阶段可能会发生错误,指出该工具无法对该时钟结构进行布局,直至最后 BUFG 仍然无法完成布局。
    的头像 发表于 09-23 16:05 1267次阅读

    国巨贴片电容的电压标识有哪些常见错误

    国巨贴片电容的电压标识在识别和使用过程中可能存在一些常见错误,这些错误可能源于标识本身的模糊性、不同系列产品的差异、对标识规则的误解,或使用环境的影响。以下是具体分析: 一、标识模糊或缺失导致的错误
    的头像 发表于 08-28 16:51 919次阅读

    电商API常见错误排查指南:避免集成陷阱

      在电商平台开发中,API集成是连接系统、实现数据交换的核心环节。然而,许多开发者在集成过程中常遇到错误,导致项目延迟、数据丢失或用户体验下降。本文将逐步介绍常见错误类型、排查方法以及预防策略
    的头像 发表于 07-11 14:21 2274次阅读
    电商API常见<b class='flag-5'>错误</b>排查指南:避免集成陷阱

    高温电阻率测试中的5个常见错误及规避方法

    测试结果出现偏差。下面为你详细剖析高温电阻率测试中的 5 个常见错误,并提供有效的规避方法。​ 一、样品制备不当​ 常见错误​ 样品的形状、尺寸和表面状态对高温电阻率测试结果影响显著。部分检测人员在制备样品时,未
    的头像 发表于 06-09 13:07 1028次阅读
    高温电阻率测试中的5个常见<b class='flag-5'>错误</b>及规避方法

    感应电机滑模变结构控制系统的半实物仿真

    滑模变结构控制非常适用于高阶非线性系统,但如何快速而有效地验证此类先进控制算法是开发人员面临的主要问题。基于此,针对大功率高性能调速控制系统,提出了快速验证的半实物仿真方案。首先,设计
    发表于 05-28 15:45

    源漏扩展结构概述

    源漏扩展结构(Source/Drain Extension,SDE)在控制 MOS 器件的短沟道效应中起到重要作用。SDE(源漏扩展结构)引入了一个浅的源漏扩展区,以连接沟道和源漏区域。结深的微缩
    的头像 发表于 05-27 12:01 1393次阅读
    源漏扩展<b class='flag-5'>结构</b><b class='flag-5'>概述</b>

    CX3 GPIF II状态机获取错误状态并且无法显示视频流怎么解决?

    配置 1 、分辨率:4096x2048 2 、车道数:4 3 、 MIPI速度:600Mbps 4 、数据格式:RAW12 5 、帧率:11.6fps 这是 CX3 MIPI 接收器配置 CyCx3UvcAppGpifCB显示一些错误信息 GpifCB:WrapUp SCK1
    发表于 05-16 07:54

    纳芯微电子工业控制、机器人解决方案器件选型概述

    纳芯微电子工业控制、机器人解决方案器件选型概述
    的头像 发表于 05-15 14:40 1097次阅读
    纳芯微电子工业<b class='flag-5'>控制</b>、机器人解决方案器件选型<b class='flag-5'>概述</b>

    CX3上的AR0245传感器的探头控制分辨率错误怎么解决?

    的“cycx3_videostreaming.c”代码。似乎错误的是 决议探测控制结构(CyCx3UvcAppGetProbeControlData) 指向。图像传感器的分辨率
    发表于 05-12 07:02

    如何验证CAN控制器的错误响应机制?

    CAN节点的稳定性、可靠性和安全性得益于其强大的错误管理机制。上一篇文章我们介绍了CAN控制器的错误管理机制的工作原理。本文将基于其工作原理及ISO16845-1:2016标准,为大家介绍
    的头像 发表于 04-30 18:24 1000次阅读
    如何验证CAN<b class='flag-5'>控制</b>器的<b class='flag-5'>错误</b>响应机制?