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

    文章

    5590

    浏览量

    129092
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11221

    浏览量

    222991
  • PCIe
    +关注

    关注

    16

    文章

    1423

    浏览量

    87568

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    什么是状态机?

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

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

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

    源漏扩展结构概述

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

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

    纳芯微电子工业控制、机器人解决方案器件选型概述
    的头像 发表于 05-15 14:40 710次阅读
    纳芯微电子工业<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 654次阅读
    如何验证CAN<b class='flag-5'>控制</b>器的<b class='flag-5'>错误</b>响应机制?

    Linux进程状态详解

    对应设备未就绪那么进程就要阻塞等待了。进程状态变化的表现之一就是要在不同的队列中进行流动,本质都是数据结构的增删查改!
    的头像 发表于 04-01 09:46 815次阅读
    Linux进程<b class='flag-5'>状态</b>详解

    CAN节点错误管理机制工作原理解析

    CAN节点的稳定性、可靠性和安全性得益于其强大的错误管理机制。那么,CAN节点为什么能感知错误?又是如何响应错误?您是否能清晰地想象出这一过程?本文将为大家详细分析CAN节点错误管理的
    的头像 发表于 03-25 11:44 700次阅读
    CAN节点<b class='flag-5'>错误</b>管理机制工作原理解析

    pcm1795如果没有软件控制,其默认工作状态,输入是什么格式和状态

    请问:pcm1795,如果没有软件控制,其默认工作状态,输入是什么格式和状态。谢谢!
    发表于 01-21 08:06

    常见xgboost错误及解决方案

    XGBoost(eXtreme Gradient Boosting)是一种流行的机器学习算法,用于解决分类和回归问题。尽管它非常强大和灵活,但在使用过程中可能会遇到一些常见的错误。以下是一些常见
    的头像 发表于 01-19 11:22 4658次阅读

    基于Vector工具进行CAN协议错误帧的分析实践

    广播发送的短帧结构,还体现在其错误检测机制上。通过总线数据以及总线波形来分析总线故障时,CAN协议错误检测机制中丰富的错误帧类型能让定位问题的效率更高。
    的头像 发表于 01-15 10:03 1002次阅读
    基于Vector工具进行CAN协议<b class='flag-5'>错误</b>帧的分析实践

    GPIO错误排查与解决

    在嵌入式系统和微控制器编程中,通用输入输出(GPIO)是最常见的接口之一。然而,在使用GPIO时,我们可能会遇到各种错误。 1. 理解GPIO GPIO是微控制器上的一组引脚,可以被配置为输入或输出
    的头像 发表于 01-09 09:46 3727次阅读

    RTOS中的错误检查机制

    在嵌入式应用中,有可能发生各种各样的错误,系统必须能够检测到这些错误并作出适当的响应。RTOS通常内置了一些错误检查功能,用于检测错误并向应用提供响应
    的头像 发表于 01-03 14:44 1022次阅读

    DAC7811在哪种错误状态下,或者错误控制下会输出正压吗?

    错误状态下,输出如下: 通道3(蓝色),为DAC输出经运放转变后的电压,可看出为+1.5V,通道1通道2(黄色、绿色)为后级差分运放输出; DAC7811在哪种错误状态下,或者
    发表于 12-24 08:15

    EEPROM编程常见错误及解决方案

    EEPROM(电可擦可编程只读存储器)在编程过程中可能会遇到多种错误。以下是一些常见的EEPROM编程错误及其解决方案: 常见错误 数据写入错误 : 在写入EEPROM时,数据可能由于
    的头像 发表于 12-16 17:08 6613次阅读