DDR5 ECC详细原理介绍与基于协议讲解

article/2025/8/7 5:50:38

本文篇幅较长,涉及背景原理介绍方便大家理解其运作方式 以及 基于DDR5协议具体展开介绍。

背景原理介绍

上图参考:DDR 内存中的 ECC

写入操作时,On-die ECC的工作过程如下:

  1. SoC将需要写入到Memory中的数据发送给控制器
  2. 控制器将需要写入的数据直接发送给DRAM芯片
  3. 在DDR5 DRAM内部,根据写入的数据进行计算,生成对应的ECC码
  4. DRAM芯片将写入的数据和对应的ECC码保存在存储阵列中

读取操作基本上是写入过程的逆过程,On-die ECC的具体工作过程如下:

  1. DRAM芯片将数据和对应的ECC码读取出来
  2. DRAM根据读取出的数据进行计算,生成用于校验的ECC码
  3. DRAM将读取出的ECC码和上一步中计算生成的ECC码进行比较
  4. 若这两个ECC码相同,则表明读取出的数据没有发生错误,数据将直接传输给控制器;若这两个ECC码不同,则表明读取出的数据存在错误,将会对数据以单bit纠错的方式进行数据纠正

综上,On-die ECC的基本特征是ECC码的计算生成和比较都在DRAM芯片上进行。On-die ECC其实是一种较新应用在DRAM中的技术,随着DRAM芯片的不断微缩,到了DDR5技术代,BL和WL的间距和线宽不断减小,存储单元间发生串扰的可能性逐渐增加,因此误码率也在不断上升,需要通过On-die ECC来降低误码率。

Note:row hammer作为一种经典的内存硬件错误,即就是狂锤某一行,隔山打牛,让隔壁的行不寒而栗,在颤抖中改变立场。通俗一点的语言解释一下row hammer:DDR数据读取的过程,是通过ACT命令激活某一行row,读取到sense amp中,之后再写回到原来的cell。由于DDR芯片密度的增高,这种频繁的读写会对临近行产生影响,多次之后甚至会造成该cell的电量变化,进一步引起电平翻转

4.35 片上ECC -- 基于协议展开介绍

DDR5设备应实现内部单错误纠正(SEC:Single Error Correction)ECC以提高DRAM内部的数据完整性。DRAM将使用128个数据位来计算8个ECC校验位的ECC码。

对于x4 DDR5设备,即使x4是64位预取设备,内部预取用于片上ECC的是128位。对于x4设备的每个读或写事务,将内部访问DRAM阵列的额外部分,以提供用于128位ECC计算中所需的额外64位。换句话说,在x4设备中,每个8位ECC校验位字与DRAM的两个64位部分相连。对于x8设备,不需要额外的预取,因为预取与外部传输大小相同。对于x16设备,从不同的内部bank(相同的外部bank地址)中提取了两个128位数据字和它们对应的8个校验位。每个128位数据位和对应的8个校验位分别并行地进行检查。

在读取时,DRAM会在将数据返回给内存控制器之前纠正任何单比特错误。在读取周期中,DRAM不会将纠正后的数据写回阵列。

在写入时,DRAM会计算ECC并将数据和ECC位写入阵列。如果外部数据传输大小小于128个数据位编码字(对于x4设备),则DRAM将需要执行内部的“读-修改-写”操作。在合并传入的写入数据之前,DRAM会纠正因内部读取而产生的任何单比特错误,并重新计算8个ECC校验位,然后将数据和ECC位写入阵列。对于x8和x16 DDR5的情况,不需要进行内部读取操作。

对于x16设备,从两个内部bank(相同的外部bank地址)读取两个136位码字(two 136-bit code words࿰


http://www.hkcw.cn/article/FvHRiarBDD.shtml

相关文章

设计模式——外观设计模式(结构型)

摘要 本文介绍了外观设计模式,它是一种结构型设计模式,通过引入一个外观类来封装复杂子系统的调用细节,对外提供简单统一的接口。文中通过生活类比、关键角色介绍、使用场景分析以及结构说明等方面对这一模式进行了全面阐述,还涉…

计算机网络(5)——数据链路层

1.概述 数据链路层负责一套链路上从一个节点向另一个物理链路直接相连的相邻节点传输数据报。换言之,主要解决相邻节点间的可靠数据传输 节点(nodes):路由器和主机 链路(links):连接相邻节点的通信信道 2.数据链路层服务 2.1 组帧 组帧(fra…

深度优先搜索(DFS)邻接矩阵实现

代码&#xff1a; // 访问标记数组&#xff0c;需要提前初始化为false bool visited[MAX_VERTEX_NUM]; void DFS(AMGraph G, int v) { // 图G为邻接矩阵类型&#xff0c;v是当前访问的顶点// 步骤1&#xff1a;访问顶点vcout << v; // 输出顶点编号…

将手机网络经USB数据线和本地局域网共享给华为AP6050DN无线接入点

引言 由于最近装毕的新家所在的小区未能及时通宽带,于是家中各类无线设备如何上网就成了首要要解决的问题。 鉴于家中要联网的设备多、类型杂、支持频段也不一,总是开手机热点不是回事儿,于是就想着把手机网络引至华为AP6050DN无线接入点中,让家中所有的无线设备都能快速高…

接口安全SOAPOpenAPIRESTful分类特征导入项目联动检测

1 、 API 分类特征 SOAP - WSDL OpenApi - Swagger RESTful - /v1/api/ 2 、 API 常见漏洞 OWASP API Security TOP 10 2023 3 、 API 检测流程 接口发现&#xff0c;遵循分类&#xff0c;依赖语言&#xff0c; V1/V2 多版本等 Method &#xff1a;请求方法 攻击方…

Python基础:常量、变量、变量类型、表达式、注释、输入输入、运算符

引言 手把手带你快速上手Python 一、常量和表达式 在Python中运行下面的代码&#xff1a; print(1 2 - 3) print(1 2 * 3) print(1 2 / 3)​​​​ 注意: print 是一个 Python 内置的 函数, 这个稍后详细介绍.可以使用 - * / ( ) 等运算符进行算术运算. 先算乘除, 后算加…

归一化相关

归一化相关问题 归一化方式Batch NormalizationLayer NormalizationInstance NormalizationGroup NormalizationRMSNorm(Root Mean Square Layer Normalization):RMSNorm 和 LayerNorm区别?归一化方式 Batch Normalization 在每一层的输入进行归一化处理,使其在每个批次内…

进阶日记(一)—LLMs本地部署与运行(更新中)

本项目资料主要来源&#xff1a;【知识科普】【纯本地化搭建】【不本地也行】DeepSeek RAGFlow 构建个人知识库_哔哩哔哩_bilibili 目录 一、背景知识 二、Ollma安装 三、Docker安装 接上一篇&#xff08;非科班大模型工程师进阶日记&#xff08;〇&#xff09;&#xff…

【论文解读】Deformable DETR | Deformable Transformers for End-to-End Object Detection

论文地址&#xff1a;https://arxiv.org/pdf/2010.04159 代码地址&#xff1a;https://github.com/fundamentalvision/Deformable-DETR 摘要 DETR最近被提出&#xff0c;旨在消除物体检测中许多手工设计的组件的需求&#xff0c;同时展示出良好的性能。然而&#xff0c;由于T…

大语言模型的推理能力

2025年&#xff0c;各种会推理的AI模型如雨后春笋般涌现&#xff0c;比如ChatGPT o1/o3/o4、DeepSeek r1、Gemini 2 Flash Thinking、Claude 3.7 Sonnet (Extended Thinking)。 对于工程上一些问题比如复杂的自然语言转sql&#xff0c;我们可能忍受模型的得到正确答案需要更多…

PINN for PDE(偏微分方程)1 - 正向问题

PINN for PDE(偏微分方程)1 - 正向问题 目录 PINN for PDE(偏微分方程)1 - 正向问题一、什么是PINN的正问题二、求解的实际例子三、基于Pytorch实现的代码 - 分解3.1 引入库函数3.2 设置超参数3.3 设计随机种子&#xff0c;确保复现结果的一致性3.4 对于条件等式生成对应的训练…

Adobe LiveCycle ES、LiveCycle DS 与 BlazeDS 关系解析与比较

Adobe LiveCycle 系列产品是企业级解决方案的重要组成部分&#xff0c;但在命名和功能上常常造成混淆。 产品定义 Adobe LiveCycle ES (Enterprise Suite) LiveCycle ES是一个基于SOA的平台&#xff0c;部署在J2EE应用服务器上。它提供开发、部署、配置和执行服务的功能。基…

Redis最佳实践——性能优化技巧之监控与告警详解

Redis 在电商应用的性能优化技巧之监控与告警全面详解 一、监控体系构建 1. 核心监控指标矩阵 指标类别关键指标计算方式/说明健康阈值&#xff08;参考值&#xff09;内存相关used_memoryINFO Memory 获取不超过 maxmemory 的 80%mem_fragmentation_ratio内存碎片率 used_m…

使用 DeepSeek API 搭建智能体《无间》- 卓伊凡的完整指南 -优雅草卓伊凡

使用 DeepSeek API 搭建智能体《无间》- 卓伊凡的完整指南 -优雅草卓伊凡 作者&#xff1a;卓伊凡 前言&#xff1a;为什么选择 DeepSeek API&#xff0c;而非私有化部署&#xff1f; 在开始搭建智能体之前&#xff0c;我想先说明 为什么推荐使用 DeepSeek API&#xff0c;而…

lidar和imu的标定(三)平面约束的方法

看了一篇&#xff1a;基于平面特征的地面机器人雷达-惯性里程计外参标定方法&#xff1b; 它和GRIL-Calib不同之处&#xff0c;就是采用了平面优化和栅格优化。 栅格优化就不介绍了&#xff0c;感觉工程上不。 平面优化则很容易懂&#xff0c;就是标定出来了激光雷达到IMU之…

CppCon 2014 学习: C++ on Mars

主要介绍了如何在火星探测器的飞行软件中使用 C。&#xff1a; 介绍了火星探测器&#xff08;如 Sojourner, Spirit, Opportunity, Curiosity, Perseverance&#xff09;。强调其复杂性和自主性。 延迟的现实&#xff1a;地球与火星之间的通信时延 单程信号延迟为 4 到 22 分…

【MFC】初识MFC

目录 01 模态和非模态对话框 02 静态文本 static text 01 模态和非模态对话框 首先我们需要知道模态对话框和非模态对话框的区别&#xff1a; 模态对话框是一种阻塞时对话框&#xff0c;它会阻止用户与应用程序的其他部分进行交互&#xff0c;直到用户与该对话框进行交互并关…

C#数字图像处理(二)

文章目录 1.灰度直方图1.1 灰度直方图定义1.2 灰度直方图编程实例 2.线性点运算2.1线性点运算定义2.2 线性点运算编程实例 3.全等级直方图灰度拉伸3.1 灰度拉伸定义3.2 灰度拉伸编程实例 4.直方图均衡化4.1 直方图均衡化定义4.2 直方图均衡化编程实例 5.直方图匹配5.1 直方图匹…

SOC-ESP32S3部分:24-WiFi配网

飞书文档https://x509p6c8to.feishu.cn/wiki/OD4pwTE8Jift2IkYKdNcSckOnfd 对于WiFi类设备&#xff0c;最重要的功能之一就是联网&#xff0c;WiFi需要联网&#xff0c;就需要知道我们家里路由的账号和密码&#xff0c;像手机类型的高端设备没什么问题&#xff0c;我们可以直接…

使用langchain实现五种分块策略:语义分块、父文档分块、递归分块、特殊格式、固定长度分块

文章目录 分块策略详解1. 固定长度拆分&#xff08;简单粗暴&#xff09;2. 递归字符拆分&#xff08;智能切割&#xff09;3. 特殊格式拆分&#xff08;定向打击&#xff09;Markdown分块 4. 语义分割&#xff08;更智能切割&#xff09;基于Embedding的语义分块基于模型的端到…