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

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

3天内不再提示

ECC校验的详细讲解

嵌入式应用开发 来源:嵌入式应用开发 作者:嵌入式应用开发 2022-06-18 20:08 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

pYYBAGKtv1mAALtpAATLzw1ZNSs002.png

定义

ECC校验是一种内存纠错原理,它是比较先进的内存错误检查和更正的手段。ECC内存即纠错内存,简单的说,其具有发现错误,纠正错误的功能,一般多应用在高档台式电脑/服务器及图形工作站上,这将使整个电脑系统在工作时更趋于安全稳定。

技术原理

内存是一种电子器件,在其工作过程中难免会出现错误,而对于稳定性要求高的用户来说,内存错误可能会引起致命性的问题。内存错误根据其原因还可分为硬错误和软错误。硬件错误是由于硬件的损害或缺陷造成的,因此数据总是不正确,此类错误是无法纠正的;软错误是随机出现的,例如在内存附近突然出现电子干扰等因素都可能造成内存软错误的发生。

为了能检测和纠正内存软错误,在ECC技术出现之前,首先出现的是内存“奇偶校验(Parity)”。内存中最小的单位是比特,也称为“位(bit)”,位有只有两种状态分别以1和0来标示,每8个连续的比特叫做一个字节(byte)。不带奇偶校验的内存每个字节只有8位,如果其某一位存储了错误的值,就会导致其存储的相应数据发生变化,进而导致应用程序发生错误。而奇偶校验就是在每一字节(8位)之外又增加了一位作为错误检测位。在某字节中存储数据之后,在其8个位上存储的数据是固定的,因为位只能有两种状态1或0,假设存储的数据用位标示为1、1、1、0、0、1、0、1,那么把每个位相加(1+1+1+0+0+1+0+1=5),结果是奇数。对于偶校验,校验位就定义为1,反之则为0;对于奇校验,则相反。当CPU读取存储的数据时,它会再次把前8位中存储的数据相加,计算结果是否与校验位相一致。从而一定程度上能检测出内存错误,奇偶校验只能检测出错误而无法对其进行修正,同时虽然双位同时发生错误的概率相当低,奇偶校验却无法检测出双位错误。

通过上面的分析我们知道Parity内存是通过在原来数据位的基础上增加一个数据位来检查当前8位数据的正确性,但随着数据位的增加Parity用来检验的数据位也成倍增加,就是说当数据位为16位时它需要增加2位用于检查,当数据位为32位时则需增加4位,依此类推。特别是当数据量非常大时,数据出错的几率也就越大,对于只能纠正简单错误的奇偶检验的方法就显得力不从心了,正是基于这样一种情况,一种新的内存技术应允而生了,这就是ECC(错误检查和纠正),这种技术也是在原来的数据位上外加校验位来实现的。不同的是两者增加的方法不一样,这也就导致了两者的主要功能不太一样。它与Parity不同的是如果数据位是8位,则需要增加5位来进行ECC错误检查和纠正,数据位每增加一倍,ECC只增加一位检验位,也就是说当数据位为16位时ECC位为6位,32位时ECC位为7位,数据位为64位时ECC位为8位,依此类推,数据位每增加一倍,ECC位只增加一位。总之,在内存中ECC能够容许错误,并可以将错误更正,使系统得以持续正常的操作,不致因错误而中断,且ECC具有自动更正的能力,可以将Parity无法检查出来的错误位查出并将错误修正。

示例

ECC(Error Checking and Correcting,错误检查和纠正)内存,它同样也是在数据位上额外的位存储一个用数据加密的代码。当数据被写入内存,相应的ECC代码与此同时也被保存下来。当重新读回刚才存储的数据时,保存下来不ECC代码就会和读数据时产生的ECC代码做比较。如果两个代码不相同,他们则会被解码,以确定数据中的哪一位是不正确的。然后这一错误位会被抛弃,内存控制器则会释放出正确的数据。被纠正的数据很少会被放回内存。假如相同的错误数据再次被读出,则纠正过程再次被执行。重写数据会增加处理过程的开销,这样则会导致系统性能的明显降低。如果是随机事件而非内存的缺点产生的错误,则这一内存地址的错误数据会被再次写入的其他数据所取代。

审核编辑:符乾江

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

    关注

    5186

    文章

    20149

    浏览量

    328844
  • ECC
    ECC
    +关注

    关注

    0

    文章

    100

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    芯片失效分析篇 —— 浅谈MICRON Memory ECC 功能

    摘要:本文介绍了ECC(错误纠正码)在存储器中的关键作用,重点分析了其在NandFlash应用中的重要性。文章指出,ECC功能未开启可能导致系统误报"坏块"、启动
    的头像 发表于 11-25 16:12 246次阅读
    芯片失效分析篇 —— 浅谈MICRON Memory <b class='flag-5'>ECC</b> 功能

    示波器如何校验探头补偿?

    探头补偿校验是确保测量信号保真度的核心环节,通过精确调节探头补偿电容,使校准信号呈现理想方波波形。 一、校验准备 1. 工具与连接 设备:正常工作的示波器、待校准探头及配套小一字螺丝刀 连接:探头
    的头像 发表于 11-24 11:34 59次阅读
    示波器如何<b class='flag-5'>校验</b>探头补偿?

    CS校验原理与应用

    原理: CS校验对数据块中所有字节(或字)进行累加求和,最终结果取模(通常是模 256 或 65536)后取补码(或直接截断)作为校验值。 例如:8位校验和 = (所有字节之和) mod 256
    发表于 11-19 07:51

    CRC校验的本质和物理意义

    工业控制系统中,Modbus RTU协议的CRC校验如同通信网络的\"免疫系统\",某石化厂DCS系统曾因CRC计算错误导致0.3%的数据包丢失,引发连锁控制故障。 一、CRC
    发表于 11-13 07:58

    进行数据校验时如何保证场景覆盖的全面性?

    在数据校验中保证场景覆盖的全面性,核心是 从 “数据属性 - 业务逻辑 - 异常边界 - 环境交互” 多维度拆解场景 ,通过系统化梳理、优先级排序和动态迭代,避免因场景遗漏导致校验漏洞。以下是具体
    的头像 发表于 09-25 17:42 509次阅读

    怎样选择适合的数据校验系统时间同步硬件?

    在电能质量在线监测装置的数据校验系统中, 时间同步硬件的选择需紧密匹配 “数据校验准确性” 核心需求 (如多监测点数据时间戳一致性、校验结果时间溯源性),同时兼顾工业现场(如变电站、电厂)的特殊环境
    的头像 发表于 09-19 11:46 347次阅读
    怎样选择适合的数据<b class='flag-5'>校验</b>系统时间同步硬件?

    如何确保电能质量在线监测装置的数据校验的准确性?

    确保电能质量在线监测装置(以下简称 “监测装置”)数据校验的准确性,需围绕 “ 标准溯源、流程规范、环境控制、数据审核、全周期追溯 ” 五大核心环节,建立全链条管控机制,覆盖校验前准备、校验过程执行
    的头像 发表于 09-18 11:05 387次阅读
    如何确保电能质量在线监测装置的数据<b class='flag-5'>校验</b>的准确性?

    搞定英伟达 H100 ECC 报错:从原理到维修,一步到位解烦忧

    最近,捷智算GPU维修室收到了不少H100服务器需要维修,故障问题集中为ECC报错。为了帮大家更好地认识和了解情况,下面就详细分享一下ECC报错系统化排查方法和维修流程。一、ECC报错
    的头像 发表于 08-14 18:05 1393次阅读
    搞定英伟达 H100 <b class='flag-5'>ECC</b> 报错:从原理到维修,一步到位解烦忧

    S32K311如何在Flash上测试ECC

    我有一些与目标 S32K311 上的 Flash ECC 相关的问题 - ERM 是否负责 Code Flash 和 Data Flash ECC 中断通知? - 我们如何在 Flash 上测试 ECC(代码和数据)?
    发表于 04-14 08:47

    基于Verilog语言实现CRC校验

    CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算
    的头像 发表于 03-24 10:36 2180次阅读
    基于Verilog语言实现CRC<b class='flag-5'>校验</b>

    求助,关于STM32H7系列芯片下的ECC功能的疑问求解

    《rm0399-stm32h745755-and-stm32h747757-advanced-armbased-32bit-mcus-stmicroelectronics》和《an5342-STM32H7系列内部存储器保护的纠错码(ECC)管理》均说明了无法关闭RAM区的ECC
    发表于 03-11 07:43

    L298电机驱动模块的详细讲解

    电动小车的组成 • 一个电动小车整体的运行性能,首先 取决于它的电源模块和电机驱动模块。 • 电机驱动模块主要功能:驱动小车轮子 转动,使小车行进。 • 电源模块:顾名思义,就是为整个系统 提供动力支持的部分 下载PDF文档了解L298电机驱动模块详细讲解
    发表于 02-26 15:53

    ECC204 mikroBUS™评估板用户指南

    电子发烧友网站提供《ECC204 mikroBUS™评估板用户指南.pdf》资料免费下载
    发表于 01-22 16:55 0次下载
    <b class='flag-5'>ECC</b>204 mikroBUS™评估板用户指南

    ECC608-TMNGTLS CryptoAuthentication™数据手册

    电子发烧友网站提供《ECC608-TMNGTLS CryptoAuthentication™数据手册.pdf》资料免费下载
    发表于 01-22 15:46 0次下载
    <b class='flag-5'>ECC</b>608-TMNGTLS CryptoAuthentication™数据手册

    ECC206概要数据手册

    电子发烧友网站提供《ECC206概要数据手册.pdf》资料免费下载
    发表于 01-21 14:05 0次下载
    <b class='flag-5'>ECC</b>206概要数据手册