一. 什么是ECC内存?
ECC是英文“Error Checking and Correcting”的缩写,翻译成中文名称是“错误检查和纠正”。ECC是一种新的内存技术, 它能够实现“错误检查和纠正”的技术,ECC内存就是应用了这种技术的内存,一般多应用在服务器及图形工作站上,这将使整个电脑系统在工作时更趋于安全稳定。
二. ECC内存与普通内存有什么不同?
普通内存大家都知道,DDR400的内存现在遍地都 是,很多高档内存甚至可以运行DDR600/DDR2 800,而有些内存也可以达到2-2-2-5这样低的延迟,因为大家接触的比较多,这里就暂不作介绍了。 反观ECC和REG ECC内存不追求高频率和低延迟,INTLE平台内存运行频率一般在DDR333或者是DDR2 400,,AMD平台内存运行频率在DDR400,延时也多在4-4-4-8左右,从性能上看丝毫不占优势,但是稳定才是其立足的根本。
这里我们常说的ECC内存就是单指的 Unbuffer ECC,其价格和普通内存相比只贵10%-20%,从外观来说,Unbuffer ECC内存因为要满足效验纠错的需要,加入了一颗ECC效验颗粒,由于采用的是TOSP封装,使得内存看上去每面有9颗内存颗粒。
而REG ECC的价格就贵了许多,内存上面的芯片一般比普通主板多出2-3个,主要是PLL (Phase Locked Loop)和Register IC,它们的具体用处如下:PLL(Phase Locked Loop) 琐相环集成电路芯片,内存条底部较小IC,比Register IC小,一般只有一个,起到调整时钟信号,保证内存条之间的信号同步的作用。
三. ECC内存的工作原理.
要了解ECC内存的工作原理,就不能不提到Parity(奇偶校验)。在ECC技术出现之前,内存中应用最多的是另外一种技术,就是Parity(奇偶校验)。我们知道,在数字电路中,最小的数据单位就是叫“比特(bit)”,也叫数据“位”,“比特”也是内存中的最小单位,它是通过“1”和“0”来表示数据高、低 电平信号的。在数字电路中8个连续的比特是一个字节(byte),在内存中不带“奇偶校验”的内存中的每个字节只有8位,若它的某一位存储出了错误,就 会使其中存储的相应数据发生改变而导致应用程序发生错误。而带有“奇偶校验”的内存在每一字节(8位)外又额外增加了一位用来进行错误检测。比如一个字节 中存储了某一数值(1、0、1、0、1、0、1、1),把这每一位相加起来(1+0+1+0+1+0+1+1=5)。若其结果是奇数,对于偶校验,校验位 就定义为1,反之则为0;对于奇校验,则相反。当CPU返回读取存储的数据时,它会再次相加前8位中存储的数据,计算结果是否与校验位相一致。当CPU发现二者不同时就作 出视图纠正这些错误,但Parity有个缺点,当内存查到某个数据位有错误时,却并不一定能确定在哪一个位,也就不一定能修正错误,所以带有奇偶校验的内 存的主要功能仅仅是“发现错误”,并能纠正部分简单的错误。
通过上面的分析我们知道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内存条和普通内存条的最明显区别在于ECC内存条单面有9颗芯片,而普通内存条通常只有8颗芯片。而RECC内存条由于额外的寄存器芯片,比ECC内存条多一颗芯片,这也是其性能提升的一个物理表现。 ...
HP 服务器资料:ECC 内存 ECC(Error Checking and Correcting)是一种能够实现“错误检查和纠正”的技术,它被应用于服务器和图形工作站,以使整个电脑系统在工作时更趋于安全稳定。在了解 ECC 技术之前,需要了解...
SIMM ECC 72线内存条引脚定义 引脚定义概述: SIMM(Single Inline Memory Module)单列直插内存模块是一种早期的内存条设计,而ECC(Error-Correcting Code)纠错码用于提供内存数据的额外保护,通过检测并纠正...
- **利用ECC内存技术**:SafeMem 利用 ECC 内存的错误检测特性来减少误报率,尤其是在内存泄漏检测方面。由于 ECC 内存能够检测到单比特错误,因此可以用来监测内存块的访问情况,从而判断是否发生了泄漏。 - **...
ECC 是“Error Checking and Correcting”的简写,...ECC是一种能够实现“错误检查和纠正”的技术,ECC内存就是应用了这种技术的内存,一般多应用在服务器及图形工作站上,这将使整个电脑系统在工作时更趋于安全稳定。
ECC(Error Correction Code,错误纠正码)是一种用于检测和纠正数据传输或存储过程中可能出现错误的技术。在IT领域,特别是嵌入式系统和存储设备中,ECC算法扮演着至关重要的角色,它能够提高数据的可靠性,确保...
ECC内存能够在数据传输过程中检测并纠正单比特错误,确保系统数据的完整性,尤其对服务器和高性能计算领域非常重要。 描述中的“通用双65开机ECC”可能是指为了解决使用65nm双核CPU的计算机在启动时遇到的问题,如...
5. **嵌入式系统优化**:在嵌入式环境中,硬件资源有限,所以C语言实现ECC算法时需要考虑代码优化,例如减少内存占用、提高运算速度等。这可能涉及硬件加速器的使用,或者针对特定处理器架构的优化。 6. **安全性...
**错误校验编码(Error Correction Code,ECC)在数字电子系统中扮演着至关重要的角色,尤其是在内存和数据传输领域。Verilog是一种硬件描述语言,用于设计和验证数字系统的逻辑功能。本篇将深入探讨ECC在Verilog中...
10. 实际应用:16位ECC常用于对内存接口、串行通信链路和数据存储系统的错误管理,以确保数据的完整性,尤其是在噪声环境或可靠性要求高的场合。 通过理解和应用这些概念,您可以利用提供的Verilog代码实现一个16位...
#### 三、ECC与内存错误类型 在讨论ECC之前,我们需要了解内存错误的两种基本类型: 1. **硬件错误(硬错误)**:这类错误是由于硬件本身的损坏或缺陷造成的,一旦发生,错误数据通常是固定的,无法通过软件手段...
本文档提供了 SAP ECC6.0 的安装操作手册,涵盖了安装前的软硬件要求、虚拟内存配置、虚拟网卡的安装、Java 虚拟机的安装及环境变量的配置、ORACLE 安装、ORACLE 补丁包的安装、SAP 安装、SAP 破解、SAP 语言包的...
在实际开发中,除了算法实现,还需要考虑性能优化、内存管理、错误处理等方面,确保程序的稳定性和安全性。同时,遵循良好的编程规范和代码组织结构,以便于代码的维护和扩展。 ECC算法的高效性使其在物联网、移动...
根据给定文件的信息来看,这份文档主要介绍了FoxICE For ARM仿真器的相关技术和功能特性,并未直接涉及 ECC 算法的具体内容。然而,基于题目要求,我们应当关注 ECC(Error Correcting Code)算法这一主题,并从给定...
- **ECC类型比较**:虽然这个小程序可能主要介绍一种ECC实现,但也可以扩展研究其他类型的ECC,对比它们在性能和复杂度上的差异。 在实际应用中,ECC不仅可以应用于数据通信,还可以在计算机硬件中提供保护,例如在...
- **内存限制**:STM32的内存资源有限,因此需要优化算法以减少内存占用。 - **计算性能**:ECC运算相对复杂,可能需要考虑如何利用STM32的硬件加速器来提升运算速度。 - **功耗管理**:在低功耗设计中,需要控制...
《MM入门ECC5.pdf》是一本针对计算机内存管理(Memory Management)的入门教程,尤其聚焦于内存管理中的“ECC”(Error-Correcting Code)技术。在现代计算机系统中,内存是至关重要的组成部分,它负责存储程序的...
S4 HANA只能在Hana数据库上运行,不像ECC可以在Oracle,IBM DB2等上运行.S4H设计的背后是HANA的内存功能和之下的设计原则 内存数据库意味着从内存中读取数据,即数据总是驻留在主内存RAM中(尽管写入发生在硬盘中)...
5. **软件调试技巧**:利用断点、变量观察、内存查看等调试技巧,快速定位问题。 通过这样的调试过程,我们可以理解STM32与NAND Flash之间的数据传输流程,以及ECC在其中起到的关键作用。此外,对于ECC算法的理解,...
ECC能够提高数据的可靠性和完整性,在诸如内存、硬盘、闪存等存储介质中都有应用。 #### 512位ECC算法 512位ECC算法主要应用于512字节的数据块,其目的是为了确保这些数据块在读写过程中能够有效地检测并修正潜在的...