CN103559914A - Ecc存储器存储不同长度数据的方法 - Google Patents

Ecc存储器存储不同长度数据的方法 Download PDF

Info

Publication number
CN103559914A
CN103559914A CN201310536363.2A CN201310536363A CN103559914A CN 103559914 A CN103559914 A CN 103559914A CN 201310536363 A CN201310536363 A CN 201310536363A CN 103559914 A CN103559914 A CN 103559914A
Authority
CN
China
Prior art keywords
data
bit
check bit
ecc
length
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.)
Granted
Application number
CN201310536363.2A
Other languages
English (en)
Other versions
CN103559914B (zh
Inventor
亚历山大
付妮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Sinochip Semiconductors Co Ltd
Original Assignee
Xian Sinochip Semiconductors Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian Sinochip Semiconductors Co Ltd filed Critical Xian Sinochip Semiconductors Co Ltd
Priority to CN201310536363.2A priority Critical patent/CN103559914B/zh
Publication of CN103559914A publication Critical patent/CN103559914A/zh
Priority to US14/528,797 priority patent/US9361180B2/en
Application granted granted Critical
Publication of CN103559914B publication Critical patent/CN103559914B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1072Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error 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存储器存储不同长度的数据。
背景技术
对于存储器来说,ECC常采用线性码(linear codes),而出于对出错率和修复成本的折中考虑,最常见的是线性码中的SEC/DED(single error correcting/double error detecting一位纠正两位检测)码。以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倍数据的监督位,原监督位的剩余位为该组数据的位置判断位,监督位用于进行ECC操作验证其存储数据是否正确,位置判断位用于判断此监督位对应的数据位在存储阵列中的存储位置;此1/2n倍数据以外的存储阵列可以用于存储没有相应的监督位的数据;
4]将小于M位的数据存入存储阵列中的一部分,原长度为k的监督位的部分存储位置用来存储此数据的监督位,原监督位的剩余位为该组数据的位置判断位,监督位用于进行ECC操作验证其存储数据是否正确,位置判断位用于判断此监督位对应的数据位在存储阵列中的存储位置;如果数据长度小于M/2位,此数据以外的存储阵列仍然可以继续存储相同长度的数据位,只是这些数据位没有相应的监督位;如果数据长度大于M/2位,将不能再进行存储。
2.根据权利要求1所述的ECC存储器存储不同长度数据的方法,其特征在于:所述ECC存储器存储陈列数据长度为8、16、32、64、128、256位,监督位为4、5、6、7、8、9、10位。
CN201310536363.2A 2013-10-31 2013-10-31 Ecc存储器存储不同长度数据的方法 Active CN103559914B (zh)

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 true CN103559914A (zh) 2014-02-05
CN103559914B 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)

* Cited by examiner, † Cited by third party
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 (4)

* Cited by examiner, † Cited by third party
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
JP2008192206A (ja) * 2007-02-01 2008-08-21 Matsushita Electric Ind Co Ltd 半導体記憶装置
CN101373641A (zh) * 2007-08-24 2009-02-25 旺宏电子股份有限公司 存储器及其1位读取错误检测方法
CN101882467A (zh) * 2010-07-02 2010-11-10 中颖电子有限公司 Ecc参数可配置的存储器控制装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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
JP2008192206A (ja) * 2007-02-01 2008-08-21 Matsushita Electric Ind Co Ltd 半導体記憶装置
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
US20150121170A1 (en) 2015-04-30
US9361180B2 (en) 2016-06-07
CN103559914B (zh) 2016-03-23

Similar Documents

Publication Publication Date Title
US8132086B2 (en) Semiconductor memory device for byte-based masking operation and method of generating parity data
CN102741819A (zh) 用于解码码字的方法、设备和计算机程序
US9235468B2 (en) Systems and methods to improve the reliability and lifespan of flash memory
WO2009053961A3 (en) Systems and methods for multiple coding rates in flash devices
CN102339641A (zh) 检错/纠错校验模块及该模块读写数据的方法
CN101183565A (zh) 存储介质中数据校验方法
WO2009078006A3 (en) Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith
US10503593B2 (en) Two layer quad bit error correction
JP2014518423A (ja) 限られた耐久性のメモリにおける適応マルチビット・エラー訂正
US20110072333A1 (en) Control method for flash memory based on variable length ecc
CN103531246B (zh) 快速以读代写的存储器纠错方法
CN103886916B (zh) 输入位宽可伸缩的编码/编解码存储系统
CN106788891A (zh) 一种适用于分布式存储的最优局部修复码构造方法
CN103594120A (zh) 以读代写的存储器纠错方法
US20140169091A1 (en) Memory controller, storage device, and memory control method
CN106802837B (zh) 一种更新错误检测和纠正ecc码的方法及装置
CN103559914B (zh) Ecc存储器存储不同长度数据的方法
US20120284586A1 (en) Controller of Memory Device and Method for Operating the Same
CN102929740A (zh) 检测存储设备坏块的方法和装置
US8850100B2 (en) Interleaving codeword portions between multiple planes and/or dies of a flash memory device
US8914712B2 (en) Hierarchical error correction
CN105206307A (zh) 一种芯片修复方法和装置
CN101908378B (zh) 闪存的控制器以及于闪存存取数据的方法
CN102360568B (zh) 一种并行异步存储器及其数据读取方法
US9070483B2 (en) Encoding and decoding redundant bits to accommodate memory cells having stuck-at faults

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