数据内存不能为read修复

内存不能为read修复  时间:2021-01-19  阅读:()
VxWorks俱乐部https://www.
vxworks.
club内存的错误检查与纠正图(1)图(1)是一个带有ECC的RDIMM,图中我们已经将各个组件和关键的金手指信号区域标示出来.
首先,我们来认识一下这几个关键词:Device:内存颗粒,根据其存放内容不同,又分为数据颗粒和ECC颗粒.
通常有X4,X8和X16,代表每个颗粒对外的数据线路是4lane,8lane和16lane.
Channel:一个Channel由一个或者多个Rank组成,其宽度由控制器决定.
当前主流的个人电脑和服务器中,一个Channel的宽度为64bit,可根据内存控制器是否支持ECC而扩展额外的8bit.
也就是说如果不支持ECC的Channel,其宽度为64bit,而支持ECC的Channel,其宽度为72bit.
市面上两种内存条都有销售.
VxWorks俱乐部https://www.
vxworks.
clubRank:一个Channel里面,同一个CS(ChipSelect)信号选中的所有Device就是一个Rank.
同一个Rank中所有的Device共用命令,地址和控制信号.
拿读操作举例,内存控制器发起的一个读操作,其实将作用于该Channel的某个Rank中所有的Device.
所有Device的数据线共同输出达到内存控制器所需的宽度.
例如,采用X4的颗粒,组成不带ECC功能的一个Rank则需要64/4=16个X4的Device.
大家可以计算一下如果采用X8或者X16宽度的颗粒,需要多少个呢注:本文我们将主要以X4的Device来讨论注:X16的颗粒一般不被用来组成带ECC的RankCacheline:Cacheline通常是指是处理器中CacheUnit(缓存模块)缓存一笔数据的标准大小.
根据处理器的不同,Cacheline的大小是不一样的.
当前主流的个人电脑和服务器中,Cacheline的大小为64Byte.
为了设计方便,处理器内部搬运可被缓存的数据也采用同样的大小64B.
为了满足该需求,一个Rank被设计成了64bit的数据位宽,而JEDEC(DDR标准组织)设计了burst传输.
一个Burst的长度可以是8,从而一次读操作,可以让颗粒一次吐出8笔数据.
从而达到64bitX8=64B的大小.
具体参考图(2).
图(2)CE(CorrectableError):可纠正错误是指硬件(芯片)可以直接纠正的错误.
由于内存控制器设计不一样,对于可纠正错误的能力可能存在不同.
例如,主流x86服务器的内存控制器(支持带ECC的内存条),在一次读操作中,一个X4宽度的Device内的任意错误都是可纠正的,包括ECC的Device.
如果Rank是X8宽度的Device组成,其纠正能力还是与X4的Device宽度及位置保持一VxWorks俱乐部https://www.
vxworks.
club致.
在X8的一个Device中,只有DQ0-3,或者DQ4-7可以被纠正.
如果是DQ2-5,虽然是X4宽度但位置与X4时不对应,也无法纠正.
注:DQ0即D0,或者D0_0,DQ63则是D63,或者D15_3UCE(UncorrectableError):不可纠正错误是指硬件(芯片)无法直接纠正的错误.
例如,在一次读操作中,错误数据位分布在不同X4的Device范围,以现有内存控制设计来看,属于不可纠正错误.
下面我们简单介绍一下内存控制器是如何侦错和纠错的.
由于ECC具体算法属于各家的IP,这里介绍的方法只是帮助大家理解该功能.
首先,内存控制器能够纠错,就必须先能发现错误.
如果每次消费的数据大小是64B,在不增加额外信息的情况下,我们是无法知道该数据是否有改变的,因为64B的数据可以是任何01的组合,即任意数据都是合法的.
另一方面,额外的信息需要额外的存储,从成本考虑,这额外信息应该越小越好.
JEDEC组织提出增加额外8x8=64bit的数据来帮助一个64B的数据完成ECC.
从物理角度看,一个X4Device组成的Rank将会增加两个Device用于ECC.
一种可行的做法是,其中一个Device负责存放CRC(CyclicRedundancyCheck)校验信息用于侦错,另一个Device负责存放奇偶校验信息(Parity),配合纠正错误.
Parity:Parity基本功能是发现保护数据中是否有bit翻转.
保护方法是统计保护数据中1的个数,如果是偶校验,当保护数据中1的个数是偶数时,Parity为0,否则为1,所以Parity只需要一个bit就能发现保护数据中是否有一个bit的数据翻转(0到1或者1到0).
当然对于奇数个bit都有一样的检测效果.
但当偶数bit翻转的时候,Parity将无法知道.
在了解了Parity基本功能后,我们来看看内存控制器是如何计算Parity并存放的.
如图(3)所示.
VxWorks俱乐部https://www.
vxworks.
club图(3)Burst传输中每一笔64bit数据,4bitParity和4bitCRC的具体对应关系如下:P0=D0_0+D1_0+D2_0+…D15_0+C0P1=D0_1+D1_1+D2_1+…D15_1+C1P2=D0_2+D1_2+D2_2+…D15_2+C2P3=D0_3+D1_3+D2_3+…D15_3+C3注:D15_3为Device15的DQ3信号,从Rank角度看,为图中的D63假设Device2在Burst的第三笔数据中有bit翻转,则无论是D2_0,D2_1,D2_2,D2_3或者都错了,请参考图(4),我们都可以通过Paritybits反算回来,前提是burst的第三笔数据中其他Device没有出现错误.
具体计算如下:D2_0=P0(-)(D0_0+D1_0+D3_0…D15_0+C0)D2_1=P1(-)(D0_1+D1_1+D3_1…D15_1+C1)D2_2=P2(-)(D0_2+D1_2+D3_2…D15_2+C2)D2_3=P3(-)(D0_3+D1_3+D3_3…D15_3+C3)VxWorks俱乐部https://www.
vxworks.
club图(4)CRC:我们怎样知道读取的Cacheline数据是正确的还是错误的这里将会用到CRC来进行校验.
一种比较简单的校验方式就是除法.
我们设计一个除数,让被保护数据(被除数)去除以这个除数,然后会得到商和余数.
通常余数比设计的除数要小.
在存储一个Cacheline大小数据到内存条上的时候,内存控制器会计算CRC的值,并存放到CRC的Device中去.
读取的时候再计算一遍,然后和内存条读回来的CRC的值进行比较.
如果一致,则认为数据没有发生变化.
否则,认为数据出错.
从上述理论可以推出,CRC校验位越多,则侦错能力越强.
CRC设计不一样,侦错不同数据翻转的能力不同.
可能存在数据错了,但侦错不了的情况.
既然有漏测的情况,为什么我们还会继续使用这就和错误类型的概率有关了.
通常情况下,一个bit翻转的可能性比较高,多bit同时翻转的可能性比较低.
多bit翻转在同一个device里的几率比较高,多device同时翻转的概率比较低.
举个例子,当一个Cacheline的数据从内存条里读出来后,通过CRC校验,我们会发现数据有可能已经发生改变.
这个时候,我们先假设出现了CE(CorrectableError)问题.
则通过Parity信息反算Device数据,需要一个Device一个Device的假设,然后重新计算CRC和之前存储的CRC进行比较.
所以最多的情况可能要假设18次.
如果全部弄完仍然CRC对不上,则属于UCE(UncorrectableError)问题啦.
当然,大家会发现,ECC校验过程会影响内存读写延时.

Virtono:€23.7/年,KVM-2GB/25GB/2TB/洛杉矶&达拉斯&纽约&罗马尼亚等

Virtono最近推出了夏季促销活动,为月付、季付、半年付等提供9折优惠码,年付已直接5折,而且下单后在LET回复订单号还能获得双倍内存,不限制付款周期。这是一家成立于2014年的国外VPS主机商,提供VPS和服务器租用等产品,商家支持PayPal、信用卡、支付宝等国内外付款方式,可选数据中心包括罗马尼亚、美国洛杉矶、达拉斯、迈阿密、英国和德国等。下面列出几款VPS主机配置信息,请留意,下列配置中...

wordpress投资主题模版 白银黄金贵金属金融投资网站主题

wordpress投资主题模版是一套适合白银、黄金、贵金属投资网站主题模板,绿色大气金融投资类网站主题,专业高级自适应多设备企业CMS建站主题 完善的外贸企业建站功能模块 + 高效通用的后台自定义设置,简洁大气的网站风格设计 + 更利于SEO搜索优化和站点收录排名!点击进入:wordpress投资主题模版安装环境:运行环境:PHP 7.0+, MYSQL 5.6 ( 最低主机需求 )最新兼容:完美...

舍利云:海外云服务器,6核16G超大带宽vps;支持全球范围,原价516,折后价200元/月!

舍利云怎么样?舍利云推出了6核16G超大带宽316G高性能SSD和CPU,支持全球范围,原价516,折后价200元一月。原价80美元,现价30美元,支持地区:日本,新加坡,荷兰,法国,英国,澳大利亚,加拿大,韩国,美国纽约,美国硅谷,美国洛杉矶,美国亚特兰大,美国迈阿密州,美国西雅图,美国芝加哥,美国达拉斯。舍利云是vps云服务器的销售商家,其产品主要的特色是适合seo和建站,性价比方面非常不错,...

内存不能为read修复为你推荐
.net虚拟主机虚拟主机如何设置net版本?免费虚拟空间谁可以推荐一个比较很不错的免费虚拟空间免费虚拟主机申请找免费好用的虚拟主机申请地址,代理主机如何将我工作的电脑设置为代理主机 让我回家以后可以用家里的电脑连接店里的主机访问网络ip代理地址ip代理有什么用?虚拟空间免费试用那位给我介绍个可以试用三天的虚拟空间。香港虚拟主机推荐一下香港的虚拟主机公司!韩国虚拟主机韩国虚拟主机好还是香港的好虚拟主机评测网哪里有可靠的免费虚拟主机1g虚拟主机1G虚拟空间大约多少钱?
免费com域名申请 lunarpages cloudstack 新站长网 卡巴斯基官方免费版 架设服务器 国外代理服务器软件 idc查询 双线机房 香港亚马逊 台湾google 美国盐湖城 php服务器 tracker服务器 accountsuspended 香港打折信息 cdn免备案空间 热云 bwg 极域网 更多