CN103559914B - Ecc存储器存储不同长度数据的方法 - Google Patents
Ecc存储器存储不同长度数据的方法 Download PDFInfo
- Publication number
- CN103559914B CN103559914B CN201310536363.2A CN201310536363A CN103559914B CN 103559914 B CN103559914 B CN 103559914B CN 201310536363 A CN201310536363 A CN 201310536363A CN 103559914 B CN103559914 B CN 103559914B
- Authority
- CN
- China
- Prior art keywords
- data
- check bit
- bit
- length
- ecc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1072—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明提供一种ECC存储器存储不同长度数据的方法,该方法虽然未对ECC存储器存储阵列物理上进行修改,但仍然能灵活选择存储不同长度的数据并进行ECC操作。存储阵列在存储器中占据了大部分的面积,该ECC存储器存储不同长度数据的方法在不改变存储阵列的情况下,可灵活地利用ECC的编解码规则满足不同长度的数据进行ECC操作的需求。
Description
技术领域
本发明涉及一种不同数据长度的存储方法,主要用于固定长度的ECC存储器存储不同长度的数据。
背景技术
对于存储器来说,ECC常采用线性码(linearcodes),而出于对出错率和修复成本的折中考虑,最常见的是线性码中的SEC/DED(singleerrorcorrecting/doubleerrordetecting一位纠正两位检测)码。以64位数据长度为例,可采用(72,64)的SEC/DED码,其中64表示数据位长度,72表示数据位长度和监督位长度之和,也就是说监督位长度是8,可用图1表示。其中,存储阵列被分为两部分,存储数据位的存储阵列A和存储监督位的存储阵列B;如果以存储量来分的话,可分为9个部分,存储数据位的存储阵列A7~A0和存储监督位的存储阵列B,每部分能存储8位数据。
当系统工作在不同模式下时,可能需要不同的数据位长度,例如32位,此时就不能用上面所提到的(72,64)码,而存储器的存储阵列一但固定就不能在物理上进行修改,所以在以上存储阵列的基础上可以做改进以支持不同的数据位长度的要求。
发明内容
本发明提供一种ECC存储器存储不同长度数据的方法,该方法虽然未对ECC存储器存储阵列物理上进行修改,但仍然能灵活选择存储不同长度的数据并进行ECC操作。
本发明的具体技术解决方案如下:
该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倍数据的监督位,原监督位的剩余位为该组数据的位置判断位,监督位用于进行ECC操作验证其存储数据是否正确,位置判断位用于判断此监督位对应的数据位在存储阵列中的存储位置;此1/2n倍数据以外的存储阵列仍然可以存储数据位,只是这些数据位没有相应的监督位;
4]将小于M位的数据存入存储阵列中的一部分,原长度为k的监督位的部分存储位置用来存储此数据的监督位,原监督位的剩余位为该组数据的位置判断位,监督位用于进行ECC操作验证其存储数据是否正确,位置判断位用于判断此监督位对应的数据位在存储阵列中的存储位置;如果数据长度小于M/2位,此数据以外的存储阵列仍然可以继续存储相同长度的数据位,只是这些数据位没有相应的监督位;如果数据长度大于M/2位,将不能再进行存储。
本发明的优点在于:
存储阵列在存储器中占据了大部分的面积,该ECC存储器存储不同长度数据的方法在不改变存储阵列的情况下,可灵活地利用ECC的编解码规则满足不同长度的数据进行ECC操作的需求。
附图说明
图1为存储阵列存储原理示意图;
图2为本发明存储原理示意图。
具体实施方式
以数据位长度从64位变到32位为例,可以选用(39,32)的SEC/DED码,其中数据位长度为32位,监督位长度为7位,存储阵列也变为图2中的对应关系。由于一次只需要32位数据,数据位由d<63:0>变为两组32位数据d0<31:0>和d1<31:0>,相应的数据位存储阵列也变为两部分,A0(包含4个小存储阵列A0_3~A0_0)和A1(包含4个小存储阵列A1_3~A1_0),每个小存储阵列依旧存储8位数据,监督位存储阵列不变。监督位p<7:0>中,对于32位数据长度只需要7位监督位,剩余的一位可作为判断位,如果用低7位p<6:0>作为监督位,那最高位p<7>可用来做判断位用来判断这7位监督位对应的是d0还是d1的32位数据。例如,可定义当p<7>=0时,表示监督位对应d0<31:0>的32位数据位;当p<7>=1时,表示监督位对应d1<31:0>的32位数据位。当外部写入d0<31:0>时,ECC编码产生p<6:0>,并且与p<7>=0一起写入存储阵列;读出d0<31:0>时,ECC解码先判断p<7>所存的值,如果是“0”,则用相应的p<6:0>进行解码和纠正操作。
对于256位/128位/16位/8位等以及其它数据位长度的数据,只要其长度适宜分割并且有相对应的ECC码(不限于SEC/DED码)均可以使用此方法。例如以上例子如果不是分割成32位而是分割成16位数据位长度d3<15:0>/d2<15:0>/d1<15:0>/d0<15:0>,那数据位存储阵列相应可分割成4个相同的部分A3/A2/A1/A0。每16位数据需要6位监督位,剩余的2位监督位可用来判断监督位相对应的数据位属于哪部分存储阵列。例如p<5:0>作为监督位,p<7:6>作为判断位,当p<7:6>=00,对应存储阵列A0和数据d0<15:0>;当p<7:6>=01,对应存储阵列A1和数据d1<15:0>;当p<7:6>=10,对应存储阵列A2和数据d2<15:0>;当p<7:6>=11,对应存储阵列A3和数据d3<15:0>。
Claims (2)
1.一种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倍数据的监督位,原监督位的剩余位为1/2n倍长度的数据相对应的监督位的位置判断位,监督位用于进行ECC操作验证其存储数据是否正确,位置判断位用于判断此监督位对应的数据位在存储阵列中的存储位置;此1/2n倍数据以外的存储阵列可以用于存储没有相应的监督位的数据;
4]将小于M位的数据存入存储阵列中的一部分,原长度为k的监督位的部分存储位置用来存储此数据的监督位,原监督位的剩余位为小于M位的数据相对应的监督位的位置判断位,监督位用于进行ECC操作验证其存储数据是否正确,位置判断位用于判断此监督位对应的数据位在存储阵列中的存储位置;如果数据长度小于M/2位,此数据以外的存储阵列仍然可以继续存储相同长度的数据位,只是这些数据位没有相应的监督位;如果数据长度大于M/2位,将不能再进行存储。
2.根据权利要求1所述的ECC存储器存储不同长度数据的方法,其特征在于:所述ECC存储器存储阵列的数据长度为8、16、32、64、128、256位,监督位为4、5、6、7、8、9、10位。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310536363.2A CN103559914B (zh) | 2013-10-31 | 2013-10-31 | Ecc存储器存储不同长度数据的方法 |
US14/528,797 US9361180B2 (en) | 2013-10-31 | 2014-10-30 | Storing data by an ECC memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310536363.2A CN103559914B (zh) | 2013-10-31 | 2013-10-31 | Ecc存储器存储不同长度数据的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103559914A CN103559914A (zh) | 2014-02-05 |
CN103559914B true CN103559914B (zh) | 2016-03-23 |
Family
ID=50014138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310536363.2A Active CN103559914B (zh) | 2013-10-31 | 2013-10-31 | Ecc存储器存储不同长度数据的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9361180B2 (zh) |
CN (1) | CN103559914B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10162702B2 (en) * | 2016-02-01 | 2018-12-25 | Lattice Semiconductor Corporation | Segmented error coding for block-based memory |
US11057060B1 (en) * | 2020-03-23 | 2021-07-06 | Sage Microelectronics Corporation | Method and apparatus for matrix flipping error correction |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0637174A2 (en) * | 1993-07-30 | 1995-02-01 | Victor Company Of Japan, Limited | Digital data transmission method and apparatus |
CN101373641A (zh) * | 2007-08-24 | 2009-02-25 | 旺宏电子股份有限公司 | 存储器及其1位读取错误检测方法 |
CN101882467A (zh) * | 2010-07-02 | 2010-11-10 | 中颖电子有限公司 | Ecc参数可配置的存储器控制装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008192206A (ja) * | 2007-02-01 | 2008-08-21 | Matsushita Electric Ind Co Ltd | 半導体記憶装置 |
US8627183B1 (en) * | 2010-05-11 | 2014-01-07 | Marvell International Ltd. | Systems and methods for storing variable rate product codes |
US8694862B2 (en) * | 2012-04-20 | 2014-04-08 | Arm Limited | Data processing apparatus using implicit data storage data storage and method of implicit data storage |
US9389957B2 (en) * | 2013-09-03 | 2016-07-12 | Kabushiki Kaisha Toshiba | Memory controller, memory system, and memory control method |
-
2013
- 2013-10-31 CN CN201310536363.2A patent/CN103559914B/zh active Active
-
2014
- 2014-10-30 US US14/528,797 patent/US9361180B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0637174A2 (en) * | 1993-07-30 | 1995-02-01 | Victor Company Of Japan, Limited | Digital data transmission method and apparatus |
CN101373641A (zh) * | 2007-08-24 | 2009-02-25 | 旺宏电子股份有限公司 | 存储器及其1位读取错误检测方法 |
CN101882467A (zh) * | 2010-07-02 | 2010-11-10 | 中颖电子有限公司 | Ecc参数可配置的存储器控制装置 |
Also Published As
Publication number | Publication date |
---|---|
US9361180B2 (en) | 2016-06-07 |
CN103559914A (zh) | 2014-02-05 |
US20150121170A1 (en) | 2015-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8132086B2 (en) | Semiconductor memory device for byte-based masking operation and method of generating parity data | |
US7900118B2 (en) | Flash memory system and method for controlling the same | |
CN102741819A (zh) | 用于解码码字的方法、设备和计算机程序 | |
US9741451B2 (en) | Data storage device and data maintenance method thereof | |
US9778861B2 (en) | Systems and methods to improve the reliability and lifespan of flash memory | |
CN102339641A (zh) | 检错/纠错校验模块及该模块读写数据的方法 | |
CN101183565A (zh) | 存储介质中数据校验方法 | |
CN104932951B (zh) | 一种nand闪存出现ecc无法纠错时的数据恢复方法 | |
JP2014518423A (ja) | 限られた耐久性のメモリにおける適応マルチビット・エラー訂正 | |
WO2020035086A3 (en) | Data security of shared blockchain data storage based on error correction code | |
CN103594120A (zh) | 以读代写的存储器纠错方法 | |
CN103531246B (zh) | 快速以读代写的存储器纠错方法 | |
US20140169091A1 (en) | Memory controller, storage device, and memory control method | |
CN102279803A (zh) | 一种提高多层单元NAND-Flash存储可靠性的备用区分配方法 | |
CN106802837B (zh) | 一种更新错误检测和纠正ecc码的方法及装置 | |
CN103559914B (zh) | Ecc存储器存储不同长度数据的方法 | |
CN102929740A (zh) | 检测存储设备坏块的方法和装置 | |
CN113051100B (zh) | 一种闪存存储器及其错误比特计数检测系统 | |
CN101256521B (zh) | 提高闪存资料存取可靠性的方法 | |
CN105206307A (zh) | 一种芯片修复方法和装置 | |
CN102360568B (zh) | 一种并行异步存储器及其数据读取方法 | |
US11231990B2 (en) | Device and method for generating error correction information | |
CN106910529A (zh) | 一种增加TLC Nand闪存使用周期的方法及其系统 | |
US9070483B2 (en) | Encoding and decoding redundant bits to accommodate memory cells having stuck-at faults | |
CN105575439A (zh) | 一种存储单元失效纠错的方法及存储器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 710055 Shaanxi City, Xi'an province high tech Road No. 38, innovation center, A, block, floor 4 Applicant after: XI'AN UNIIC SEMICONDUCTORS Co.,Ltd. Address before: 710055 Shaanxi City, Xi'an province high tech Road No. 38, innovation center, A, block, floor 4 Applicant before: Xi'an Sinochip Semiconductors Co., Ltd. |
|
COR | Change of bibliographic data | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |