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

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设备的主机系统。
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消息格式:
其中的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)相关。每个日志结构开始的偏移量(字节数)由各种能力结构的错误日志偏移量表示。
每个日志头由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 错误控制寄存器定义
设备和组件的控制寄存器如下:
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翻译完成的格式和定义如下:
其中mem[2:0]的定义如下:
关于reodering,early write acknowledge这些在之前的文章中介绍过。
至此,ccix规范的内容大致粗过一遍,其中pcie部分基本都略过了,有的地方介绍了一点概念性知识。真需要用到ccix的时候,还是多看协议。


高性价比无线耳机,蓝牙耳机挂脖式哪个牌子好用
iPhone8与三星S8对比:谁更值得期待?
叶面积测定仪的应用领域及使用效果的介绍
同轴腔滤波器的设计及应用研究
什么是泄漏电阻?泄漏电流的原因个绝缘电阻有关系吗?
CCIX错误控制和状态结构概述
WCDMA-HSDPA技术的相关探讨
Maxim发布业界首款SHA3-256安全认证IC
esp8266波特率怎么设置?使用总结
PM2.5传感器与传统的烟雾传感器的差别及应用
ST80+和ST60+ 红外接触式点温仪的特点、性能及应用优势
18W快充终将成为苹果标配
CAN总线与USB的转接技术
自激推挽式DCAC升压变换电路
数据转换器系统中增益误差的校准方法
关于Prompt在NER场景的应用总结
曝Galaxy Fold九月将在特定市场进行发售
2022年第四届信通大会之智慧杆塔专题报告成功召开!附《智慧杆塔科技前沿报告(2022)》下载
新一代TCL85X9C IMAX 沉浸式影音介绍
建筑施工现场扬尘如何治理,扬尘在线监测系统实现数字化管理