公开/公告号CN103594120A
专利类型发明专利
公开/公告日2014-02-19
原文格式PDF
申请/专利权人 西安华芯半导体有限公司;
申请/专利号CN201310537688.2
发明设计人 亚历山大;
申请日2013-10-31
分类号G11C29/42;
代理机构西安智邦专利商标代理有限公司;
代理人杨引雪
地址 710055 陕西省西安市高新6路38号腾飞创新中心A座4层
入库时间 2024-02-19 22:14:31
法律状态公告日
法律状态信息
法律状态
2018-08-21
授权
授权
2018-07-24
著录事项变更 IPC(主分类):G11C29/42 变更前: 变更后: 申请日:20131031
著录事项变更
2014-03-19
实质审查的生效 IPC(主分类):G11C29/42 申请日:20131031
实质审查的生效
2014-02-19
公开
公开
技术领域
本发明涉及一种存储器纠错方法,具体涉及一种以读代写的存储器纠错 方法。
背景技术
ECC(ErrorCorrectionCode纠错码)被用来检测和纠正出错的数据。资料显 示有很多种算法可支持ECC,例如最常用的汉明码(HammingCode),8位(bit) 数据需要4位监督位(paritybit),64位数据需要7位监督位。可通过数据长度 以及所需要检测和纠正的位数选取合适的算法。
对于不同的DDR结构(DDR1/2/3),典型的数据读取(streamin-and-out) 预取数据长度有32位、64位以及128位。一种合理的折中解决办法可以对 64位数据使用7位或者8位的监督位(根据不同的ECC算法),如图1和图 2所示。
但对于DRAM来说要实现检测和纠正的功能并不是那么简单,因为DM 数据屏蔽(Data Mask)的存在。也就是说,在把数据从外部写入存储单元的 时候,某一个或者多个字节(byte)可能会被屏蔽掉,使之不会改写存储单元 里已经存储的数据。这就使得ECC的编码过程不能顺利进行去产生监督位, 如图3所示。为了解决这个问题,最简单的方法是把64位数据分成8组,每 组8位数据(一个字节),刚好是DM的屏蔽长度,这样就不会受到DM的影 响。但是由于每8位数据需要4位的监督位,那就会导致整个存储阵列的面 积需要增加50%,使得DRAM的成本极大增加,所以需要解决DM带来的问 题。
发明内容
本发明提供一种以读代写的存储器纠错方法,主要解决了现有ECC编码 过程中由于数据屏蔽的存在,导致不能顺利进行编码产生监督位或产生监督 位需增加存储阵列面积的问题。
本发明的技术解决方案如下:
该以读代写的存储器纠错方法,包括以下步骤:
1]读入外部数据,并判断是否存在数据屏蔽,若存在数据屏蔽则进入步骤 2处理,若不存在数据屏蔽则进入步骤3处理:
2]由于存在数据屏蔽,则将未被屏蔽的外部数据写入存储阵列,同时将与 被屏蔽的数据相应的数据从存储阵列中读出,然后再将写入的外部数据与读 出的数据合并,ECC编码电路用此合并后的数据通过设定的规则产生相应的 监督位,新的数据和监督位被写入存储整列并完全代替之前存储的信息;
3]由于并不存在数据屏蔽,所以外部数据直接写入,ECC编码电路用此 外部数据通过设定的规则产生相应的监督位,新的数据和监督位被写入存储 整列并完全代替之前存储的信息。
也可以不对外部数据进行是否存在数据屏蔽的判断,直接进行下述步骤:
读入存在数据屏蔽的外部数据,将未被屏蔽的外部数据写入存储阵列, 同时将与被屏蔽的数据相应的数据从存储阵列中读出,然后再将写入的外部 数据与读出的数据合并,ECC编码电路用此合并后的数据通过设定的规则产 生相应的监督位,新的数据和监督位被写入存储整列并完全代替之前存储的 信息。
本发明的优点在于:
该以读代写的存储器纠错方法解决了数据屏蔽对ECC的影响,可以复用 存储器已有的读写电路,只需加入DM对读的控制。
附图说明
图1为现有ECC外部数据写入流程图;
图2为现有ECC外部数据读出流程图;
图3为现有带数据屏蔽的ECC外部数据写入流程图;
图4为本发明原理图;
图5为本发明参考图3的原理图。
具体实施方式
结合图1,现有ECC编码可按照下面的步骤进行:
首先,64位从外部来的数据被直接写入(图1的A);
其次,ECC编码(encoding)电路用此64位外部数据通过一定的规则产 生7位或者8位的监督位(图1的B);
再次,新的64位数据和7/8位监督位被写入存储阵列并完全代替之前存 储的信息(图1的C)。
结合图2,现有ECC的解码和纠正按照下面的步骤进行:
首先,64位数据和7/8位监督位从存储阵列读出(图2的C)。
其次,监督位将通过一定的规则去解码(decoding)判断数据是否有错, 如果有错是哪位有错并去纠正(correction)错误的数据(图2的B)。
再次,解码后的数据被读出(图2的A)。
结合图3,现有带DM的ECC编码按照下面的步骤进行,但目前在有DM 的情况下,ECC的编码不能正常工作:
首先,外部64位数据中有56位需要从外面而来(图3的A),其余8位 被DM,不写入存储阵列。
其次,监督位仍由外部的64位数据产生(图3的B)。
再次,在存储阵列中,64位中的56位被写入的外部数据代替,64位中 其余的8位仍保留原有信息。此时的监督位相对这64位数据来说是一个完全 错误的监督位(图3的C)。
以下结合图4及实施例对本发明进行详述:
当有DM发生时,可把外部数据分为两种:一种是没被屏蔽的,如图4 中的A;一种是被屏蔽的,如图4中的B。对于A来说,可以直接用来进行 ECC的编码,并被写入存储阵列中,如图4中的C。对于被屏蔽的部分,不 进行写操作,而是进行读操作,把相应的数据从存储阵列中读出来,如图4 中的D,把数据A和数据D一起进行ECC编码操作,编码结果E送入存储 阵列。这样可保证在同一个字线下存储的数据和ECC编码是一一对应的,解 决DM带来的问题。
如图5所示:
如果仍用图3的例子,解决方法可以用图5表示。其中56位外部数据A 没有被屏蔽,被写入存储阵列C;8位外部数据B被屏蔽,从存储阵列读出相 应的8位数据D;ECC由数据A和数据D编码产生E并写入存储阵列。
机译: 存储器单元,即动态RAM,一种操作方法,涉及在提供用于将读信息从存储器区域传送到输出缓冲器的读指令之后的时间间隔,在存储器区域和输出缓冲器之间产生读连接。
机译: 纠错电路和具有具有存储器控制器的纠错电路和存储器系统的纠错电路和存储器控制器
机译: 检查读/写设备和至少一个移动数据存储器之间的数据传输质量的方法以及使用该方法的读/写设备和移动数据存储器