历史上的今天
返回首页

历史上的今天

今天是:2024年11月03日(星期日)

2020年11月03日 | 神奇的ECC,可将内存的成本进一步降低

2020-11-03 来源:EEWORLD

高端消费产品、网络和工业系统等内存密集型应用程序正面临着成本压力,这促使工程师寻找在提高性能的同时降低系统成本的新方法。错误码校正(ECC)是NAND闪存中维护可靠性和延长内存寿命的关键技术。为了在市场上实现基于NAND闪存的系统有更好的效率,与集成ECC的架构相比,开发人员更加倾向于在主机MCU中实现ECC架构。

 

本文将探讨集成的和基于主机的ECC之间的差异,比较一下每种方法对系统性能、可靠性和最终成本的影响。

 

See the source image

 

ECC

 

简单说一下什么叫ECC。ECC内存即纠错内存,简单的说,其具有发现错误,纠正错误的功能,一般多应用在高档台式电脑/服务器及图形工作站上,这将使整个电脑系统在工作时更趋于安全稳定。

 

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

 

当为一个系统选择闪存时,开发人员可以在NAND和NOR技术之间进行选择。NAND单元比NOR单元小,所以NAND的每位成本比NOR内存低。这反过来导致NAND闪存比NOR闪存可用的密度更高。此外,与NAND相比,NOR单元背后的物理原理导致了更长的程序擦除(P/E)时间。由于这些优点,NAND正以越来越快的速度被采用。

 

See the source image

 

传统上NAND闪存的缺点是耐久性和读取性能较慢。随着时间的推移,NAND单元磨损或失去保持程序值的能力,将影响内存位转换状态。当一个块(Block)开始磨损时,它的数据可以转移到另一个块。随着单元的退化,为了防止数据丢失,我们便采用ECC技术。

 

ECC使用冗余来验证存储的数据是否与写入到内存的数据相匹配。此外,当检测到错误时,为了确保更高的数据完整性,ECC可以对每个块的错误数量进行修正。当超过某个错误阈值时,数据被移动到一个新块上。废弃的块被标记为“bad”,再也不会使用。因此,NAND闪存与ECC结合就可以提供高可靠性应用程序所需的完整性水平。

 

然而,由于ECC生成和检查需要时间过程,因此它会影响吞吐量和系统成本,这取决于它是如何实现的。通常,ECC可以与内存本身集成或由主机处理器在外部管理。集成方法有两种配置:

 

一种是单模方法,其中ECC是内存die的一部分,另一种是双模方法,其中控制器IC(具有串行接口和ECC)与内存die合并。在基于主机的方式下,ECC支持MCU NAND flash控制器去访问NAND。内存制造商提供的这三个选项允许OEM为他们的应用程序选择最佳的折衷方案。

 

 

一种灵活的ECC方法

 

将ECC集成到NAND闪存,具备了直接由存储器芯片本身管理ECC的优势。然而,尽管这种方法在某种程度上简化了系统设计,但代价是较高的内存成本和较低的读取性能。与主机处理器中使用的更高的内部时钟频率相比,闪存中较慢的内部时钟导致了读取性能的降低。

 

集成了ECC之后就增加了NAND闪存设备的大小和复杂性,因此内存成本会更高。考虑到一个8位ECC的硬件实现有大约50K。这表示对一个简单内存控制器的门数(gate count)(3000K)有~1.7%的影响。然而,如果集成在NAND存储器上,影响会在10-15%之间,并且会使存储器的成本增加更多。对于使用多内存设备的大内存需求系统,将ECC与NAND内存集成意味着要多次支付额外成本,而不是基于主机MCU一次性支付ECC。

 

此外,读取性能也有所下降,因为集成ECC会增加延迟,每个内存读取的时钟率低于主机控制器可以处理ECC检查的时钟率。下图显示了NOR flash、集成ECC的NAND flash以及基于主机的ECC的NAND flash的读取吞吐量比较。可以看出,集成ECC的NAND闪存的性能不到NOR闪存的一半。然而,当ECC是基于主机的时候,NAND闪存的读取性能几乎翻倍,几乎与NOR闪存持平。

 

 

当检测到错误(并纠正错误)时,基于主机的ECC提供了更好的性能。下图显示了错误对读取第一数据时间(RFDT)的影响。通过集成ECC, RFDT从45微秒增加到70微秒。对于基于主机的ECC, RFDT要好得多,仅从35微秒增加到45微秒。

 

 


推荐阅读

史海拾趣

Galil Motion Control Inc公司的发展小趣事

Galil Motion Control Inc. 的五个发展故事

故事一:技术创新引领者

Galil Motion Control Inc.,成立于1983年,位于美国加州硅谷中心,是电子行业中运动控制技术的先驱。公司成立初期,便致力于研发基于微处理器的精密运动控制器。据《DESIGNNEWS》杂志报道,Galil是全球第一家推出数字运动控制器的公司,这一技术创新在业界引起了巨大反响。此后,Galil不断推陈出新,其产品已发展到第五代,采用RISC结构的DSP技术,结合最新控制理论及网络技术,使得伺服更新速率和指令执行周期显著提升,引领了运动控制领域的技术潮流。

故事二:全球市场的扩展

随着技术的不断成熟,Galil的产品逐渐在全球市场上占据了一席之地。目前,全球有超过500,000台Galil的运动控制器在稳定运行,应用领域覆盖了医疗、半导体、纺织、物料搬运、食品加工、机床、产业机械、航天、测试测量等多个行业。这一广泛的应用不仅证明了Galil产品的可靠性和稳定性,也为其在全球市场的扩展奠定了坚实的基础。

故事三:分布式运动控制器的诞生

在进入21世纪之初,Galil公司又开发出了DMC3425分布式运动控制器。这款控制器不仅提供了API函数支持高级应用开发,还引入了极其简单易学的2字符命令集,使得应用编程变得如同书写英文字母般简单。这一创新不仅降低了用户的学习成本,也极大地提高了系统的开发效率,进一步巩固了Galil在运动控制领域的领先地位。

故事四:与光纤激光切割技术的结合

近年来,随着激光切割技术的快速发展,Galil公司也紧跟这一趋势,将运动控制技术与光纤激光切割技术相结合。通过设计以Galil控制卡为核心的四轴联动伺服控制系统,实现了激光切割设备的高精度控制。这一结合不仅提升了激光切割设备的性能,也拓展了Galil运动控制技术的应用领域,为工业制造带来了更多的可能性。

故事五:全球销售与服务网络的建立

为了更好地服务全球客户,Galil公司在全球范围内建立了完善的销售和服务网络。目前,Galil拥有众多销售代理商,遍布世界各地。这些代理商不仅负责产品的销售工作,还为客户提供专业的技术支持和售后服务。通过这一网络,Galil能够迅速响应客户的需求,确保每位客户都能获得最佳的产品体验和服务保障。这种以客户为中心的服务理念,也为Galil赢得了良好的市场口碑和广泛的客户认可。

E-San Electronic Co Ltd公司的发展小趣事

随着全球环保意识的提高和可持续发展的呼声日益高涨,E-San Electronic Co Ltd积极响应这一趋势,将环保和可持续发展理念融入企业的日常运营中。公司采用环保材料和节能技术生产电子产品,减少了对环境的污染和资源的浪费。同时,公司还积极参与各种环保公益活动和社会责任项目,为社会做出了积极的贡献。这些举措不仅提升了企业的社会形象和声誉,也为企业赢得了更多消费者的信任和支持。

意瑞(COSEMITECH)公司的发展小趣事

随着业务的不断发展和市场的不断扩大,意瑞半导体也积极寻求外部投资和战略合作。公司先后获得了得彼投资、架桥投资、深创投等机构超2亿元的股权投资,为公司的持续发展提供了有力的资金保障。此外,意瑞半导体还积极参与各种行业活动和展览,与业界同仁进行深入交流和合作,共同推动半导体行业的发展。

以上五个故事素材可以根据需要进一步扩展和细化,以形成完整的、具有吸引力的电子行业意瑞半导体公司的发展故事。

DMC Tools公司的发展小趣事

DMC Tools公司自创立之初,就注重技术创新。早期,公司研发团队针对电子行业对高精度工具的需求,成功开发出一系列具有自主知识产权的精密切割工具。这些工具不仅提高了生产效率,还降低了生产成本,迅速在市场上获得了认可。随着技术的不断进步,DMC Tools公司不断推出新产品,满足电子行业日益增长的需求,逐步在市场上树立了自己的品牌。

GE公司的发展小趣事

DMC Tools公司高度重视人才培养和引进。公司定期举办各种培训活动,提高员工的技能水平和综合素质。同时,公司还积极引进高端人才,为公司的技术创新和产品研发提供有力支持。这些人才为公司的发展注入了新的活力,推动了公司的持续进步。

乐鑫(espressif)公司的发展小趣事

乐鑫科技深知,物联网的发展离不开一个完善的生态系统。因此,公司积极构建了一个集硬件、软件、开源社区于一体的物联网生态系统。通过提供丰富的软件资源和技术支持,乐鑫科技为购买其硬件的客户实现了更优的使用体验,推动了物联网应用的普及和落地。

问答坊 | AI 解惑

烧写eboot.nb0后系统仍从之前的xip.nb0启动

最近发现一个很奇怪的问题:在使用DNW烧写系统时,先将xip.nb0烧写进去,然后烧写eboot.nb0.但此时系统会自动重启并且加载的还是之前的xip.nb0 初步分析发现eboot下的BootloaderMain();函数根本就没被执行 如下是异常时和成功时的串口信息: 1. ...…

查看全部问答>

关于EVC程序下载到NK内核 下载目标板 无法运行

Windows CE.NET的应用为MyApp.exe 1.将MyApp.exe复制到E:\\PROJECTS\\MyWinCE\\RelDir\\CEPC_X86Release目录下; 2.创建快捷方式文件MyApp.lnk(文本文件),文件内容如下: 10#\\Windows\\MyApp.exe MyApp.lnk文件也放入E:\\PROJECTS\\MyWinC ...…

查看全部问答>

在WINCE设备上,用VS2003开发的程序连接数据库出错,请教高手

在WINCE设备上,用VS2003开发的程序连接WINCE数据库出错,请教高手 SqlCeConnection conn = new SqlCeConnection(\"Data Source = Test.sdf\"); conn.open(); open这里提示出错,但在WINCE设备上只能看到错误号为:-2147467259,就是不知道什么错误. ...…

查看全部问答>

LINK : fatal error LNK1104: cannot open file 'mfcs42d.lib'?????求助!!!

刚装上EVC4.0+SP4,从PB5导出并安装了自己的SDK,然后在EVC建了一个简单的MFC Application,选择SDK后编译后就出现: LINK : fatal error LNK1104: cannot open file \'mfcs42d.lib\' 我查看了我安装的SDK目录下有这个文件,而且在EVC的Include ...…

查看全部问答>

win 2000 不能识别我们的 USB 设备

我们在做一个USB设备的开发,硬件已经成形了。 但是,问题出在: 将该设备插入到XP系统下,系统的资源管理器里边会出现USB的2个未知设备,(我们这一个设备里,有2个Interface) 看每个的属性,PID值也和我们硬件里边写 的一样,然后安装驱动 ...…

查看全部问答>

用IAR for MSP430的JTAG口仿真,出现了问题,求高手指点

我用的是利达尔的MSP430F2274开发板,它上面直接就有JTAG口仿真,然后我就买了一块并口卡插上去,电源灯会亮,但是一直都不能仿真调试,我想是设置的问题,因为并口卡我用它来下载到ARM7上是没问题的,所以在这里求高手指点。 这个就是错误提示。…

查看全部问答>

出YC2440裸板

收了tq2440,这块yc2440的板子就用不到了,这块板子收来就上电看了一下,除POWER灯外D1-D4全亮,片刻后D3熄灭,D4常亮,D1和D2按一定的规律闪烁.此时按K1后D1-D4全灭,再按一下恢复原来来的状态此板子需要折腾一下,主要就是串口没有,需要转接板。有能 ...…

查看全部问答>

不是精品不上传(单片机C语言程序设计实验指导书)

replyreload += \',\' + 1311171;(单片机C语言程序设计实验指导书)Timson,如果您要查看本帖隐藏内容请回复…

查看全部问答>

求指导

本人在做一个基于单片机的开关电源的毕业设计,思路是这样的,键盘预置电压,控制单片机进行脉宽调制,使输出电压在大范围内可调,输入220V,输出为3~30V线性可调,不知电路方面该如何设计,请论坛的各位指导指导,由衷感谢!!!…

查看全部问答>

STM32的ADC1和ADC2的采集问题

试了一下STM32的ADC1和ADC2,调试时出现的问题让我不解: (1)只使用STM32的ADC1采集信号,PA.0为其模拟输入通道; 将ADC1配置成独立模式、单通道单次转换、软件触发, 采集到的数据是正确的; (2)只使用ADC2采集信号,与(1)中ADC1的设置完全相 ...…

查看全部问答>