CN101388256A - 用于一存储器元件产生一低级错误更正码的控制器及其方法 - Google Patents

用于一存储器元件产生一低级错误更正码的控制器及其方法 Download PDF

Info

Publication number
CN101388256A
CN101388256A CNA2008101273759A CN200810127375A CN101388256A CN 101388256 A CN101388256 A CN 101388256A CN A2008101273759 A CNA2008101273759 A CN A2008101273759A CN 200810127375 A CN200810127375 A CN 200810127375A CN 101388256 A CN101388256 A CN 101388256A
Authority
CN
China
Prior art keywords
data
ecc
upgraded
correcting code
error correcting
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
CNA2008101273759A
Other languages
English (en)
Other versions
CN101388256B (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.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
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 Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN101388256A publication Critical patent/CN101388256A/zh
Application granted granted Critical
Publication of CN101388256B publication Critical patent/CN101388256B/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/1068Adding 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 sector programmable memories, e.g. flash disk

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)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

本发明提供一种用于一存储器元件产生一低级错误更正码的控制器及其方法。该存储器元件仅支持利用低级ECC技术的闪存,例如SLC(single-level cell;单电平储存格)闪存。借助一具有一ECC引擎的控制器,该存储器元件可在从利用高级ECC技术的闪存(例如MLC(multi-level cell;多电平储存格)读取数据时,直接为自身产生一正确的ECC。借此,该存储器元件亦可支持利用高级ECC技术的闪存,并缩短数据读取时间。

Description

用于一存储器元件产生一低级错误更正码的控制器及其方法
技术领域
本发明是关于一种用于一存储器元件产生一低级错误更正码(error-correction-code;ECC)的控制器及其方法。更具体说,本发明是关于一种用于一仅支持低级ECC技术的存储器元件产生一ECC的控制器及其方法。
背景技术
错误更正码(error-correction-code;ECC)已应用达数十年之久,且于多种应用中具有优良的追踪记录。举例而言,一利用单电平储存格(single-level cell;SLC)技术的闪存是使用汉明(Hamming)ECC,用以执行1位错误更正。控制该闪存的一主机要求自该闪存传送至该主机的数据须携带一HM ECC,使主机随即可根据该HM ECC更正该数据(若需要)。然而,当对闪存应用高级且更复杂的技术时,例如利用使各闪存储存格储存二或更多数据位的多电平储存格(multilevel-cell;MLC)技术时,HM ECC等低级ECC技术便无法执行一更正追踪记录功能以及提供用以更正数据的足够信息(若需要)。因此,已逐渐地普遍使用例如罗德索罗门(Reed-Solomon;RS)ECC等高级ECC技术以为高级快闪技术提供8位错误更正能力。
对于例如MMC 2.0及SD 2.0等某些快闪存储卡规范,应用高级ECC的闪存元件可于传送数据至主机前更正该数据。因此,传送至主机的数据不需要一ECC。然而,为满足彼等期望数据带有一ECC的主机的要求,具有高级ECC的闪存元件仍须产生一ECC,且可能会出现某些问题。
举例而言,当一主机自一闪存元件读取数据、且该主机需要具有一ECC才能更正读取数据时,该闪存元件便须提供ECC。
在图1中,数据10是来自闪存,且包含主要数据11、备用数据12、以及一RS ECC13。数据10被传送至闪存元件的一控制器20,由控制器20处理数据10并输出已处理的数据30至主机。数据30包含主要数据31、备用数据32以及一HM ECC 33。
控制器20包含一缓冲器21、一备用寄存器22、一ECC引擎23、以及一HMECC编码器24。主要数据11是传送至缓冲器21及ECC引擎23,备用数据12则传送至备用寄存器22及ECC引擎23。RS ECC 13是传送至ECC引擎23。ECC引擎23接收到主要数据11、备用数据12及RS ECC 13后,产生一更新讯息104至缓冲器21及备用寄存器22,以用于分别更正主要数据11及备用数据12。
由于主机需要一HM ECC,故HM ECC编码器24随即根据分别来自缓冲器21与备用寄存器22的已更新的主要数据及已更新的备用数据,产生HM ECC 33。控制器20输出已更新的主要数据作为已更新的主要数据31,并输出已更新的备用数据作为已更新的备用数据32。主机随后撷取已更新的主要数据31、已更新的备用数据32、以及HM ECC 33。现有技术耗用二次错误更正算法运算,非常耗费运算时间。
因此,如何产生一正确的ECC、且不会浪费较多时间不止一次地读取数据,对于一仅支持低级ECC技术的存储器元件而言甚为重要。
发明内容
本发明的主要目的在于提供一种用于根据一高级ECC为一存储器元件产生一低级ECC的控制器。
本发明的另一目的在于提供一种用于根据一高级ECC为一存储器元件产生一低级ECC的方法。
为达成前述目的,借助一具有一应用高级ECC技术的ECC引擎的控制器,该存储器元件可在自存储器读取数据时直接为其自身产生一正确ECC。且该控制器亦根据该高级ECC,产生一低级ECC。因此,该存储器元件亦可支持利用高级ECC技术的存储器,并缩短数据读取时间。
下面将配合附图对本发明的较佳实施例进行详细的说明,以便所属技术领域具有通常知识者可更清楚了解本发明的其它目的,以及本发明的技术手段及实施态样,其中:
附图说明
图1是先前技术于数据读取周期中的方块图;
图2是本发明于数据读取周期中的方块图;以及
图3是本发明于数据写入周期中的方块图。
具体实施方式
以下将通过实施例来阐述本发明,其是根据一高级ECC而产生一低级ECC。然而,本发明的实施例并非仅限于任何特定的环境、应用或实施方式。因此,下文关于实施例的说明仅为阐释本发明的目的,而非用以限制本发明。
图2例示应用本发明、通过一控制器处理从一存储器元件至一主机的数据(亦即读取步骤)的方块图。该实施例是以一闪存元件为例,然而,其并非用以限制本发明,任何需要一低级ECC的存储器元件皆可应用本发明。该闪存元件可是一尖端数字图像卡(eXtreme Digital Picture card,xD card)、一智能型媒体卡(Smart Mediacard)或一存储棒卡(Memory Stick card)。该闪存元件应用一高级错误更正算法(在此处是一罗德索罗门(RS)算法)来产生一RS ECC及一低级ECC(此处是一HM ECC)。在其它实施例中,该高级错误更正算法可是一博斯-乔赫里-霍克文黑姆(Bose-Chaudhury-Hocquenghem;BCH)算法或其它恰当算法。
一控制器50自该闪存元件接收数据40,并将数据40处理成已更新的数据60,以供传送至主机。数据40包含主要数据41、备用数据42以及一RS ECC 43。控制器50包含一缓冲器51、一备用寄存器52以及一ECC引擎53。已更新的数据60包含已更新的主要数据61、已更新的备用数据62以及一HM ECC 63。
ECC引擎53还包含一RS ECC译码器532、一HM ECC编码器533以及一RS ECC编码器531,其中RS ECC译码器532及HM ECC编码器533是用于读取步骤,而RS ECC编码器531则用于写入步骤。缓冲器51及RS ECC译码器532二者皆接收主要数据41,备用寄存器52及RS ECC 532二者皆接收备用数据42,且RS ECC译码器532亦接收RS ECC 43。接着,RS译码器532根据RS ECC 43,依照一RS算法译码该主要数据41及备用数据42,并产生更新讯息至缓冲器51、备用寄存器52及HM ECC编码器533,以用于分别更新该主要数据、更新该备用数据以及产生HM ECC 63。下文将详细说明如何产生已更新的主要数据61、已更新的备用数据62、以及HM ECC 63。
根据RS ECC 43,RS ECC译码器532可依照一相应的译码算法(于本实施例中是一RS算法)侦测主要数据41及备用数据42的错误地址,并产生一更新讯息504,该更新讯息504记录主要数据11及备用数据42的所有错误地址。最后,RSECC译码器532输出该更新讯息504至缓冲器51及备用寄存器52以用于修正数据,并输出至HM ECC编码器533以用于产生正确的HM ECC。
然后,输出已更新的主要数据并将其标记为已更新的主要数据61,且然后输出已更新的备用数据并将其标记为已更新的备用数据62。因主要数据41与备用数据42二者皆借助RS ECC译码器532所产生的更新讯息504得到更新,故已更新的主要数据61与已更新的备用数据62二者皆包含无错误数据,因为更新讯息504可较图1的更新讯息104提供更多的错误更正信息。同时,HM ECC 63是根据更新讯息504而产生;因此,HM ECC 63代表无错误的已更新的主要数据61与已更新的备用数据62。
HM ECC 63是由行同位位(column parities;CP)及列同位位(line parities;LP)组成。下文说明将以列同位位为例来解释根据更新讯息504产生HM ECC 63的方式。参见下表1;列同位位是借助一XOR运算,根据每一字节的各位而产生。举例而言,字节0是八个位进行一XOR运算的值且等于0,字节1是八个位进行一XOR运算的值且等于0,字节2是八个位进行一XOR运算的值且等于1,字节3是八个位进行一XOR运算的值且等于0,类似地,字节255是八个位进行一XOR运算的值且等于1,依此类推。
表1
Figure A200810127375D00061
当数据字节错误时,字节群组值亦将错误。参见下表2,LP1是字节1,3,5,7,...及255的列同位位进行一XOR运算所得的一群组值,LP1’是字节0,2,4,6,8,...及254的列同位位进行一XOR运算所得的一群组值,LP2是字节0,1,4,5,8,9...及252,253的列同位位进行一XOR运算所得的一群组值,LP2’是字节2,3,6,7,10,11...及254,255的列同位位进行一XOR运算所得的一群组值,类似地,LP128是字节128,129,130,...及255的列同位位进行一XOR运算所得的一群组值,LP128’是字节0,1,2,3,...及127的列同位位进行一XOR运算所得的一群组值,依此类推。应注意,前述各LP的XOR值可能存在错误,且针对这些XOR值的更正将于下文予以解释。
表2
参见表3,若更新讯息504记录到数据的字节1存在错误且XOR运算的值是1,则所有包含字节1的群组值,包括至少LP1、LP2及LP128’,皆应从1转换至0或从0转换至1。反的,若更新讯息504记录到数据的字节1存在错误且XOR运算的值是0,则所有包含字节1的群组值保持不变。因此,若二或更多个位出现错误,则无法借助列同位位进行侦测。此即HM ECC 63无法侦测二或更多个位的错误的原因所在。
表3
Figure A200810127375D00081
因HM ECC 63、已更新的主要数据61及已更新的备用数据62是根据更新讯息504而产生,故HM ECC 63可对应于已更新的主要数据61及已更新的备用数据62。因此,即使主机根据所需的规格而使用HM ECC 63以修正已更新的主要数据61及已更新的备用数据62,由于其皆为正确的数据,故输出亦将为正确的数据。借助控制器50,可将作为高级ECC的RS ECC 43正确地转换成作为低级ECC的HM ECC 63。
明显地,控制器50可使用更新讯息504而产生HM ECC 63,且无需进一步撷取已更新的主要数据61及已更新的备用数据62才能产生HM ECC 63。与先前技术相比,在本发明中可同时撷取HM ECC 63,而无需
执行其它步骤来再次读取已更新的主要数据61及已更新的备用数据62。因此,这些读取方法将更为有效率。
图3例示应用本发明、通过控制器来处理从主机至闪存元件的数据(亦即写入步骤)的方块图。
图3例示本发明在从一元件主机写入数据至一闪存的周期中的另一方块图。控制器80包含一缓冲器81、一备用寄存器82、以及一ECC引擎83。ECC引擎83包含一RS编码器831、一RS译码器832及一HM编码器833。当主机开始写入数据至闪存时,主要数据91及备用数据92是分别暂时储存至缓冲器81及备用寄存器82。同时,主要数据91及备用数据92自发地传送至一RS ECC编码器831以及HM ECC 93。
承上所述,无需进行任何处理,缓冲器81将主要数据91及备用数据92作为主要数据71及备用数据72写入至闪存。同时,RS ECC编码器831依照一RS编码算法,以及根据主要数据91及备用数据92产生RS ECC 73,并写入RS ECC 73至闪存。
由上文说明可知,借助利用本发明,存储器的控制器可根据一高级ECC(例如RS ECC)产生一低级ECC(例如HM ECC)。借助撷取该高级ECC,控制器可无需撷取已更新的数据便可直接产生低级ECC,借以节省成本以及处理时间。
上述的实施例仅用来例举本发明的实施态样,以及阐释本发明的技术特征,并非用来限制本发明的范畴。任何熟悉此技术者可轻易完成的等同的改变或均等性的安排均属于本发明所主张的范围,本发明的权利范围应以本申请权利要求范围为准。

Claims (8)

1.一种用于一存储器元件产生一低级错误更正码的方法,该方法包含下列步骤:
由该存储器元件接收一数据,其中该数据包含一主要数据、一备用数据及一高级错误更正码;
根据该高级错误更正码,利用一译码算法侦测该主要数据及该备用数据的多个错误地址;
根据这些多个错误地址,产生一更新讯息;以及
根据该更新讯息,产生该低级错误更正码。
2.根据权利要求1所述的方法,其特征在于还包含借助该更新讯息以更新该主要数据及该备用数据的步骤。
3.根据权利要求2所述的方法,其特征在于已更新的该主要数据及已更新的该备用数据包含无错误数据。
4.根据权利要求3所述的方法,其特征在于该低级错误更正码代表无错误的已更新的该主要数据及该备用数据。
5.一种用于一存储器元件产生一低级错误更正码的控制器,包含:
一缓冲器,用以接收该存储器元件的一主要数据;
一备用寄存器,用以接收该存储器元件的一备用数据;以及
一错误更正码引擎,用以产生一错误更正码,该错误更正码引擎包含:
一错误更正码译码器,用以接收该存储器元件的该主要数据、该备用数据及一高级错误更正码,根据该高级错误更正码,利用一译码算法侦测该主要数据及该备用数据的多个错误地址,并根据这些多个错误地址产生一更新讯息;
一错误更正码编码器,用以根据该更新讯息,产生该低级错误更正码。
6.根据权利要求5所述的控制器,其特征在于该错误更正码译码器还传送该更新讯息至该缓冲器及该备用寄存器,分别用以更新该主要数据及该备用数据。
7.根据权利要求6所述的控制器,其特征在于已更新的该主要数据及已更新的该备用数据包含无错误数据。
8.根据权利要求7所述的控制器,其特征在于该低级错误更正码是对应至已更新的该主要数据及已更新的该备用数据。
CN2008101273759A 2007-09-11 2008-06-27 用于一存储器元件产生一低级错误更正码的控制器及方法 Active CN101388256B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US97132807P 2007-09-11 2007-09-11
US60/971,328 2007-09-11
US12/103,160 US20090070655A1 (en) 2007-09-11 2008-04-15 Method for Generating an ECC Code for a Memory Device
US12/103,160 2008-04-15

Publications (2)

Publication Number Publication Date
CN101388256A true CN101388256A (zh) 2009-03-18
CN101388256B CN101388256B (zh) 2011-04-13

Family

ID=40433159

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101273759A Active CN101388256B (zh) 2007-09-11 2008-06-27 用于一存储器元件产生一低级错误更正码的控制器及方法

Country Status (4)

Country Link
US (1) US20090070655A1 (zh)
JP (1) JP4819843B2 (zh)
CN (1) CN101388256B (zh)
TW (1) TWI378463B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541675A (zh) * 2010-12-23 2012-07-04 慧荣科技股份有限公司 提升错误更正能力的方法、记忆装置及其控制器

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI396202B (zh) * 2008-11-14 2013-05-11 Phison Electronics Corp 錯誤校正控制器及其快閃記憶體晶片系統與錯誤校正方法
FR2961613B1 (fr) * 2010-06-18 2012-07-27 Commissariat Energie Atomique Procede de protection memoire configurable contre les erreurs permanentes et transitoires et dispositif apparente
KR101979734B1 (ko) 2012-08-07 2019-05-17 삼성전자 주식회사 메모리 장치의 독출 전압 제어 방법 및 이를 이용한 데이터 독출 방법
JP6131207B2 (ja) * 2014-03-14 2017-05-17 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
CN104978147B (zh) * 2014-04-03 2018-09-07 光宝科技股份有限公司 固态储存装置及其错误更正控制方法
TWI550615B (zh) * 2014-08-28 2016-09-21 群聯電子股份有限公司 資料存取方法、記憶體儲存裝置及記憶體控制電路單元

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3137119B2 (ja) * 1989-06-07 2001-02-19 キヤノン株式会社 誤り訂正装置
JPH1166762A (ja) * 1997-08-08 1999-03-09 Alps Electric Co Ltd フロッピディスクシステム
JPH11143787A (ja) * 1997-11-06 1999-05-28 Hitachi Ltd 記録再生装置
JPH11212876A (ja) * 1998-01-21 1999-08-06 Sony Corp 符号化方法およびそれを利用したメモリ装置
US6408408B1 (en) * 1998-11-10 2002-06-18 Samsung Electronics Co., Ltd. Recording medium having spare area for defect management and information on defect management, and method of allocating spare area and method of managing defects
JP2000242440A (ja) * 1999-02-25 2000-09-08 Alps Electric Co Ltd ディスク装置
JP3975245B2 (ja) * 1999-12-16 2007-09-12 株式会社ルネサステクノロジ 記録再生装置および半導体メモリ
JP2004086991A (ja) * 2002-08-27 2004-03-18 Renesas Technology Corp 不揮発性記憶装置
JP4299558B2 (ja) * 2003-03-17 2009-07-22 株式会社ルネサステクノロジ 情報記憶装置および情報処理システム
US7187602B2 (en) * 2003-06-13 2007-03-06 Infineon Technologies Aktiengesellschaft Reducing memory failures in integrated circuits
US7228467B2 (en) * 2003-10-10 2007-06-05 Quantum Corporation Correcting data having more data blocks with errors than redundancy blocks
US7392456B2 (en) * 2004-11-23 2008-06-24 Mosys, Inc. Predictive error correction code generation facilitating high-speed byte-write in a semiconductor memory
JP4695385B2 (ja) * 2004-11-30 2011-06-08 株式会社東芝 メモリカードおよびカードコントローラ
GB2428496A (en) * 2005-07-15 2007-01-31 Global Silicon Ltd Error correction for flash memory
JP2007052714A (ja) * 2005-08-19 2007-03-01 Fuji Xerox Co Ltd 情報処理システム
US7480847B2 (en) * 2005-08-29 2009-01-20 Sun Microsystems, Inc. Error correction code transformation technique
US7617434B1 (en) * 2005-12-13 2009-11-10 Sprint Communications Company L.P. Adaptive error correction
US7712010B2 (en) * 2006-06-15 2010-05-04 International Business Machines Corporation Systems, methods and computer program products for utilizing a spare lane for additional checkbits
US7739576B2 (en) * 2006-08-31 2010-06-15 Micron Technology, Inc. Variable strength ECC
US8015473B2 (en) * 2006-12-19 2011-09-06 Intel Corporation Method, system, and apparatus for ECC protection of small data structures
US8006166B2 (en) * 2007-06-12 2011-08-23 Micron Technology, Inc. Programming error correction code into a solid state memory device with varying bits per cell

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541675A (zh) * 2010-12-23 2012-07-04 慧荣科技股份有限公司 提升错误更正能力的方法、记忆装置及其控制器

Also Published As

Publication number Publication date
CN101388256B (zh) 2011-04-13
JP4819843B2 (ja) 2011-11-24
US20090070655A1 (en) 2009-03-12
TW200912941A (en) 2009-03-16
TWI378463B (en) 2012-12-01
JP2009070362A (ja) 2009-04-02

Similar Documents

Publication Publication Date Title
CN101388256B (zh) 用于一存储器元件产生一低级错误更正码的控制器及方法
US8977813B2 (en) Implementing RAID in solid state memory
CN102317919B (zh) 在存储器控制器中的数据完整性及方法
US9223648B2 (en) Memory storage device, memory controller thereof, and method for processing data thereof
CN102077176B (zh) 存储器***的回拷优化
US8316280B2 (en) Error correcting device, method of error correction thereof, and memory device and data processing system including of the same
US8074148B2 (en) Memory management method and controller for non-volatile memory storage device
CN103995785B (zh) 信息处理方法和***
US20130166991A1 (en) Non-Volatile Semiconductor Memory Device Using Mats with Error Detection and Correction and Methods of Managing the Same
CN103631670A (zh) 存储器储存装置、存储器控制器与数据处理方法
JP2009301194A (ja) 半導体記憶装置の制御システム
US20090259916A1 (en) Data accessing method, controller and storage system using the same
CN102890645A (zh) 存储器储存装置、存储器控制器与数据写入方法
TW201312573A (zh) 快閃記憶體儲存裝置及其不良儲存區域的判定方法
CN100449498C (zh) 数据储存装置
TW201738898A (zh) 資料校正方法、記憶體控制電路單元與記憶體儲存裝置
JP4572859B2 (ja) キャッシュメモリ制御装置、方法及びプログラム並びにディスクアレイ装置
TWI541809B (zh) 資料存取方法、記憶體控制電路單元與記憶體儲存裝置
CN110764693B (zh) 一种提高Nand flash数据稳定性的方法以及装置
CN102103890B (zh) 一种芯片参数的识别方法及***
CN102103891B (zh) 一种芯片参数的识别方法及***
CN112306733B (zh) 存储器装置、存储器控制器及其数据存取方法
CN102855192B (zh) 存储器抹除方法、存储器控制器与存储器储存装置
US20160117218A1 (en) Monitoring data error status in a memory
CN102103892B (zh) 一种芯片参数的识别方法及***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant