《ECC存储器存储不同长度数据的方法.pdf》由会员分享,可在线阅读,更多相关《ECC存储器存储不同长度数据的方法.pdf(5页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103559914 A (43)申请公布日 2014.02.05 CN 103559914 A (21)申请号 201310536363.2 (22)申请日 2013.10.31 G11C 29/42(2006.01) (71)申请人 西安华芯半导体有限公司 地址 710055 陕西省西安市高新6路38号腾 飞创新中心 A 座 4 层 (72)发明人 亚历山大 付妮 (74)专利代理机构 西安智邦专利商标代理有限 公司 61211 代理人 杨引雪 (54) 发明名称 ECC 存储器存储不同长度数据的方法 (57) 摘要 本发明提供一种 ECC 存储器存储不同长度数 据。
2、的方法, 该方法虽然未对 ECC 存储器存储阵列 物理上进行修改, 但仍然能灵活选择存储不同长 度的数据并进行 ECC 操作。存储阵列在存储器中 占据了大部分的面积, 该 ECC 存储器存储不同长 度数据的方法在不改变存储阵列的情况下, 可灵 活地利用 ECC 的编解码规则满足不同长度的数据 进行 ECC 操作的需求。 (51)Int.Cl. 权利要求书 1 页 说明书 2 页 附图 1 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书1页 说明书2页 附图1页 (10)申请公布号 CN 103559914 A CN 103559914 A 1/1 页 2 1. 一种。
3、 ECC 存储器存储不同长度数据的方法, 其特征在于, 包括以下步骤 : 1 判断存入的数据长度是否与 ECC 存储器存储阵列数据长度相同为 M 位或为其 1/2n 倍, n 为自然数, 若长度相同, 则进入步骤 2 处理, 若为 1/2n倍, 则进入步骤 3 处理, 若小于 M 位但不等于 1/2n倍, 则进入步骤 4 处理 ; 2 此时的 ECC 存储器与一般的 ECC 存储器相同, 用 M 位存储数据产生长度为 k 的监督 位并同时存入存储阵列 ; 3将1/2n倍长度的数据存入存储阵列中的一部分, 原长度为k的监督位的部分存储位 置用来存储此 1/2n倍数据的监督位, 原监督位的剩余位为。
4、该组数据的位置判断位, 监督位 用于进行 ECC 操作验证其存储数据是否正确, 位置判断位用于判断此监督位对应的数据位 在存储阵列中的存储位置 ; 此1/2n倍数据以外的存储阵列可以用于存储没有相应的监督位 的数据 ; 4 将小于 M 位的数据存入存储阵列中的一部分, 原长度为 k 的监督位的部分存储位置 用来存储此数据的监督位, 原监督位的剩余位为该组数据的位置判断位, 监督位用于进行 ECC 操作验证其存储数据是否正确, 位置判断位用于判断此监督位对应的数据位在存储阵 列中的存储位置 ; 如果数据长度小于 M/2 位, 此数据以外的存储阵列仍然可以继续存储相 同长度的数据位, 只是这些数据。
5、位没有相应的监督位 ; 如果数据长度大于 M/2 位, 将不能再 进行存储。 2.根据权利要求1所述的ECC存储器存储不同长度数据的方法, 其特征在于 : 所述ECC 存储器存储陈列数据长度为 8、 16、 32、 64、 128、 256 位, 监督位为 4、 5、 6、 7、 8、 9、 10 位。 权 利 要 求 书 CN 103559914 A 2 1/2 页 3 ECC 存储器存储不同长度数据的方法 技术领域 0001 本发明涉及一种不同数据长度的存储方法, 主要用于固定长度的 ECC 存储器存储 不同长度的数据。 背景技术 0002 对于存储器来说, ECC常采用线性码 (line。
6、ar codes) , 而出于对出错率和修复成本 的折中考虑, 最常见的是线性码中的 SEC/DED(single error correcting/double error detecting 一位纠正两位检测) 码。以 64 位数据长度为例, 可采用 (72, 64) 的 SEC/DED 码, 其中64表示数据位长度, 72表示数据位长度和监督位长度之和, 也就是说监督位长度是8, 可用图 1 表示。其中, 存储阵列被分为两部分, 存储数据位的存储阵列 A 和存储监督位的存 储阵列 B ; 如果以存储量来分的话, 可分为 9 个部分, 存储数据位的存储阵列 A7 A0 和存 储监督位的存储。
7、阵列 B, 每部分能存储 8 位数据。 0003 当系统工作在不同模式下时, 可能需要不同的数据位长度, 例如 32 位, 此时就不 能用上面所提到的 (72, 64) 码, 而存储器的存储阵列一但固定就不能在物理上进行修改, 所 以在以上存储阵列的基础上可以做改进以支持不同的数据位长度的要求。 发明内容 0004 本发明提供一种 ECC 存储器存储不同长度数据的方法, 该方法虽然未对 ECC 存储 器存储阵列物理上进行修改, 但仍然能灵活选择存储不同长度的数据并进行 ECC 操作。 0005 本发明的具体技术解决方案如下 : 0006 该 ECC 存储器存储不同长度数据的方法, 包括以下步骤。
8、 : 0007 1 判断存入的数据长度是否与 ECC 存储器存储阵列数据长度相同为 M 位或为其 1/2n倍, n 为自然数, 若长度相同, 则进入步骤 2 处理, 若为 1/2n倍, 则进入步骤 3 处理, 若小 于 M 位但不等于 1/2n倍, 则进入步骤 4 处理 ; 0008 2 此时的 ECC 存储器与一般的 ECC 存储器相同, 用 M 位存储数据产生长度为 k 的 监督位并同时存入存储阵列 ; 0009 3将1/2n倍的数据存入存储阵列中的一部分, 原长度为k的监督位的部分存储位 置用来存储此 1/2n倍数据的监督位, 原监督位的剩余位为该组数据的位置判断位, 监督位 用于进行 。
9、ECC 操作验证其存储数据是否正确, 位置判断位用于判断此监督位对应的数据位 在存储阵列中的存储位置 ; 此 1/2n倍数据以外的存储阵列仍然可以存储数据位, 只是这些 数据位没有相应的监督位 ; 0010 4 将小于 M 位的数据存入存储阵列中的一部分, 原长度为 k 的监督位的部分存储 位置用来存储此数据的监督位, 原监督位的剩余位为该组数据的位置判断位, 监督位用于 进行 ECC 操作验证其存储数据是否正确, 位置判断位用于判断此监督位对应的数据位在存 储阵列中的存储位置 ; 如果数据长度小于 M/2 位, 此数据以外的存储阵列仍然可以继续存 储相同长度的数据位, 只是这些数据位没有相应。
10、的监督位 ; 如果数据长度大于 M/2 位, 将不 说 明 书 CN 103559914 A 3 2/2 页 4 能再进行存储。 0011 本发明的优点在于 : 0012 存储阵列在存储器中占据了大部分的面积, 该 ECC 存储器存储不同长度数据的方 法在不改变存储阵列的情况下, 可灵活地利用 ECC 的编解码规则满足不同长度的数据进行 ECC 操作的需求。 附图说明 0013 图 1 为存储阵列存储原理示意图 ; 0014 图 2 为本发明存储原理示意图。 具体实施方式 0015 以数据位长度从 64 位变到 32 位为例, 可以选用 (39, 32) 的 SEC/DED 码, 其中数 据位。
11、长度为 32 位, 监督位长度为 7 位, 存储阵列也变为图 2 中的对应关系。由于一次只需 要 32 位数据, 数据位由 d 变为两组 32 位数据 d0 和 d1, 相应的数据 位存储阵列也变为两部分, A0(包含 4 个小存储阵列 A0_3 A0_0) 和 A1(包含 4 个小存 储阵列 A1_3 A1_0) , 每个小存储阵列依旧存储 8 位数据, 监督位存储阵列不变。监督位 p中, 对于32位数据长度只需要7位监督位, 剩余的一位可作为判断位, 如果用低7位 p 作为监督位, 那最高位 p 可用来做判断位用来判断这 7 位监督位对应的是 d0 还 是 d1 的 32 位数据。例如, 。
12、可定义当 p=0 时, 表示监督位对应 d0 的 32 位数据位 ; 当 p=1 时, 表示监督位对应 d1 的 32 位数据位。当外部写入 d0 时, ECC 编 码产生 p, 并且与 p=0 一起写入存储阵列 ; 读出 d0 时, ECC 解码先判断 p 所存的值, 如果是 “0” , 则用相应的 p 进行解码和纠正操作。 0016 对于256位/128位/16位/8位等以及其它数据位长度的数据, 只要其长度适宜分 割并且有相对应的 ECC 码 (不限于 SEC/DED 码) 均可以使用此方法。例如以上例子如果不是 分割成32位而是分割成16位数据位长度d3/d2/d1/d0, 那数据 位存储阵列相应可分割成4个相同的部分A3/A2/A1/A0。 每16位数据需要6位监督位, 剩余 的2位监督位可用来判断监督位相对应的数据位属于哪部分存储阵列。 例如p作为监 督位, p作为判断位, 当p=00, 对应存储阵列A0和数据d0 ; 当p=01, 对应存储阵列 A1 和数据 d1 ; 当 p=10, 对应存储阵列 A2 和数据 d2 ; 当 p=11, 对应存储阵列 A3 和数据 d3。 说 明 书 CN 103559914 A 4 1/1 页 5 图 1 图 2 说 明 书 附 图 CN 103559914 A 5 。