Zynq7000系列FPGA中的DDRC纠错码(ECC)

news2024/9/22 21:35:18


仅在半总线宽度(16位)数据宽度配置中提供可选的ECC支持。这种配置下,外部DRAM DDR设备需要26位,其中16位用于数据,10位用于ECC。每个数据字节使用独立的5位ECC字段,这种模式提供了单错误纠正和双错误检测的能力。

ECC位与数据位以及未使用的位交织在一起,这种交织方式有助于在数据传输过程中同时传输数据和ECC校验信息,以便在接收端能够实时进行错误检测和纠正。如表10-13所示。

ECC位的使用

  • 单错误纠正:当数据中的任何一位发生错误时,ECC算法能够使用这些ECC位来定位和纠正这个错误。这确保了数据的完整性和准确性。
  • 双错误检测:此外,ECC还能检测到数据中的两位错误,尽管它不能纠正这种情况。检测到双错误后,系统可以采取适当的错误恢复措施,如重试操作、记录错误日志或触发警报。

ECC初始化

ECC仅在16位总线模式下被支持。当ECC被启用时,写操作会计算并存储ECC码以及数据,读操作会读取数据并对照存储的ECC码进行检查。因此,在读取未初始化的内存位置时,可能会收到ECC错误。为了避免此问题,必须先写入所有内存位置,然后才能读取。请注意,由于ECC是在字节分辨率上计算和检查的,因此对仅初始化了该字节的16位位置读取1个字节(16位位置的第二个字节未初始化)不会导致ECC错误。控制器仅检查已读取字节的ECC。通过CPU写入整个DDR DRAM可能需要大量时间。使用DMA设备为DDR控制器初始化生成更大的脉冲串并卸载CPU可能是值得的。请注意,只有Arm CPU和ACP接口可以访问DDR的最低512KB(见表4-1),CPU软件可能仍然需要初始化基于ECC的DDR的这个区域。

请注意,虽然只有两个数据字节通道用于实际数据,但所有四个通道都在ECC模式下使用,因此必须在所有通道上执行DDR训练。

ECC错误行为

对于可纠正的ECC错误,系统通常不会通过中断或AXI响应来主动发出错误信号。

对于不可纠正的ECC错误,控制器将SLVERR响应返回给发出请求的AXI总线主控器。在这两种情况下,有关错误的信息(如列、行和存储体错误地址、错误字节通道等)都记录在控制器寄存器空间中。

当控制器检测到可纠正的ECC错误时,它会执行以下操作:

  • 将校正后的数据作为读取数据的一部分发送到核心。
  • 将ECC错误信息发送到寄存器接口进行记录。
  • 执行RMW操作以更正DRAM中存在的数据(仅当启用ECC清理时(reg_ddrc_dis_scrub=0)。此RMW操作对核心不可见。在任何时候,控制器中只能有一个未执行的擦除RMW命令。当控制器处理另一个擦除RMW时,不会对发生的单比特ECC错误执行擦除。

当控制器检测到不可纠正的错误时,它会执行以下操作:

  • 将不可纠正的数据与错误响应一起发送到核心。这会导致AXI接口上的AXI SLVERR响应以及损坏的数据。AXI SLVERR响应将返回给待处理的事务主机,可能会产生L2/DMA中断、CPU预取/数据异常,或直接转发给PL AXI主机。
  • 将ECC错误信息发送到寄存器模块进行记录。

ECC模式下的数据掩码

ECC是在一个字节的数据上计算的,因此如果需要,可以在启用ECC的情况下屏蔽任何数据字节。这减轻了控制器在发生字节掩码时执行RMW操作的需要。

ECC编程模型

以下详细介绍了ECC编程要求。请注意,这些配置是常规DDR初始化编程的补充。另请注意,建议在读取任何数据之前初始化整个DDR空间,以防止因访问未初始化的内存区域而产生ECC错误。

启用ECC操作(从非ECC模式切换到ECC模式)

  1. 将reg_ddrc_soft_rstb编程为0(重置控制器)
  2. 通过将reg_ddrc.ECC_mode编程为3'b100来编程ECC模式
  3. 将reg_ddrc_dis_scrub编程为1'b0
  4. 程序reg_ddrc_data_bus_width到2'b1
  5. 将reg_ddrc_soft_rstb编程为1(使控制器退出重置)

请注意,建议在从DDR空间读取任何数据之前重新初始化整个DDR空间,以防止因访问未初始化的内存区域而产生ECC错误。

禁用ECC操作(从ECC模式切换到非ECC模式)

  1. 将reg_ddrc_soft_rstb编程为0(重置控制器)
  2. 通过将reg_ddrc.ECC_mode编程为3'b000来编程ECC模式
  3. 将reg_ddrc_dis_scrub编程为1'b1
  4. 将reg_ddrc_data_bus_width编程为2''00
  5. 将reg_ddrc_soft_rstb编程为1(使控制器不再复位)

AR#58684中描述了通过将错误位插入DDR存储器来测试ECC可纠正/不可纠正错误检测的示例测试程序。

监控ECC状态

  1. CHE_CORR_ECC_ADDR_REG_OFFSET给出ECC纠错的行/列信息
  2. CHE_UNCOR_ECC_ADDR_REG_OFFSET给出ECC不可恢复错误的行/列信息
  3. CHE_CORR_ECC_LOG_REG_OFFSET的B[0]表示ECC状态可纠正
  4. CHE_UNCOR_ECC_LOG_REG_OFFSET的B[0]表示ECC状态不可纠正
  5. CHE_ec_STATS_REG_OFFSET
  • B[7:0]->给出不可纠正错误的数量
  • B[15:8]->给出可纠正错误的数量

注意:CHE_ECC_STATS_REG_OFFSET报告自上次读取寄存器以来观察到的具有可纠正和不可纠正ECC错误的突发事务数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2097218.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】vector迭代器失效问题

本文是对vector迭代器失效问题的分析,需要对vector有一定了解,若还不了解的可以看这篇文章进行学习:【C】容器vector常用接口详解-CSDN博客 目录 一.什么是迭代器失效? 二.迭代器失效的典型案例 1.引起底层空间改变 2.指定位置…

Docker 在 Windows 上的使用指南

Docker 在 Windows 上的使用指南 Docker 是一种强大的容器化平台,广泛应用于开发和生产环境。本文将介绍如何在 Windows 系统上使用 Docker,包括容器的启动、常见问题的排查,以及网络问题的解决方法。 1. Docker 安装与配置 在开始使用 Do…

大模型书单指南:如何快速找到最适合你的那一本书?别找了就是这本!

大模型的书这么多,该怎么选呢? 本期书单就来教大家怎么快速地从众多大模型书中选到你想要的那一本! 大模型基础 大模型入门不可错过的一本书,就是这本大模型界的经典畅销书**《大规模语言模型》**!系统性强&#xf…

如何从 Mac 上清空的垃圾箱中恢复误删除的文件

在 Mac 上删除的文件将被移至垃圾箱并保留 30 天,然后才会被永久删除。但是,许多 Mac 用户可能会意外清空垃圾箱而没有意识到其中包含了重要文件。本指南包含从清空的垃圾箱中恢复 Mac 上已删除文件的所有有效方法。 当您意识到自己意外清空了 Mac 上的…

C语言基础(三十一)

1、线性搜索&#xff1a; #include "date.h" #include <stdio.h> #include <stdlib.h> #include <time.h> // 希尔排序 void shellSort(int arr[], int n) { for (int gap n / 2; gap > 0; gap / 2) { for (int i gap; i < n; i…

vue学习记录十四:路由(router)学习(五):Vue Router基本原理实现第二种方法

vue学习记录十四&#xff1a;路由&#xff08;router&#xff09;学习&#xff08;四&#xff09;&#xff1a;Vue Router基本原理实现二 一、vueRouter目录结构二、模拟vueRouter目录结构三、index.js文件实现四、install.js文件实现五、创建组件六、解析路由规则七、match实现…

浅谈人工智能之基于anaconda的AutoGen Studio环境搭建

浅谈人工智能之基于anaconda的AutoGen Studio环境搭建 AutoGen Studio 是一个基于 AutoGen 框架的图形用户界面&#xff08;GUI&#xff09;工具。它使开发人员能够更轻松地创建和管理多智能体应用&#xff0c;而无需编写代码。AutoGen Studio 提供了拖放式界面和各种预构建模…

绿色革命:‘众店‘如何重塑零售业并引领消费新潮流

在数字化浪潮的推动下&#xff0c;传统零售业正面临深刻的变革。在这一过程中&#xff0c;绿色积分系统作为一种创新的消费模式&#xff0c;逐渐成为市场的新宠。 一、"众店"平台的迅猛发展 "众店"平台仅用两年时间就实现了跨越式发展&#xff0c;交易额突…

JS基础【双重for循环的实现与应用、打印九九乘法表】

&#x1f680; 个人简介&#xff1a;某大型国企资深软件开发工程师&#xff0c;信息系统项目管理师、CSDN优质创作者、阿里云专家博主、华为云云享专家&#xff0c;分享前端后端相关技术与工作常见问题~ &#x1f49f; 作 者&#xff1a;码喽的自我修养&#x1f970; &#…

springboot+MySQL流浪猫狗疾病预约救治系统-计算机毕设 附源码 13676

springboot流浪猫狗疾病预约救治系统 摘 要 现如今在中国&#xff0c;随着人民生活质量的逐渐提高&#xff0c;以及人民群众消费能力的日渐增长&#xff0c;各种各样的家养小动物&#xff0c;已经逐渐成为人类越来越亲密的生活伴侣。并且&#xff0c;现如今社会竞争及其激烈&am…

钢铁百科:A633D交货状态、A633D对应牌号、A633D力学性能解析

A633D钢板是一种美标低合金高强度结构钢板&#xff0c;也被称为A633GrD钢板&#xff0c;其执行标准为ASTM/A633M。这种钢板以其高屈服强度、良好的韧性、抗腐蚀性和耐疲劳性而著称&#xff0c;广泛应用于建筑、桥梁、船舶、汽车、铁路、重型机械及矿山机械等多个领域。 一、A6…

【CSS】如何写渐变色文字并且有打光效果

效果如上&#xff0c;其实核心除了渐变色文字的设置 background: linear-gradient(270deg, #d2a742 94%, #f6e2a7 25%, #d5ab4a 48%, #f6e2a7 82%, #d1a641 4%);color: #e8bb2c;background-clip: text;color: transparent;还有就是打光效果&#xff0c;原理其实就是两块遮罩&am…

微信小程序知识点(一)

1.条件判断&#xff1a; wx:if&#xff0c;wx:elif&#xff0c;wx:else 和Hidden的区别 wx:if等是动态实现组件的&#xff0c;符合条件&#xff0c;页面上就新增一个组件&#xff0c;不符合&#xff0c;就会在也页面上加载&#xff0c;而Hidden只是控制页面的组件的显示与否&…

C#绘制常用工业控件(仪表盘,流动条,开关等)

目录 1&#xff0c;使用Graphics绘制Toggle。 效果&#xff1a; 测试代码&#xff1a; Toggle控件代码&#xff1a; 2&#xff0c;使用Graphics绘制Switch。 效果&#xff1a; 测试代码&#xff1a; Switch控件代码&#xff1a; 3&#xff0c;使用Graphics绘制PanelHe…

【Nest 学习笔记】AOP切片编程

切片编程 AOP 把通用逻辑抽离出来&#xff0c;通过切面的方式添加到某个地方&#xff0c;可以复用和动态增删切面逻辑。 中间件 Middleware Middleware 中间件属于全局中间件&#xff08;Middleware 是 Express 的概念&#xff09; 常用于对请求接口进行日志记录 // main.ts …

七. 部署YOLOv8检测器-load-save-tensor

目录 前言0. 简述1. 案例运行2. 补充说明3. 代码分析3.1 main.cpp3.2 create_data.py 结语下载链接参考 前言 自动驾驶之心推出的 《CUDA与TensorRT部署实战课程》&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考 本次课程我们来学习课程第六章—部署分类器&…

GMeLLo:结合知识图谱的 LLM 多跳问答技术,效果显著提升

1. GMeLLo 提出的背景 1.1 多跳问答 多跳问答的难度往往比较大&#xff0c;因为不仅要追溯事实&#xff0c;还要聚合与串联事实。 事实的来源可以是知识图谱、表格、自由格式文本&#xff0c;或者是这些来源的异构组合。 随着大型语言模型的发展&#xff0c;基于提示的方法…

安科瑞ACR10R网络电力仪表 CE认证 带外置互感器

产品概述&#xff1a; ‌‌安科瑞ACR10R网络电力仪表是一种集成了多种电力参数测量、电能计量、电能监测和考核管理等多种功能于一体的电力仪表。它适用于冶炼、钢铁、电焊、半导体等高能耗行业的节能改造工程&#xff0c;同时也适用于分布式光伏并网柜的功率监测、电力需求侧…

sqli-labs靶场通关攻略 56-60

主页有sqli-labs靶场通关攻略 1-55 第五六关 less-56 步骤一&#xff1a;闭合方式&#xff1a;?id1)-- 步骤二&#xff1a;查询数据库 ?id-1) union select 1,2,database() -- 步骤三&#xff1a;联合查询 查出网站的数据库表名 ?id-1) union select 1,2,group_concat(t…

探索AntSKPro AI知识库一体机:离线智能的便捷之选

在数字化时代&#xff0c;信息的获取和处理速度是企业和个人效率的关键。然而&#xff0c;网络连接的不稳定性常常成为阻碍。AntSKPro AI知识库一体机&#xff0c;一款专为离线环境设计的智能设备&#xff0c;以其卓越的性能和用户友好的设计&#xff0c;正在重新定义离线AI解决…