CN102779099A - 存储器控制器和存储器控制器的操作方法 - Google Patents

存储器控制器和存储器控制器的操作方法 Download PDF

Info

Publication number
CN102779099A
CN102779099A CN2012101415879A CN201210141587A CN102779099A CN 102779099 A CN102779099 A CN 102779099A CN 2012101415879 A CN2012101415879 A CN 2012101415879A CN 201210141587 A CN201210141587 A CN 201210141587A CN 102779099 A CN102779099 A CN 102779099A
Authority
CN
China
Prior art keywords
search
vector
mistake
chien
reading
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
CN2012101415879A
Other languages
English (en)
Other versions
CN102779099B (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN102779099A publication Critical patent/CN102779099A/zh
Application granted granted Critical
Publication of CN102779099B publication Critical patent/CN102779099B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1545Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • H03M13/3715Adaptation to the number of estimated errors or to the channel state
    • 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
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • 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
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)
  • Error Detection And Correction (AREA)

Abstract

一种用于控制包括存储设备的存储***的控制器。控制存储***可以包括:利用存储***的关键方程求解单元计算用于从存储设备读取数据的接收的读矢量中的错误位置多项式;利用存储***的控制单元根据计算的错误位置多项式和关于错误位置多项式的信息中的至少一个来估计在接收的读矢量中的错误的数目;以及利用具有控制单元的存储***的钱氏搜索单元根据计算的错误位置多项式来搜索接收的读矢量的错误位置。可以利用该控制单元调整钱氏搜索单元的每循环功耗。可以根据读矢量的错误的数目调整最大纠正时间。

Description

存储器控制器和存储器控制器的操作方法
对相关申请的交叉引用
本申请要求2011年5月9日向韩国知识产权局提交的韩国专利申请No.10-2011-0043619的优先权,其内容通过引用而被全部合并于此。
技术领域
本发明总构思的示范性实施例涉及存储器控制器及其操作方法。
半导体存储设备可以是使用诸如硅(Si)、锗(Ge)、砷化镓(GaAs)、磷化铟(InP)等等之类的半导体制造的存储设备。半导体存储设备可以分为易失性存储设备和非易失性存储设备。
背景技术
易失性存储设备在断电时可能丢失存储的内容。易失性存储设备包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)等等。非易失性存储设备甚至在断电时也可以保持存储的内容。非易失性存储设备可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、闪速存储设备、相变随机存取存储器(PRAM)、磁随机存取存储器(MRAM)、阻性随机存取存储器(RRAM)、铁电随机存取存储器(FRAM)等等。闪速存储设备可以分为NOR型和NAND型。
半导体存储设备的存储容量的增大可以通过提高半导体存储设备的集成度以及通过在一个存储单元中编程多位数据来实现。半导体存储设备的集成度的提高可以通过细化半导体存储设备的工艺来实现。在一个存储单元中编程多位数据可以通过减小存储在存储单元中的逻辑值的分布来实现。存储多位数据的存储单元可以被称为多电平单元(MLC)。
提高的集成度和MCL的引入可能引起错误率的增大。随着集成度的提高,存储在存储单元中的数据可能容易受噪声的影响。随着错误率的增大,可能扩大包括在存储器控制器中的纠错功能。这可能引起功耗的增大。
发明内容
本发明总构思的示范性实施例可以提供一种存储***、计算***、和控制存储器和计算***的方法,以便调整在从存储设备输出的读矢量中搜索错误位置的钱氏(chien)搜索单元的每循环功耗。功耗可以通过调整要被钱氏搜索单元同时搜索的读矢量的位的数目来调整。随着读矢量中的错误的数目增大,可以降低钱氏搜索单元的每循环功耗。
本发明总构思的示范性实施例还可以提供一种存储***、计算***、和控制存储器和计算***的方法,以便调整在从存储设备输出的读矢量中搜索错误位置的钱氏搜索单元的最大纠正时间。最大时间可以根据钱氏搜索是否对读矢量的数据部分和/或奇偶校验部分执行以及钱氏搜索单元的操作模式而增大。
本发明总构思的附加特征和用途在随后的描述中将被部分地阐明、并且由该描述将部分地明显、或可以通过实践本发明总构思来学习到。
本发明总构思的示范性实施例还可以提供一种用于控制存储设备的存储***的控制器,包括:关键方程求解单元,计算由控制器接收到的从存储设备读取数据的读矢量中的错误位置多项式;控制单元,根据计算的错误位置多项式和关于该错误位置多项式的信息中的至少一个来估计在接收的读矢量中的错误的数目;和钱氏搜索单元,根据计算的错误位置多项式搜索接收的读矢量的错误位置。
控制器可以包括纠错单元,用于使用由关键方程求解单元计算的错误位置多项式来纠正接收的读矢量的在由钱氏搜索单元确定的错误位置处的错误。
控制单元可以调整钱氏搜索单元的每循环功耗。
控制单元可以通过根据由关键方程求解单元计算的错误位置多项式调整要在接收的读矢量中同时搜索的位的数目来调整钱氏搜索单元的每循环功耗。
当错误的数目小于或等于预定的第一错误的数目时,控制单元可以控制钱氏搜索单元以完全搜索模式操作,以同时搜索接收的读矢量的至少数据部分的位。
当错误的数目大于预定的第一错误的数目并且小于预定的第二错误的数目时,控制单元可以控制钱氏搜索单元以一半搜索模式操作,以同时搜索在完全搜索模式下同时搜索的接收的读矢量的位的数目的一半。
以一半搜索模式操作的钱氏搜索单元的每循环功耗可以小于完全搜索模式的每循环功耗。
当错误的数目大于预定的第二错误的数目时,控制单元可以控制钱氏搜索单元以四分之一搜索模式操作,以同时搜索在完全搜索模式下同时搜索的接收的读矢量的位的数目的四分之一。
以四分之一搜索模式操作的钱氏搜索单元的每循环功耗可以小于一半搜索模式的每循环功耗。
当错误的数目小于或等于预定的阈值时,控制单元可以控制钱氏搜索单元仅仅对接收的读矢量的数据部分执行钱氏搜索。
当检测到的错误的数目大于预定的阈值时,控制单元可以控制钱氏搜索单元对接收的读矢量的数据部分和奇偶校验部分执行钱氏搜索。
控制单元可以根据读矢量的错误的数目调整钱氏搜索单元的最大纠正时间。
当错误的数目小于第一预定的错误的数目时,控制单元可以将钱氏搜索单元的最大纠正时间调整到第一预定的求解时间。
当错误的数目小于第一预定的错误的数目时,控制单元可以控制钱氏搜索单元以完全搜索模式操作,以同时搜索读矢量的至少数据部分的位。
当错误的数目大于第一预定的错误的数目并且小于第二预定的错误的数目时,控制单元可以控制钱氏搜索单元以一半搜索模式操作,以同时搜索在以完全搜索模式操作时的读矢量的至少数据部分的位的数目的一半。
当错误的数目大于第二预定的错误的数目时,控制单元可以控制钱氏搜索单元以四分之一搜索模式操作,以同时搜索在以完全搜索模式操作时的读矢量的至少数据部分的位的数目的四分之一。
当检测到的错误的数目大于预定的阈值时,控制单元可以调整钱氏搜索单元的最大纠正时间以对接收的读矢量的数据部分和奇偶校验部分执行钱氏搜索。
本发明总构思的示范性实施例还可以提供一种用于控制包含存储设备的存储***的方法,该方法包括:利用存储***的关键方程求解单元计算用于从存储设备读取数据的接收的读矢量中的错误位置多项式;利用存储***的控制单元根据计算的错误位置多项式和关于错误位置多项式的信息中的至少一个来估计在接收的读矢量中的错误的数目;以及利用存储***的钱氏搜索单元根据利用控制单元计算的错误位置多项式来搜索接收的读矢量的错误位置。
该方法可以包括利用纠错单元使用由关键方程求解单元计算的错误位置多项式来纠正接收的读矢量的在由钱氏搜索单元确定的错误位置处的错误。
该方法可以包括利用控制单元调整钱氏搜索单元的每循环功耗。
在该方法中的调整钱氏搜索单元的每循环功耗可以包括利用该控制单元根据由关键方程求解单元计算的错误位置多项式来调整要在接收的读矢量中同时搜索的位的数目。
该方法可以包括:当错误的数目小于或等于预定的第一错误的数目时,以完全搜索模式操作钱氏搜索单元,以同时搜索接收的读矢量的至少数据部分的位。
该方法可以包括:当错误的数目大于预定的第一错误的数目并且小于预定的第二错误的数目时,以一半搜索模式操作钱氏搜索单元,以同时搜索在完全搜索模式下同时搜索的接收的读矢量的位的数目的一半。
该方法可以包括:以一半搜索模式操作的钱氏搜索单元的每循环功耗小于完全搜索模式的每循环功耗。
该方法可以包括:当错误的数目大于预定的第二错误的数目时,以四分之一搜索模式操作钱氏搜索单元,以同时搜索在完全搜索模式下同时搜索的接收的读矢量的位的数目的四分之一。
该方法可以包括:以四分之一搜索模式操作的钱氏搜索单元的每循环功耗小于一半搜索模式的每循环功耗。
该方法还可以包括:当错误的数目小于或等于预定的阈值时,利用控制单元控制钱氏搜索单元,以仅仅对接收的读矢量的数据部分执行钱氏搜索。
该方法可以包括:当检测到的错误的数目大于预定的阈值时,利用控制单元控制钱氏搜索单元,以对接收的读矢量的数据部分和奇偶校验部分执行钱氏搜索。
该方法可以包括利用控制单元根据读矢量的错误的数目调整钱氏搜索单元的最大纠正时间。
该方法可以包括:当错误的数目小于第一预定的错误的数目时,利用控制单元将钱氏搜索单元的最大纠正时间调整到第一预定的求解时间。
该方法可以包括:当错误的数目小于第一预定的错误的数目时,以完全搜索模式操作钱氏搜索单元,以同时搜索读矢量的至少数据部分的位。
该方法可以包括:当错误的数目大于第一预定的错误的数目并且小于第二预定的错误的数目时,以一半搜索模式操作钱氏搜索单元,以同时搜索在以完全搜索模式操作时的读矢量的至少数据部分的位的数目的一半。
该方法可以包括:当错误的数目大于第二预定的错误的数目时,以四分之一搜索模式操作钱氏搜索单元,以同时搜索在以完全搜索模式操作时的读矢量的至少数据部分的位的数目的四分之一。
该方法可以包括:当检测到的错误的数目大于预定的阈值时,利用控制单元调整钱氏搜索单元的最大纠正时间,以对接收的读矢量的数据部分和奇偶校验部分执行钱氏搜索。
本发明总构思的示范性实施例还可以提供一种控制存储***的方法,该存储***具有经由至少一个信道耦接到至少一个存储设备的控制器,该方法包括:确定由控制器经由至少一个信道接收的用于从至少一个存储设备读取数据的读矢量的估计的错误的数目和错误位置信息;以及根据估计的错误的数目和确定的错误位置信息来调整搜索读矢量的错误位置的存储***的钱氏搜索单元的每循环功耗和最大纠正时间中的至少一个。
本发明总构思的示范性实施例还可以提供一种存储***的控制器,该存储***具有经由至少一个信道耦接到该控制器的至少一个存储设备,该控制器包括:该控制器的纠错码解码器,确定由控制器经由至少一个信道接收的用于从至少一个存储设备读取数据的读矢量的估计的错误的数目和错误位置信息;和该纠错码解码器的控制单元,根据估计的错误的数目和确定的错误位置信息来调整搜索读矢量的错误位置的存储***的钱氏搜索单元的每循环功耗和最大纠正时间中的至少一个。
附图说明
通过以下结合附图对实施例的描述,本发明总构思的这些和/或其它方面和优点将变得清楚以及更容易理解,其中:
图1是示出了根据本发明总构思的示范性实施例的存储***的框图;
图2是示出了根据本发明总构思的示范性实施例的图1中的控制器的操作方法的流程图;
图3是示出了根据本发明总构思的示范性实施例的图2中的编码写数据矢量的操作的流程图;
图4是示出了根据本发明总构思的示范性实施例的码矢量和读矢量的图;
图5是根据本发明总构思的示范性实施例的利用被控制的每循环功耗解码读矢量的操作的流程图;
图6是示出了根据本发明总构思的示范性实施例的图1中的纠错码(ECC)解码器的框图;
图7是示出了根据本发明总构思的示范性实施例的校验子(syndrome)计算方法的流程图;
图8是示出了根据本发明总构思的示范性实施例的错误位置多项式计算方法的流程图;
图9是示出了根据本发明总构思的示范性实施例的钱氏搜索方法的流程图;
图10是示出了根据本发明总构思的示范性实施例的图6中的钱氏搜索单元的图;
图11是示出了根据本发明总构思的示范性实施例的根据四分之一、一半和完全操作模式的钱氏搜索单元的操作的图;
图12是示出了根据本发明总构思的示范性实施例的钱氏搜索操作模式确定方法的流程图;
图13是示出了根据本发明总构思的示范性实施例的在钱氏搜索中确定奇偶校验搜索的方法的流程图;
图14是示出了根据本发明总构思的示范性实施例的在省略对读矢量RV的奇偶校验部分的钱氏搜索时根据四分之一、一半和完全操作模式的钱氏搜索单元的操作的图;
图15和15A是示出了根据本发明总构思的示范性实施例中的错误的数目的纠错解码循环的图;
图16是示出了根据本发明总构思的示范性实施例的纠错解码操作的时序图;
图17是示出了根据本发明总构思的示范性实施例的纠错解码操作的时序图;
图18是示出了根据本发明总构思的示范性实施例的图1中的控制器的操作方法的流程图;
图19是示出了根据本发明总构思的示范性实施例的调整最大错误搜索时间和解码读矢量的操作的流程图;
图20是示出了根据本发明总构思的示范性实施例的图1中的存储***的应用的框图;和
图21是示出了根据本发明总构思的示范性实施例的包括图20中的存储***的计算***的框图。
具体实施方式
在下文中将参考显示本发明构思的实施例的附图更充分地描述本发明总构思。然而,本发明构思可以被实现为许多不同的形式并且不应当被理解为限于这里阐明的实施例。相反,提供这些实施例以使得本公开将是彻底的并且完整的,并且将向本领域技术人员完全传达本发明构思的范围。在附图中,为了清楚,层和区域的大小和相对大小可以被放大。类似的数字始终指代类似的元素。
应当理解,尽管术语第一、第二、第三等在这里可以用来描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应该被这些术语限制。这些术语仅仅用于将一个元件、组件、区域、层或部分与另一个区域、层或部分区分。因而,下面讨论的第一元件、组件、区域、层或部分可以被称为第二元件、组件、区域、层或部分,而不脱离本发明构思的教导。
这里可以使用空间相对术语,诸如“在...之下”、“下面”、“下方”、“之下”、“上方”、“向上”等等,以便于用于描述图中所示的一个元件或特征与另一个元件或特征的关系的描述。应当理解,空间相对术语是用来涵盖除了图中描述的方向之外的使用中或操作中的设备的不同的方向。例如,如果图中的设备被翻转,则被描述为在其它元件或特征“下面”或“在...之下”或“之下”的元件将在其它元件或特征“上方”。因而,示范性术语“下面”和“之下”可以涵盖上方和下方的方向二者。设备可以具有不同的方向(旋转90度或在其它方向),相应地解释这里使用的空间相对描述。此外,还将理解,当层被称为在两层“之间”时,在两层之间可以仅存在一层,或也可以存在一个或多个***层。
这里使用的术语仅仅用于描述特定实施例的目的,而不意欲限制本发明构思。这里使用的单数形式“一”、“一个”和“该”意欲也包括复数形式,除非上下文明显指示。还应该理解,在本说明书中使用的术语“包括”和/或“包含”指定所述特征、整数、步骤、操作、元件和/或组件的存在,但是不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或它们的组合的存在或添加。这里使用的术语“和/或”包括相关列出的项中的一个或多个的任意和所有组合。
应当理解,当元件或层被称为“在上”、“连接到”、“耦接到”或“相邻于”另一个元件或层时,它可以直接在其它元件或层上、连接到、耦接到或相邻于其它元件或层,或可以存在***元件或层。相反,当元件被称为直接在另一个元件或层上或“直接连接到”、“直接耦接到”或“仅仅相邻于”另一个元件或层时,不存在***的元件或层。
除非特别定义,否则这里使用的所有术语(包括技术和科学术语)具有本发明构思所属的领域的普通技术人员所通常理解的含义。还应当理解,诸如在通常使用的词典中定义的那些术语应当被解释为具有与相关领域的背景下的含义一致的含义,并且不会被在理想化或过度正式的意义上解释,除非这里明确说明。
图1是示出了根据本发明总构思的示范性实施例的存储***的框图。参考图1,存储***1000可以包括存储设备100和控制器200。
存储设备100可以根据控制器200的控制操作。存储设备100可以存储从控制器200输入的码矢量CV。存储设备100可以读取存储的矢量以将它作为读矢量RV输出到控制器200。存储设备100可以被配置为删除存储的矢量。存储设备100可以包括诸如SRAM、DRAM、SDRAM等之类的易失性存储设备或诸如ROM、PROM、EPROM、EEPROM、闪速存储器、PRAM、MRAM、RRAM、FRAM等等之类的非易失性存储设备。
控制器200可以与存储设备100耦接。也就是说,控制器200可以经由无线和/或有线通信链路耦接到存储设备100。控制器200可以响应于来自于主机10的请求接入存储设备100。主机10可以可通信地耦接到控制器200,并且可以包括处理器、计算器、可编程逻辑设备、现场可编程门阵列和集成电路、便携式媒体播放器、机顶盒、服务器、蜂窝电话、个人数字设备、和/或任何其它合适的执行本发明总构思的示范性实施例的主机。控制器200可以包括ECC编码器300和ECC解码器400。
ECC编码器300可以从主机10接收写数据矢量WDV以及可以将输入的写数据矢量WDV编码为码矢量CV。码矢量CV可以被发送给存储设备100。ECC解码器400可以从存储设备100接收读矢量RV。ECC解码器400可以纠正读矢量RV的错误。ECC解码器400可以从纠错后的读矢量中提取纠错后的数据矢量CDV,以将提取的纠错后的数据矢量CDV发送到主机10。
控制器200可以根据各种通信协议与主机10通信。例如,可以根据诸如USB(通用串行总线)协议、MMC(多媒体卡)协议、PCI(***元件互连)协议、PCI-E(特快PCI)协议、ATA(高级技术连接)协议、串行ATA协议、并行ATA协议、SCSI(小型计算机小接口)协议、ESDI(增强小型磁盘接口)协议、IDE(集成驱动器电子电路)协议和火线之类的各种通信协议中的至少一个与主机10通信。
控制器200和存储设备100可以被集成在单个半导体设备中。控制器200和存储设备100可以被集成在单个半导体设备中以形成固态驱动器(SSD)。控制器200和存储设备100可以被集成在单个半导体设备中以形成存储卡。例如,控制器200和存储设备100可以被集成在单个半导体设备中以形成存储卡,诸如PC(PCMCIA)卡、CF卡、SM(或SMC)卡、存储棒、多媒体卡(MMC、RS-MMC、MMCmicro)、安全卡(SD、miniSD、microSD、SDHC)、通用闪速存储器(UFS)设备等等。
在本发明总构思的示范性实施例中,存储***1000可以被用作和/或可通信地耦接到计算机、便携式计算机、超移动PC(UMPC)、工作站、上网本、PDA、网络平板、无线电话、移动电话、智能电话、电子书、PMP(便携式多媒体播放器)、数字照相机、数字音频记录器/播放器、数字图片/视频记录器/播放器、便携式游戏机、导航***、黑匣子、3维电视机、能够在无线环境中发送和接收信息的设备、组成家庭网络的各种电子设备中的一个、组成计算机网络的各种电子设备中的一个、组成远程信息(telematics)网络的各种电子设备中的一个、RFID(射频识别)、或可以是计算***的各种电子设备中的一个。
在本发明总构思的示范性实施例中,存储设备100或存储***1000可以被各种类型的包装来封装,诸如封装上封装(PoP)、球栅阵列(BGA)、芯片级封装(CSP)、塑性引线芯片载体(PLCC)、塑料双列直插式封装(PDI2P)、晶片封装中的管芯、晶片模板中的管芯、板上芯片(COB)、陶瓷双列直插式封装(CERDIP)、塑料度量方形扁平封装(MQFP)、薄方形扁平封装(TQFP)、小外形(SOIC)、收缩的小外形封装(SSOP)、薄的小外形(TSOP)、封装中***(SIP)、多芯片封装(MCP)、晶片级制造封装(WFP)、晶片级处理的堆封装(WSP)等等。
图2是示出了根据本发明总构思的示范性实施例的图1中的控制器的操作方法的流程图。参考图1和2,在操作S110中,ECC编码器300可以将写数据矢量WDV编码为码矢量CV。在操作S120中,码矢量CV可以被写入存储设备100中。
在操作S130中,可以从存储设备100读取读矢量RV。在操作S140中,ECC解码器400可以根据读矢量RV的错误的数目调整每循环功耗并且可以纠正读矢量RV的错误。以下将顺序地更完全地描述操作S110和S140。
图3是示出了图2中的编码写数据矢量WDV的操作S110的流程图。参考图1和3,在操作S210中,ECC编码器300可以接收写数据矢量WDV。例如,可以从外部主机(例如,图1示出的主机10)接收写数据矢量WDV。可以由控制器200从存储设备100读取读矢量RV,可以(例如由ECC解码器400)纠正读矢量RV的错误,可以由控制器200从读矢量RV提取纠错后的数据矢量CDV,以及提取的纠错后的数据矢量CDV可以被用作写数据矢量WDV。
在操作S220中,ECC编码器300可以将生成矩阵G和写数据矢量WDV相乘。例如,生成矩阵G可以是BCH(Bose-Chaudhuri-Hocquenghem)码的生成矩阵G。相乘结果可以是码矢量CV。
图4是示出了根据本发明总构思的示范性实施例的码矢量和读矢量的图。参考图4,码矢量CV可以包括写数据矢量WDV和奇偶校验矢量PV。奇偶校验矢量PV可以是循环冗余检验码(CRCC)。读矢量RV可以包括读数据矢量RDV和读奇偶校验矢量RPV。当写数据矢量WDV被写入存储设备100中然后从存储设备100读取时,读数据矢量RDV可以是读取结果。当读奇偶校验矢量RPV被写入存储设备100中然后从存储设备100读取时,读奇偶校验矢量RPV可以是读取结果。
图5是示出了利用被控制的每循环功耗解码读矢量的操作S140的流程图。参考图1和5,在操作S310中,读矢量RV可以由控制器200接收到。在操作S320中,可以根据读矢量RV计算校验子S(x)。ECC解码器400可以根据输入的读矢量RV计算校验子S(x)。如图7所述以及如下详细描述,可以通过将读矢量RV与奇偶校验矩阵相乘来计算校验子S(x)。在操作S330中,可以(例如由ECC解码器400和/或控制器200)确定校验子S(x)是否为0。如果校验子S(x)是0,则在读矢量RV中不存在错误。在这种情况下,ECC解码器400可以结束纠错操作。如果确定校验子S(x)不为0,则可以执行操作S340。
在操作S340中,可以计算读矢量RV的错误位置多项式Λ(x)。ECC解码器400可以基于计算的校验子S(x)计算错误位置多项式Λ(x),如图8所示以及如下面详细描述。
在操作S350中,可以由错误位置多项式Λ(x)估计错误的数目。例如,ECC解码器400可以根据错误位置多项式Λ(x)的最高次(degree)的系数(index)估计读矢量RV的错误的数目。也就是说,如果错误位置多项式是Λ(x)=Λ01X12X2+...+Λ64X64,则根据错误位置多项式Λ(x)的最高次的系数估计的错误的数目可能是64。
在操作S360中,可以根据估计的错误的数目调整每循环功耗。例如,当读矢量RV中的错误的数目减小时,ECC解码器400可以降低每循环功耗。例如ECC解码器400可以通过调整要同时检测的错误位的数目来降低每循环功耗。如至少图11所示以及如下详细所述,可以通过选择半操作模式和/或四分之一操作模式而不是完全操作模式来调整要同时检测的错误位的数目。也就是说,与完全操作模式相比,在以一半搜索模式操作时每循环同时搜索位的数目的一半。类似地,与在完全操作模式中相比,在四分之一搜索模式中可以同时搜索位的数目的四分之一。如下详细描述,当读矢量中的错误的数目增加分别超过至少一个预定的阈值错误的数目时,可以选择半操作模式和/或四分之一操作模式。因而,当读矢量中的错误的数目大于至少一个预定阈值时,在一半和/或四分之一操作模式中同时搜索的位的数目小于在完全搜索模式中,并且一半和/或四分之一搜索模式的功耗小于完全搜索模式的功耗。
在操作S370中,可以根据调整的每循环功耗搜索读矢量RV中的错误,以及可以纠正搜索的错误。错误可以由钱氏搜索单元(例如,图6所示以及下面描述的钱氏搜索单元440)搜索,以及搜索的错误可以由纠错单元450纠正,如下详细所述。
图6是示出了根据本发明总构思的示范性实施例的图1中的ECC解码器400的框图。参考图6,ECC解码器400可以包括缓冲器410、校验子计算单元420、关键方程求解(KES)单元430、钱氏搜索单元440、纠错单元450、多路复用器460和控制单元470。
缓冲器410可以存储从存储设备100读取的读矢量RV。存储在缓冲器410中的读矢量RV可以被输出到纠错单元450和多路复用器460。
校验子计算单元420可以根据从存储设备100读取的读矢量RV计算校验子S(x)。校验子计算单元420可以例如通过将接收的读矢量与奇偶校验矩阵相乘来计算校验子S(x),如下面参考图7详细描述的。计算的校验子S(x)可以被输出到KES单元430。当计算的校验子S(x)为0时,校验子计算单元420可以激活要被提供给控制单元470的控制信号NES。
KES单元430可以根据从校验子计算单元420接收的计算的校验子S(x)计算错误位置多项式Λ(x)。KES单元430可以通过如下详细所述的图8所示的方法计算错误位置多项式Λ(x)。计算的错误位置多项式Λ(x)还可以被输出到钱氏搜索单元440。KES单元430可以将错误位置多项式Λ(x)或关于错误位置多项式Λ(x)的系数的信息输出到控制单元470。例如,错误位置多项式Λ(x)的最高次(阶)的系数可以被输出到控制单元470。
钱氏搜索单元440可以基于从控制单元470接收的信息和计算的错误位置多项式Λ(x)搜索读矢量RV的错误位置。例如,钱氏搜索单元440可以基于KES单元430提供的信息搜索计算的错误位置多项式Λ(x)。搜索结果可以与读矢量RV的错误位置对应。也就是说,搜索读矢量RV的错误位置的操作可以包括搜索错误位置多项式Λ(x)以及根据搜索结果确定读矢量RV的错误位置。也就是说,可以确定读矢量RV中的错误的位置。关于读矢量RV的错误位置的信息可以作为错误位置信息ELI被输出到纠错单元450。
纠错单元450可以使用错误位置信息ELI纠正存储在缓冲器410中的读矢量RV的错误。例如,纠错单元450可以反转读矢量RV的位当中的与错误位置信息ELI对应的位(例如,将‘0’位改变到‘1’位,或将‘1’位改变到‘0’位)。纠错单元450的输出可以被提供给多路复用器460。
多路复用器460可以根据控制单元470的控制将从缓冲器410输出的矢量或从纠错单元450输出的矢量选择为纠错后的数据矢量CDV。也就是说,控制单元470可以将选择信号SEL提供给多路复用器460,以控制从缓冲器410输出的数据矢量或从纠错单元450输出的数据矢量的选择。
控制单元470可以控制如图1和6所示的ECC解码器400的操作。控制单元470可以从校验子计算单元420接收控制信号NES。当控制信号NES被激活时,即,当计算的校验子S(x)为0时,控制单元470可以控制选择信号SEL以使得多路复用器460选择纠错单元450的输出(例如,选择来自于缓冲器410的读矢量或来自于纠错单元450的纠错后的数据矢量CDV)。
控制单元470可以使用从KES单元430传送的错误位置多项式Λ(x)或从KES单元430接收的关于错误位置多项式Λ(x)的信息测量和/或估计读矢量RV的错误的数目。例如,控制单元470可以将错误位置多项式Λ(x)的最高次的系数估计为读矢量RV的错误的数目(例如,如果错误位置多项式Λ(x)=Λ01X12X2+...+Λ64X64,则根据错误位置多项式Λ(x)的最高次的系数的估计的错误的数目可以是64)。根据估计的错误的数目,控制单元470可以调整钱氏搜索单元440的每循环功耗。当估计的错误的数目增大时,控制单元470例如可以降低钱氏搜索单元440的每循环功耗。在本发明总构思的示范性实施例中,控制单元470可以通过调整要由钱氏搜索单元440同时搜索的读数据矢量的位的数目来调整钱氏搜索单元440的每循环功耗。
图7是示出了根据本发明总构思的示范性实施例的校验子计算方法的流程图。图6所示的校验子计算单元420可以进行操作以便执行图7所示的校验子计算方法。参考图6和7,在操作S410中,可以接收读矢量RV(例如,读矢量可以由图1所示的控制器200接收到)。例如,可以将读矢量RV从存储设备100提供给校验子计算单元420。
在操作S420中,读矢量RV可以与奇偶校验矩阵HT相乘。校验子计算单元420可以存储要与读矢量RV相乘的奇偶校验矩阵HT。校验子计算单元420可以将先前存储的奇偶校验矩阵HT与从存储设备100接收的读矢量RV相乘。奇偶校验矩阵HT和读矢量RV的相乘结果可以是校验子S(x)。
操作S430可以确定相乘结果,即校验子S(x)是否为0。如果确定相乘结果,即校验子S(x)不为0(即,S(x)是非零值),则可以在操作S440输出校验子S(x)。如果确定相乘结果,即校验子S(x)为0,则可以在操作S450中激活控制信号NES。
图6所示的校验子计算单元420可以确定计算的校验子S(x)是否为0。如果计算的校验子S(x)非零,则校验子计算单元420可以将计算的校验子S(x)输出到KES单元430。如果计算的校验子S(x)为0,则校验子计算单元420可以激活要由控制单元470接收的控制信号NES。
下面将使用以下等式描述校验子计算方法。码矢量CV可以由以下等式1表示,其中WDV是写数据矢量,G是生成矩阵(例如,BCH码的生成矩阵,如上所述)。
CV=WDV×G  (1)
从存储设备100读取的读矢量RV可以包括错误。包括错误的读矢量RV可以由以下等式2表示,其中WDV是写数据矢量,G是生成矩阵,E是错误矢量。
RV=WDV×G+E(2)
读矢量RV可以与奇偶校验矩阵HT相乘。相乘结果可以由以下等式表示,其中WDV是写数据矢量,G是生成矩阵,E是错误矢量。
RV×HT=WDV×G×HT+E×HT    (3)
可以确定生成矩阵G和奇偶校验矩阵HT满足以下等式的关系。
G×HT=0  (4)
因此,以下等式5可以通过将等式4带入到等式3中获得。
RV×HT=E×HT  (5)
相乘结果可以是校验子S(x)。如果校验子S(x)是0,则可以确定不存在错误。如果校验子S(x)非零,则可以确定存在错误。
图8是示出了根据本发明总构思的示范性实施例的错误位置多项式(Λ(x))计算方法的流程图。图6所示的KES单元430可以进行操作以便根据图8所示的方法计算错误位置多项式Λ(x)。如下面详细描述的,可以迭代地计算错误位置多项式的系数以确定具有‘0’值的系数的数目,同时零值的系数的数目的计数小于阈值。图6所示的控制单元470可以根据具有‘0’值的系数的数目选择钱氏搜索单元440的操作模式(例如,完全搜索模式、一半搜索模式、四分之一搜索模式)。应当注意,搜索模式不局限于完全、一半或四分之一,但是可以被确定为根据期望的功耗期望的任何分数搜索模式。参考图6和8,在操作S510中,零计数ZC和变量n可以被重置。例如,KES单元430可以重置零计数ZC和变量n。如下详细地讨论的,当错误位置多项式Λ(x)的计算的系数Λn为0时,可以将零计数ZC增加1,并且如果零计数ZC小于第一阈值TV1或计算的系数Λn非零,则可以增加变量n和/或将变量n增长。
在操作S520中,可以使用校验子S(x)和前一操作的系数Λn-1计算差。如果前一操作的系数Λn-1不存在,即如果计算第一个系数Λ0,则可以根据校验子S(x)计算差。可以由KES单元430计算差。
在操作S530中,可以根据计算的差计算系数Λn。可以由KES单元430计算系数Λn
在操作S540中,KES单元430可以确定计算的系数Λn是否为0。在操作S550中,当计算的系数Λn为0时,可以增加零计数ZC。在操作S560中,KES单元430可以确定零计数ZC是否等于或大于第一阈值TV1。也就是说,KES单元430可以确定具有零值的计算的系数Λn的数目是否大于或等于第一阈值TV1。如果零计数ZC等于或大于第一阈值TV1,则可以结束对错误位置多项式Λ(x)的计算。如果零计数ZC小于第一阈值TV1或计算的系数Λn非零,则在操作S570中,变量n可以增加。当增加n值和/或将n值增长时,该方法可以返回到操作S520。
也就是说,直到指示计算的系数Λn为0的计数大于或等于第一阈值TV1,KES单元430可以增加变量n并且可以迭代地计算错误位置多项式Λ(x)的系数Λn。计算的系数Λn可以是错误位置多项式Λ(x)的次n的系数。在本发明总构思的示范性实施例中,错误位置多项式可以由以下等式6表示。
Λ(x)=Λo1x+Λ2x2+…+Λnxn  (6)
在本发明总构思的示范性实施例中,第一阈值TV1可以是3。也就是说,当错误位置多项式Λ(x)的系数被计算为0三次或更多次时,KES单元430可以结束错误位置多项式Λ(x)的计算并且可以估计阶的数目。
错误位置多项式Λ(x)的根可以指示读矢量RV的错误位置。也就是说,读矢量RV可以包括与错误位置多项式Λ(x)的根的数目对应的错误。下面将参考图9和10详细描述与根对应的错误的确定。错误位置多项式Λ(x)的最高次的系数(具体地,具有非零的系数的最高次的系数)可以指示错误的数目。也就是说,如果错误位置多项式是Λ(x)=Λ01X12X2+...+Λ64X64,错误位置多项式Λ(x)的最高次的系数可以是64,其可以指示64个错误。
在本发明总构思的示范性实施例中,可以根据BM(Berlekamp-Massey)算法或ME(修改的欧几里得)算法进行关键方程求解(KES)计算。
图9是示出了根据本发明总构思的示范性实施例的钱氏搜索方法的流程图。图6所示的ECC解码器的钱氏搜索单元440可以操作以便执行图9所示的方法。参考图6和9,在操作S610中,可以根据确定的错误的数目选择要在由ECC解码器400接收到的读矢量中同时搜索的位的数目。控制单元470可以根据从KES单元430输入的信息确定读矢量RV中的错误的数目。也就是说,KES单元430可以计算要被提供给钱氏搜索单元440的错误位置多项式Λ(x),并且还确定具有0值的错误位置多项式Λ(x)的系数的数目。控制单元470可以基于确定的和/或估计的读矢量中的错误的数目选择要被同时搜索的读矢量的位的数目。
在操作S620中,可以根据选择的结果调整搜索方案。例如,控制单元470可以控制钱氏搜索单元440以便根据与要被同时搜索的选择的位的数目对应的搜索方案进行搜索操作。如下详细讨论的,控制单元470可以控制钱氏搜索单元440例如以完全搜索模式、一半搜索模式或四分之一搜索模式操作。然而,搜索模式的分数值不局限于这些值,并且可以依照要求调整。钱氏搜索单元440在以一半搜索模式操作时可以同时搜索在以完全搜索模式操作时接收的读矢量的位的数目的一半。钱氏搜索单元440在以四分之一搜索模式操作时可以同时搜索在以完全搜索模式操作时接收的读矢量的位的数目的四分之一。
钱氏搜索单元440的功耗可以根据要被同时搜索的读矢量的位的数目而调整。在本发明总构思的示范性实施例中,操作S610和S620可以是调整每循环功耗的图5中的操作S360的部分或全部。
在图9所示的操作S630中,可以由钱氏搜索单元440执行正向钱氏搜索操作。可以从读矢量RV的数据部分(例如,图4所示的读矢量RV的读数据矢量RDV)的一端的第一个位到读矢量的奇偶校验部分(例如,图4所示的读矢量RV的读奇偶校验矢量RPV)的开头执行正向钱氏搜索操作。在钱氏搜索操作中,可以搜索读矢量RV的错误位置。可以根据同时搜索的在操作S610中选择的位的数目来执行钱氏搜索操作。由钱氏搜索单元440执行的钱氏搜索操作可以由控制单元470控制以便搜索读矢量的数据部分或读矢量的数据和奇偶校验部分。
钱氏搜索单元440可以对由KES单元430提供的错误位置多项式Λ(x)执行搜索。钱氏搜索单元440可以搜索错误位置多项式Λ(x)的根。钱氏搜索单元440的搜索操作可以与从读矢量RV的数据部分(例如,图4所示的红色矢量RV的读数据矢量RV)的一端的第一个位开始的以根据读矢量的选择的位的数目确定的单位搜索错误位置的操作对应。如下详细描述,钱氏搜索单元440可以按照不同的模式操作,诸如例如完全操作模式(即,完全搜索模式)、一半操作模式(即,一半搜索模式)和四分之一操作模式(即,四分之一搜索模式)。要在读矢量的数据部分中搜索的单位位数可以根据选择的操作模式而不同。如例如图11所示,在四分之一操作模式中搜索的单位位数比在一半操作模式或完全操作模式中的单位位数少。
在操作S640中,可以根据搜索结果确定错误位置。钱氏搜索单元440可以至少根据错误位置多项式Λ(x)的搜索的根来确定读矢量RV的错误位置。下面至少参考图10详细地讨论读矢量的错误位置的确定。钱氏搜索单元440可以根据确定的错误位置输出错误位置信息(ELI)。
错误位置多项式Λ(x)的根可以通过由图6所示的钱氏搜索单元440运行钱氏搜索来获得。在本发明总构思的示范性实施例中,当错误位置多项式Λ(x)满足以下等式7时,基本元素α的平方(square)数αi可以是错误位置多项式Λ(x)的根。
Λ(αi)=Λ01αi2α2i+...+Λnαni=0  或   (7)
Λ1αi2α2i+...+Λnαni=-Λ0
错误位置多项式Λ(x)的根可以由基本元素α的索引(index)形式表示。读矢量RV的错误位置可以是错误位置多项式Λ(x)的根的索引的反转值。例如,当错误位置多项式Λ(x)的根是(α-k)时,读矢量RV的第(k+1)位可以是错误位。具体地,从读矢量RV的奇偶校验部分(例如,读矢量RV的读奇偶校验矢量RPV)的一端开始的第(k+1)位可以是错误位。当读矢量RV具有c位的长度时,错误位置多项式Λ(x)的根可以是α0和αqni之间的值。这里,c位长度的‘c’可以指示读矢量RV的长度(即,读矢量RV的位的数目)。下面至少参考图10详细地说明读矢量RV的错误位置的确定。
错误位置多项式Λ(x)的根可以通过钱氏搜索单元440运行钱氏搜索来搜索。也就是说,读矢量RV的错误位置可以根据钱氏搜索结果来确定。钱氏搜索单元440可以根据搜索结果将错误位置信息ELI输出到纠错单元450。纠错单元450可以通过反转读矢量的至少数据部分的在由错误位置信息ELI指定的位置处的位来纠正读矢量RV的错误。操作S630和S640可以是在图5中的纠正错误的操作S370的部分或全部。
图10是示出了根据本发明总构思的示范性实施例的图6的钱氏搜索单元440的详图。参考图10,错误位置多项式Λ(x)的系数Λ0到Λn可以分别存储在系数寄存器CR1到CRn中。例如,错误位置多项式Λ(x)的系数Λ0到Λn可以从图6中的KES单元430传送。
种子可以被分别存储在种子寄存器SR1到SRn中。在本发明总构思的示范性实施例中,存储在种子寄存器SR1到SRn中的种子可以是基本元素α的平方数(例如,种子可以是被平方的基本元素α)。存储在种子寄存器SR1到SRn中的种子可以是α-c到α-nc。正如以上的讨论,‘c’可以指示读矢量RV的长度,即读矢量RV的位的数目。
可以利用乘法器(例如,乘子X1、X2、...Xn)将系数寄存器CR1到CRn的输出和种子寄存器SR1到SRn的输出分别相乘。相乘结果可以分别从乘法器X1到Xn传送到系数多路复用器MC1到MCn的第一输入端。延迟器D1到Dn的输出可以分别被提供给系数多路复用器MC1到MCn的第二输入端。
系数多路复用器MC1到MCn的每一个可以输出相应的乘法器的输出和相应的延迟器的输出中的一个。系数多路复用器MC1到MCn可以根据图6中的控制单元470的控制而操作。系数多路复用器MC1到MCn的输出可以被传送到并行搜索逻辑441、441j、441k和/或441m。
并行搜索逻辑441可以包括并行搜索寄存器R1到Rn。基本元素α的平方数α,α2,...,αn可以分别被存储在并行搜索寄存器R1到Rn中。在本发明总构思的示范性实施例中,各个项可以分别被存储在并行搜索寄存器R1到Rn中。这里,每一项可以通过从错误位置多项式Λ(x)中去掉常数Λ0、用1替换系数Λ1~Λn、以及代入基本元素α来获得。
并行搜索乘法器(例如,乘法器Xps1、Xps2、...Xpsn;乘法器X1j、X2j、...Xnj;乘法器X1k、X2k、...XnK;和乘法器X1m、X2m、...Xnm)的每一个可以将相应的系数多路复用器MCi(i=1~n)的输出与相应的并行搜索寄存器Ri(例如,并行搜索寄存器R1、R2、...Rn;并行搜索寄存器R1j到Rnj;并行搜索寄存器R1k到R1n;和并行搜索寄存器R1m到R1nm)的输出相乘。并行搜索乘法器(例如,乘法器Xps1、Xps2、...Xpsn)的输出可以由并行搜索逻辑441中的并行搜索加法器(例如,由并行搜索加法器A1)相加。并行搜索乘法器X1j到Xnj、乘法器X1k到XnK、和乘法器X1m到Xnm的输出可以分别由并行搜索加法器Aj、Ak和Am相加。并行搜索加法器A1的输出可以是并行搜索逻辑441的输出Λ1。并行搜索加法器Aj、Ak和Am的输出可以分别是并行搜索逻辑441j、441k和441m的输出Λj、Λk和Λm。
并行搜索逻辑441j(即,以四分之一搜索模式操作的四分之一并行搜索逻辑)可以包括并行搜索寄存器R1j到Rnj。基本元素α的平方数αj,α2j,...,αnj可以分别被存储在并行搜索寄存器R1j到Rnj中。在本发明总构思的示范性实施例中,各个项可以分别被存储在并行搜索寄存器R1j到Rnj中。这里,每一项可以通过从错误位置多项式Λ(x)去掉常数Λ0、用1替换系数Λ1~Λn、以及代入基本元素αj来获得。
(例如,四分之一并行搜索逻辑441j的)四分之一多路复用器MQ1到MQn的每一个可以输出相应的系数多路复用器MCi的输出和零值中的一个。四分之一多路复用器MQ1到MQn可以根据控制单元470的控制而操作。四分之一多路复用器MQ1到MQn的输出可以分别被传送到并行搜索乘法器(例如,并行搜索乘法器X1j、X2j、...Xnj)。
并行搜索乘法器(例如,并行搜索乘法器X1j、X2j、...Xnj)的每一个可以将相应的四分之一多路复用器MQi(例如,MQ1、MQ2、...MQn)的输出与相应的并行搜索寄存器Rij(例如,并行搜索寄存器R1j、R2j、...、Rnj)的输出相乘。并行搜索乘法器(例如,并行搜索乘法器X1j、X2j、...Xnj)的输出可以由并行搜索逻辑441j中的并行搜索加法器Aj相加。并行搜索加法器Aj的输出可以是并行搜索逻辑441j的输出Λj。
并行搜索逻辑441k(即,以一半搜索模式操作的一半并行搜索逻辑)可以包括并行搜索寄存器R1k到Rnk。基本元素α的平方数αk2k,...,αnk可以分别被存储在并行搜索寄存器R1k到Rnk中。在本发明总构思的示范性实施例中,各个项可以分别被存储在并行搜索寄存器R1k到Rnk中。这里,每一项可以通过从错误位置多项式Λ(x)去掉常数Λ0、用1替换系数Λ1~Λn、以及代入基本元素αk来获得。
一半并行搜索逻辑441k的一半多路复用器MH1到MHn的每一个可以输出相应的系数多路复用器MCi(例如,MC1、MC2、...MCn)的输出和零值中的一个。一半多路复用器MH1到MHn可以根据控制单元470的控制而操作。一半多路复用器MH1到MHn的输出可以分别被传送到并行搜索乘法器(例如,乘法器X1k、X2k和Xnk)。
并行搜索乘法器(例如,乘法器X1k、X2k和Xnk)的每一个可以将相应的一半多路复用器MHi的输出与相应的并行搜索寄存器Rij(例如,并行搜索寄存器R1k、R2k和Rnk)的输出相乘。并行搜索乘法器(例如,并行搜索乘法器X1k、X2k和Xnk)的输出可以由并行搜索逻辑441k中的并行搜索加法器Ak相加。并行搜索加法器的输出可以是并行搜索逻辑441k的输出Λk。
并行搜索逻辑441m(例如,完全并行搜索逻辑)可以包括并行搜索寄存器R1m到Rnm。基本元素α的平方数αm2m,...,αnm可以分别被存储在并行搜索寄存器R1m到Rnm中。在示范性实施例中,各个项可以分别被存储在并行搜索寄存器R1m到Rnm中。这里,每一项可以通过从错误位置多项式Λ(x)去掉常数Λ0、用1替换系数Λ1~Λn、以及代入基本元素αm来获得。
完全多路复用器MF1到MFn的每一个可以输出相应的系数多路复用器MCi(例如,MC1、MC2、...MCn)的输出和零值中的一个。完全多路复用器MF1到MFn可以根据控制单元470的控制而操作。完全多路复用器MF1到MFn的输出可以分别被传送到并行搜索乘法器(例如,并行搜索乘法器X1m、X2m和Xnm)。
并行搜索乘法器(例如,并行搜索乘法器X1m、X2m和Xnm)的每一个可以将相应的完全多路复用器MFi(例如,MF1、MF2、...、MFn)的输出与相应的并行搜索寄存器Rim的输出相乘。并行搜索乘法器(例如,并行搜索乘法器X1m、X2m和Xnm)的输出可以由并行搜索逻辑441m中的并行搜索加法器相加。并行搜索加法器Am的输出可以是并行搜索逻辑441m的输出Λm。
并行搜索逻辑441j到441m中的并行搜索乘法器(例如,乘法器Xps1、Xps2、...Xpsn;乘法器X1j、X2j、...Xnj;乘法器X1k、X2k、...XnK;和乘法器X1m、X2m、...Xnm)的输出可以被传送到多路复用器M1到Mn。例如,每个与并行搜索寄存器R1j、R1k和R1m连接的并行搜索乘法器的输出可以被传送到多路复用器M1。每个与并行搜索寄存器Rnj、Rnk和Rnm连接的并行搜索乘法器的输出可以被传送到多路复用器Mn。
多路复用器M1到Mn的每一个可以根据控制单元470的控制选择输入信号的一个。例如,多路复用器M1可以选择每个与并行搜索寄存器R1j、R1k和R1m连接的并行搜索乘法器(例如,乘法器Xps1、X1j、X1k、X1m)的输出的一个。多路复用器Mn可以选择每个与并行搜索寄存器Rnj、Rnk和Rnm连接的并行搜索乘法器(例如,乘法器Xpsn、Xnj、Xnk、Xnm)的输出的一个。多路复用器M1到Mn的输出可以分别被提供给延迟器D1到Dn。
并行搜索逻辑441到441m可以搜索读矢量RV的不同的错误位置。并行搜索逻辑441到441m可以并行(或同时)搜索多个错误位置。钱氏搜索单元440的并行搜索逻辑441到441m可以根据控制单元470的控制被激活或停用。钱氏搜索单元440可以根据控制单元470的控制调整要同时搜索的读矢量的位的数目。也就是说,钱氏搜索单元440可以通过以完全搜索模式、一半搜索模式或四分之一搜索模式操作要搜索的读矢量的位的数目,如下详细描述。钱氏搜索单元440可以根据控制单元470的控制调整每循环功耗或最大纠正时间。以下将更完全描述钱氏搜索单元440的操作。
完全搜索模式
当钱氏搜索单元440以完全搜索模式操作时,可以控制并行搜索逻辑441j中的四分之一多路复用器MQ1到MQn选择系数多路复用器MC1到MCn的输出。可以控制并行搜索逻辑441k中的一半多路复用器MH1到MHn选择系数多路复用器MC1到MCn的输出。可以控制并行搜索逻辑441m中的完全多路复用器MF1到MFn选择系数多路复用器MC1到MCn的输出。多路复用器M1到Mn可以选择并行搜索逻辑441m中的并行搜索多路复用器的输出。
在第一循环中,可以控制系数多路复用器MC1到MCn选择乘法器(例如,乘法器X1、X2、...、Xn)的输出。系数多路复用器MC1到MCn的输出可以被传送到平行搜索逻辑441到441m。此时,并行搜索逻辑441到441m的输出Λ1、Λj、Λk和Λm可以如以下表1所示。
表1
Figure BDA00001618579200211
并行搜索逻辑441的输出Λ1可以通过将α-(c-1)代入到错误位置多项式Λ(x)中来获得。并行搜索逻辑441可以搜索读矢量RV的第(c-1)位是否是错误的。具体地,并行搜索逻辑441可以检测在从读矢量RV的数据部分(例如,图4所示的读矢量RV的读数据矢量RDV)的一端开始的第一位处存在的错误。当并行搜索逻辑441的输出Λ1为-Λ1时,它可以指示存在错误。
并行搜索逻辑441j的输出Λj可以通过将α-(c-j)代入到错误位置多项式Λ(x)中来获得。并行搜索逻辑441j可以搜索读矢量RV的第(c-j)位是否是错误的。具体地,并行搜索逻辑441j可以检测在从读矢量RV的数据部分(例如,图4所示的读矢量RV的读数据矢量RDV部分)的一端开始的第j位处存在的错误。当并行搜索逻辑441的输出Λj为-Λ1时,它可以指示存在错误。
并行搜索逻辑441k的输出Λk可以通过将α-(c-k)代入到错误位置多项式Λ(x)中来获得。并行搜索逻辑441k可以搜索读矢量RV的第(c-k)位是否是错误的。具体地,并行搜索逻辑441k可以检测在从读矢量RV的数据部分(例如,图4所示的读矢量RV的读数据矢量RDV部分)的一端开始的第k位处存在的错误。当并行搜索逻辑441m的输出Λk是-Λ1时,它可以指示存在错误。
并行搜索逻辑441m的输出Λm可以通过将α-(c-m)代入到错误位置多项式Λ(x)中来获得。并行搜索逻辑441m可以搜索读矢量RV的第(c-m)位是否是错误的。具体地,并行搜索逻辑441m可以检测在从读矢量RV的数据部分(例如,图4所示的读矢量RV的读数据矢量RDV部分)的一端开始的第m位处存在的错误。当并行搜索逻辑441m的输出Λm是-Λ1时,它可以指示存在错误。
在完全搜索模式的第一循环期间,并行搜索逻辑441到441m可以同时搜索从读矢量RV的数据部分的一端开始的第1、第j、第k和第m位是错误的。
在第二循环中,系数多路复用器MC1到MCn可以选择延迟器D1到Dn的输出。也就是说,并行搜索逻辑441m中的并行搜索寄存器R1m到Rnm的输出可以与在第一循环中并行搜索逻辑441m中的并行搜索乘法器X1m到Xnm的输出相乘。此时,钱氏搜索单元440的输出Λ1、Λj、Λk和Λm可以如以下表2所示。
表2
并行搜索逻辑441的输出Λ1可以通过将α-(c-m-1)代入到错误位置多项式Λ(x)中来获得。并行搜索逻辑441可以搜索读矢量RV的第(m+1)位以确定它是否是错误的。
并行搜索逻辑441j的输出Λj可以通过将α-(c-m-j)代入到错误位置多项式Λ(x)中来获得。并行搜索逻辑441j可以搜索读矢量RV的第(m+j)位以确定它是否是错误的。
并行搜索逻辑441k的输出Λk可以通过将α-(c-m-k)代入到错误位置多项式Λ(x)中来获得。并行搜索逻辑441k可以搜索读矢量RV的第(m+k)位以确定它是否是错误的。
并行搜索逻辑441m的输出Λm可以通过将α-(c-2m)代入到错误位置多项式Λ(x)中来获得。并行搜索逻辑441m可以搜索读矢量RV的第2m位以确定它是否是错误的。
如上所述,在第一循环期间,可以搜索从读矢量RV的数据部分的一端开始的第1、第j、第k和第m位以确定在读矢量RV的这些位中是否存在错误。在第二循环期间,可以搜索从读矢量RV的数据部分的一端开始的第(m+1)、第(m+j)、第(m+k)和2m位以确定在读矢量RV的这些位中是否存在错误。
一半搜索模式
当钱氏搜索单元以一半搜索模式操作时,并行搜索逻辑441j中的四分之一多路复用器MQ1到MQn和一半多路复用器MH1到MHn可以选择系数多路复用器MC1到MCn的输出。并行搜索逻辑441m中的完全多路复用器MF1到MFn可以输出零值。如果并行搜索逻辑441m中的完全多路复用器MF1到MFn输出零值,则并行搜索逻辑441m中的并行搜索乘法器可以输出零值。也就是说,并行搜索逻辑441m可以被停用。因为并行搜索逻辑441m被停用,所以钱氏搜索单元440的功耗可以被最小化。
当钱氏搜索单元440以一半搜索模式操作时,多路复用器M1到Mn可以选择并行搜索逻辑441k中的并行搜索乘法器X1k到Xnk的输出。
在第一循环中,系数多路复用器MC1到MCn可以选择乘法器X1k到Xnk的输出。在一半搜索模式下第一循环的输出可以等于在完全搜索模式下的输出,除了并行搜索逻辑441m被停用。在第一循环,并行搜索逻辑441到441m的输出Λ1、Λj、Λk和Λm可以如以下表3所示。
表3
Figure BDA00001618579200241
在一半搜索模式的第一循环期间,钱氏搜索单元440可以搜索从读矢量RV的数据部分(例如,图4所示读矢量RV的读数据矢量RDV)的一端开始的第1、第j、第k和第m位的错误。
在第二循环中,系数多路复用器MC1到MCn可以选择延迟器D1到Dn的输出。也就是说,并行搜索逻辑441k中的并行搜索寄存器R1k到Rnk的输出可以分别与在第一循环中并行搜索逻辑441k中的并行搜索乘法器X1k到Xnk的输出相乘。此时,钱氏搜索单元440的输出Λ1、Λj、Λk和Λm可以如以下表4所示。
表4
Figure BDA00001618579200251
并行搜索逻辑441的输出Λ1可以通过将α-(c-k-1)代入到错误位置多项式Λ(x)中来获得。并行搜索逻辑441可以搜索读矢量RV的第(k+1)位以确定它是否是错误的。
并行搜索逻辑441j的输出Λj可以通过将α-(c-k-j)代入到错误位置多项式Λ(x)中来获得。并行搜索逻辑441j可以搜索读矢量RV的第(k+j)位以确定它是否是错误的。
并行搜索逻辑441k的输出Λk可以通过将α-(c-2k)代入到错误位置多项式Λ(x)中来获得。并行搜索逻辑441k可以搜索读矢量RV的第2k位以确定它是否是错误的。
如上所述,在第一循环期间,可以搜索从读矢量RV的数据部分的一端开始的第1、第j和第k位是否是错误的。在第二循环期间,可以搜索从读矢量RV的数据部分的一端开始的第(m+1)、第(k+j)和第2k位以确定它们是否是错误的。也就是说,当以一半搜索模式操作时,钱氏搜索单元440可以同时搜索k位。
在本发明总构思的示范性实施例中,可以在并行搜索逻辑441k和441m之间提供一个或多个并行搜索逻辑。当并行搜索逻辑441m被停用时,并行搜索逻辑441k和441m之间的一个或多个并行搜索逻辑可以被停用。
在本发明总构思的示范性实施例中,搜索能力可以是完全搜索模式的搜索能力的一半。也就是说,与完全搜索模式相比,一半搜索模式的搜索能力可以被减半。当以一半搜索模式操作时由钱氏搜索单元440在循环期间同时搜索的读矢量的数据部分的位的数目可以是当以完全搜索模式操作时在钱氏搜索单元440的循环期间同时搜索的读矢量的数据部分的位的数目的一半。
当钱氏搜索单元440以一半搜索模式操作时激活的并行搜索逻辑的数目可以小于当钱氏搜索单元440以完全搜索模式操作时激活的并行搜索逻辑的数目。因此,一半搜索模式的每循环功耗可以小于完全搜索模式的每循环功耗。
四分之一搜索模式
当钱氏搜索单元440以四分之一搜索模式操作时,并行搜索逻辑441j中的四分之一多路复用器MQ1到MQn可以选择系数多路复用器MC1到MCn的输出。并行搜索逻辑441k中的一半多路复用器MH1到MHn和并行搜索逻辑441m中的完全多路复用器MF1到MFn可以输出零值。如果并行搜索逻辑441k中的一半多路复用器MH1到MHn和并行搜索逻辑441m中的完全多路复用器MF1到MFn可以输出零值,则并行搜索逻辑441k和441m中的并行搜索乘法器X1k到Xnk和X1m到Xnm可以输出零值。也就是说,并行搜索逻辑441k和441m可以被停用。因为并行搜索逻辑441k和441m被停用,所以钱氏搜索单元440的功耗可以被最小化。
当钱氏搜索单元440以四分之一搜索模式操作时,多路复用器M1到Mn可以选择并行搜索逻辑441j中的并行搜索乘法器X1j到Xnj的输出。
在第一循环中,系数多路复用器MC1到MCn可以选择乘法器(例如,乘法器X1j到Xnj)的输出。在四分之一搜索模式下第一循环的输出可以等于在完全搜索模式下的输出,除了并行搜索逻辑441k和441m被停用。在第一循环中,并行搜索逻辑441到441m的输出Λ1、Λj、Λk和Λm可以如以下表5所示。
表5
Figure BDA00001618579200261
Figure BDA00001618579200271
在四分之一搜索模式的第一循环期间,钱氏搜索单元440可以搜索从读矢量RV的数据部分(例如,图4所示读矢量RV的读数据矢量RDV)的一端开始的第1和第j位的错误。
在第二循环中,系数多路复用器MC1到MCn可以选择延迟器D1到Dn的输出。也就是说,并行搜索逻辑441j中的并行搜索寄存器R1j到Rnj的输出可以与在第一循环中并行搜索逻辑441j中的并行搜索乘法器X1j到Xnj的输出相乘。此时,钱氏搜索单元440的输出Λ1、Λj、Λk和Λm可以如以下表6所示。
表6
并行搜索逻辑441的输出Λ1可以通过将α-(c-j-1)代入到错误位置多项式Λ(x)中来获得。并行搜索逻辑441可以搜索读矢量RV的第(j+1)位是否是错误的。
并行搜索逻辑441j的输出Λj可以通过将α-(c-2j)代入到错误位置多项式Λ(x)中来获得。并行搜索逻辑441j可以搜索读矢量RV的第2j位是否是错误的。
如上所述,在第一循环期间,可以搜索从读矢量RV的数据侧的一端开始的第1和第j位以确定它们是否是错误的。在第二循环期间,可以搜索从读矢量RV的数据侧的一端开始的第(j+1)和第2j位以确定它们是否是错误的。也就是说,在四分之一搜索模式下,钱氏搜索单元440可以同时搜索j个位。
在本发明总构思的示范性实施例中,可以在并行搜索逻辑441j和441k之间提供一个或多个并行搜索逻辑。当并行搜索逻辑441k被停用时,并行搜索逻辑441j和441k之间的一个或多个并行搜索逻辑可以被停用。
在本发明总构思的示范性实施例中,与一半搜索模式相比,四分之一搜索模式的搜索能力可被减半。当以四分之一搜索模式操作时在钱氏搜索单元440的循环期间同时搜索的读矢量的数据部分的位的数目可以是当以完全搜索模式操作时在钱氏搜索单元440的循环期间同时搜索的读矢量的数据部分的位的数目的四分之一。
在四分之一搜索模式下激活的并行搜索逻辑的数目可以小于在一半搜索模式下激活的并行搜索逻辑的数目。因此,以四分之一搜索模式操作的钱氏搜索单元440的每循环功耗可以小于一半搜索模式的每循环功耗。
钱氏搜索单元440同时要搜索的位的数目可以根据读矢量RV的错误的数目而调整。例如,可以通过利用例如图6所示的控制单元470控制钱氏搜索单元440以便以完全搜索模式、一半搜索模式或四分之一搜索模式或任何其它期望的确定的搜索模式操作,来调整在读矢量RV中要同时搜索的位的数目。因为要同时搜索的位的数目由钱氏搜索单元440调整,所以可以调整每循环功耗。
图11是示出了根据四分之一、一半和完全操作模式的钱氏搜索单元的操作的图。参考图11,当钱氏搜索单元440以四分之一操作模式(即,四分之一搜索模式)操作时,可以从读矢量RV的数据部分(例如,图4和11所示读矢量RV的读数据矢量RDV部分)的一端开始以j位为单位来执行钱氏搜索。当钱氏搜索单元440以一半操作模式(即,一半搜索模式)操作时,可以从读矢量RV的数据部分的一端开始以k位为单位执行钱氏搜索。当钱氏搜索单元440以完全操作模式(即,完全搜索模式)操作时,可以从读矢量RV的数据部分的一端开始以m位为单位执行钱氏搜索。
根据本发明总构思的示范性实施例的钱氏搜索单元440可以从读矢量RV的数据部分(例如,图4和11所示的读矢量RV的读数据矢量RDV部分)的一端开始搜索错误。也就是说,钱氏搜索单元440可以以正向钱氏搜索方式操作。如果执行正向钱氏搜索,则可以从读矢量RV的数据部分的一端开始顺序地确定和纠正错误位置。
图12是示出了根据本发明总构思的示范性实施例的钱氏搜索操作模式确定方法的流程图。参考图6、10和12,操作S710确定检测到的错误的数目是否低于第一错误的数目EN1。如果检测到的错误的数目低于第一错误的数目EN1,则在操作S720中,可以激活完全操作模式(或完全搜索模式)。也就是说,钱氏搜索单元440可以以完全搜索模式操作。当检测到的错误的数目低于第一错误的数目EN1时,控制单元470可以控制钱氏搜索单元44的四分之一多路复用器MQ1到MQn、一半多路复用器MH1到MHn、和完全多路复用器MF1到MFn以便选择系数多路复用器MC1到MCn的输出。多路复用器M1到Mn可以在控制单元470的控制下选择并行搜索逻辑441m中的并行搜索乘法器R1m到Rnm的输出。
如果检测到的错误的数目大于第一错误的数目EN1,则可以执行操作S730,其中确定检测到的错误的数目是否低于第二错误的数目EN2。如果检测到的错误的数目小于或等于第二错误的数目EN2,则在操作S740中可以激活一半操作模式(或一半搜索模式)。也就是说,钱氏搜索单元440可以在操作S740中以一半搜索模式操作。当检测到的错误的数目小于或等于第二错误的数目EN2时,控制单元470可以控制钱氏搜索单元440的四分之一多路复用器MQ1到MQn和一半多路复用器MH1到MHn以便选择系数多路复用器MC1到MCn的输出,以及控制完全多路复用器MF1到MFn以便输出零值。多路复用器M1到Mn可以在控制单元470的控制下选择并行搜索逻辑441k中的并行搜索乘法器X1k到Xnk的输出。
如果检测到的错误的数目大于第二错误的数目EN2,则在操作S750中可以执行四分之一操作模式(或四分之一搜索模式)。控制单元470可以控制四分之一多路复用器MQ1到MQn以便选择系数多路复用器MC1到MCn的输出,以及可以控制一半多路复用器MH1到MHn和完全多路复用器MF1到MFn以便输出零值。多路复用器M1到Mn可以在控制单元470的控制下选择并行搜索逻辑441j中的并行搜索乘法器X1j到Xnj的输出。
在本发明总构思的示范性实施例中,第二错误的数目EN2可以大于第一错误的数目EN1。也就是说,因为读矢量RV中的错误的数目增大,所以控制单元470可以降低在钱氏搜索单元440中要激活的并行搜索逻辑的数目。因为读矢量RV中的错误的数目增大,所以钱氏搜索单元440的每循环功耗可以降低。
在本发明总构思的示范性实施例中,第一错误的数目EN1可以是图1和6中的ECC解码器400的纠错位数的四分之一。第二错误的数目EN1可以是ECC解码器400的纠错位数的一半。
在操作S710到S750中,可以根据检测到的错误的数目选择完全操作模式、一半操作模式或四分之一操作模式。由于同时搜索的位数可以根据完全操作模式、一半操作模式和四分之一操作模式而有区别,因此可以调整每循环功耗。操作S710到S750可以构成参考图9描述的操作S610和S620的部分或全部。
图13是示出了根据本发明总构思的示范性实施例的在钱氏搜索中确定奇偶校验搜索的方法的流程图。也就是说,图13示出了确定在读矢量RV的钱氏搜索期间是否应该搜索读矢量的奇偶校验信息(例如,图4所示的读矢量RV的读奇偶校验矢量RPV)的方法。该方法可以确定是否可以搜索读矢量的读数据部分或是否可以搜索读矢量的读数据和奇偶校验数据。参考图6和13,操作S810可以确定检测和/或估计的错误的数目是否小于或等于第二阈值TV2。如果检测到的错误的数目小于或等于第二阈值TV2,则在操作S820中可以执行对读矢量RV的数据部分的钱氏搜索并且可以省略对它的奇偶校验部分的钱氏搜索。如果检测到的错误的数目大于第二阈值TV2,则在操作S830中可以执行对读矢量RV的数据和奇偶校验部分的钱氏搜索。如图4和11所示,读矢量RV可以包括读数据矢量RDV和读奇偶校验矢量PRV部分。也就是说,当读矢量RV的错误的数目小于或等于第二阈值时,可以对读矢量RV的数据部分执行钱氏搜索,以及当读矢量的错误的数目大于第二阈值时,可以对读矢量RV的数据部分和奇偶校验部分执行钱氏搜索。
当检测到的错误的数目小于或等于(例如,在图13所示的操作S810中确定的以及如上所述的)第二阈值TV2时,控制单元470可以控制钱氏搜索单元440以便对读矢量RV的数据部分执行正向钱氏搜索。当检测到的错误的数目大于第二阈值TV2时,控制单元470可以控制钱氏搜索单元440以便对读矢量RV的数据和奇偶校验部分执行钱氏搜索。
图11示出了对读矢量RV的数据(即,读数据矢量RDV)和奇偶校验部分(即,读奇偶校验矢量RPV)执行钱氏搜索。图14示出了当省略对读矢量RV的奇偶校验部分的钱氏搜索时(即,搜索读数据矢量RDV而不搜索读奇偶校验矢量RPV)根据四分之一、一半和完全操作模式的钱氏搜索单元的操作。
与图11相比,可以不执行对读矢量的奇偶校验部分的钱氏搜索,如图14所示。例如,在四分之一、一半和完全操作模式下,可以省略对读矢量RV的奇偶校验部分(即,读奇偶校验矢量RPV)的钱氏搜索。
当错误位置多项式Λ(x)的最高次的系数Λn为‘0’时,读矢量RV中的错误的数目可以等于或小于(n-1),即如上参考图8所述的Λn-1。也就是说,当错误位置多项式Λ(x)的最高次的系数Λn为‘0’时,可以从读矢量RV获得纠错后的读数据矢量,虽然对读矢量RV的数据部分而不对读矢量RV的奇偶校验部分执行钱氏搜索。
当错误位置多项式Λ(x)的最高次的系数Λn非零时,读矢量RV中的错误的数目可以等于或大于n(其中n是上面参考图8讨论的变量)。可以执行对读矢量RV的钱氏搜索,以及在本发明总构思的示范性实施例中,可以执行附加的错误检测和纠正操作。
当错误位置多项式Λ(x)的最高次的系数Λn为‘0’时,即当错误能够通过钱氏搜索执行的读矢量RV的数据部分的错误搜索被纠正时,可以省略对读矢量RV的奇偶校验部分的钱氏搜索。钱氏搜索所消耗的功率和执行钱氏搜索所花的时间可以通过省略对读矢量RV的奇偶校验部分的钱氏搜索来降低。错误位置多项式Λ(x)的最高次的系数Λn可以用来确定是否省略读矢量RV的读奇偶校验矢量RPV的钱氏搜索。也就是说,在本发明总构思的示范性实施例中,错误位置多项式Λ(x)的最高次的系数Λn可以确定是否执行如图11所示的钱氏搜索,其中搜索读矢量RV的读数据矢量RDV和奇偶校验数据矢量RPV二者,或确定是否执行如图14所示的钱氏搜索,其中仅仅搜索读矢量RV的读数据矢量RDV。
可以提供裕度(margin)以提高ECC解码器400的可靠性。例如,第二阈值TV2可以被设置为3。也就是说,当错误位置多项式Λ(x)的三个最高项的系数Λn、Λn-1和Λn-2为‘0’时,可以省略对读矢量RV的奇偶校验部分的钱氏搜索。第二阈值TV2不局限于3,以及可以选择任何合适的阈值数目以便执行这里公开的本发明总构思的示范性实施例。第二阈值TV2可以根据诸如ECC解码器400的结构、它的可靠性等等之类的各种条件而改变。
图15和15A是示出了根据本发明总构思的示范性实施例中的错误的数目的纠错解码循环的图。在图15和15A二者中,横轴可以指示读矢量RV的错误的数目,以及纵轴可以指示纠错解码循环。如图15所示的变量n可以与ECC解码器400的最大纠错位数对应。
第一条线L1可以示出用于计算错误位置多项式Λ(x)的循环数目。如参考图8所述,可以迭代地执行错误位置多项式Λ(x)的计算,以及当满足特定条件时可以结束该计算。例如,如图8所示,当零计数(即,Λn为零的次数)大于或等于阈值时,错误位置多项式Λ(x)的计算可以结束。用于执行错误位置多项式Λ(x)的计算的循环可以根据读矢量RV的错误的数目的增大而增大,如图15的第一条线L1以及图15A的“Min”线所示,它们示出了错误的数目和纠错解码循环数目之间的线性关系。
第二条线L2可以示出用于执行钱氏搜索的循环数目。在本发明总构思的示范性实施例中,当读矢量RV的错误的数目低于第一错误的数目EN1(例如,n/4,其中n是ECC解码器400的最大纠错位数;参见下表7)时,可以利用钱氏搜索单元440在完全操作模式(或完全搜索模式)下执行钱氏搜索。当读矢量RV的错误的数目大于第一错误的数目EN1(例如,n/4,如下表7所示)并且低于第二错误的数目EN2(例如,n/2,如下表7所示)时,可以利用以一半操作模式(或一半搜索模式)操作的钱氏搜索单元440执行钱氏搜索。当读矢量RV的错误的数目大于第二错误的数目EN2(即,n/2)并且低于n(即,ECC解码器400的最大纠错位数)时,可以利用以四分之一操作模式(或,四分之一搜索模式)操作的钱氏搜索单元440执行钱氏搜索。随着读矢量RV的错误的数目增大,用于执行钱氏搜索的循环数目也可以增大。
如图15A所示,当读矢量RV的错误的数目低于如上所述的第一错误的数目EN1(例如,数目32,如图15A所示)时,可以利用以完全操作模式(或完全搜索模式)的钱氏搜索单元440执行钱氏搜索。例如,可以执行32位的钱氏搜索,如图15A所示的“Max(1)”线所示。当读矢量RV的错误的数目大于第一错误的数目EN1(例如,如图15A所示的数目32)并且低于第二错误的数目EN(例如,如图15A所示的数目48)时,可以利用以一半操作模式(或一半搜索模式)操作的钱氏搜索单元440执行钱氏搜索,如图15A中的“Max(2)”线所示。当选择一半搜索模式时,可以执行16位钱氏搜索(即,其中16位是参考“Max(1)”线示出和描述的32位完全搜索的一半)。当读矢量RV的错误的数目大于第二错误的数目EN2(例如,如图15A所示的数目48)并且低于n(即,ECC解码器400的最大纠错位数,其是如图15A所示的数目64)时,可以利用以四分之一操作模式(或,四分之一搜索模式)操作的钱氏搜索单元440执行钱氏搜索。也就是说,可以由以四分之一操作模式操作的钱氏搜索单元440执行8位钱氏搜索(即,其中8位是完全操作模式的32位搜索的四分之一)。随着读矢量RV的错误的数目增大,用于执行钱氏搜索的循环数目也可以增大。也就是说,如图15A所示,纠错解码循环的数目在“Max(1)”到“Max(3)”线之间增加。
图15所示的第三条线L3可以示出控制器200的数据输入/输出循环。当读矢量RV的错误的数目小于第一错误的数目EN1(例如,n/4,如下表7所示;以及其中EN1是如图15A所示的数目32)时,错误位置多项式Λ(x)的计算循环和钱氏搜索循环可以被设置为小于数据输入/输出循环。当读矢量RV的错误的数目大于第一错误的数目EN1(例如,n/4,如下表7所示;以及其中EN1是如图15A所示的数目32)时,错误位置多项式Λ(x)的计算循环和钱氏搜索循环可以被设置为大于数据输入/输出循环。
例如,当读矢量RV的错误的数目低于第一错误的数目EN1(例如,n/4,如下表7所示;以及其中EN1为如图15A所示的数目32)时,KES单元430可以进行操作以使得错误位置多项式Λ(x)的计算循环被设置为等于或小于数据输入/输出循环。错误位置多项式Λ(x)的计算速度可以等于或快于数据输入/输出速度。也就是说,当读矢量RV的错误的数目低于第一错误的数目EN1(例如,n/4)时,可以支持“运行时”模式(图15和15A中如“运行时”线所示),以使得纠错速度受制于错误位置多项式Λ(x)的计算速度,如下参考图16详细描述。也就是说,“运行时”是指,当读矢量的纠错可能出现时,其中在读矢量可以被纠错以及纠错后的数据矢量CDV可以从控制器200输出之前,计算校验子S(x)、计算错误位置多项式和执行钱氏搜索中不存在延迟。如图16所示,在运行时模式中,在错误位置多项式的计算之后立即执行读矢量的纠错而没有延迟。
当读矢量RV的错误的数目大于第一错误的数目EN1(例如,n/4,如下表7所示;以及其中EN1是如图15A所示的数目32)时,KES单元430可以相对于数据输入/输出循环的数目增大操作循环的数目。如果在读矢量RV的错误的数目低于第一错误的数目EN1(例如,n/4,如下表7所示;以及其中EN1是如图15A所示的数目32)时KES单元430支持运行时模式,则KES单元430的门计数可以减小。
例如,当读矢量RV的错误的数目低于第一错误的数目EN1(例如,n/4,如下表7所示;以及其中EN1是如图15A所示的数目32)时,钱氏搜索单元440可以以完全操作模式(或如15A所示的“Max(1)”线所示的完全搜索模式)操作。在完全操作模式中,钱氏搜索单元440可以进行操作以使得用于执行钱氏搜索的循环数目等于(即,等于,其中Min=如图15A所示的Max)或小于数据输入/输出循环数目。此时,钱氏搜寻速度可以等于、快于或慢于数据输入/输出速度。也就是说,当读矢量RV的错误的数目小于第一错误的数目EN1(例如,n/4;参见下表7)时,可以支持运行时模式以使得纠错速度受制于错误位置多项式Λ(x)的计算速度。在本发明总构思的示范性实施例中,纠错可以与错误位置多项式Λ(x)的计算有关,其中在错误位置多项式Λ(x)的计算之后可以执行纠错。
当读矢量RV的错误的数目大于第一错误的数目EN1(例如,n/4,如下表7所示;以及其中EN1是如图15A所示的数目32)并且小于第二错误的数目EN2(例如,n/2,如下表7所示;以及其中EN2是如图15A所示的数目48)时,钱氏搜索单元440可以以一半操作模式执行钱氏搜索。如图15A中的线“Max(2)”所示,可以由钱氏搜索单元440执行16位钱氏搜索。当读矢量RV的错误的数目大于第二错误的数目EN2(例如,n/2,如下表7所示;以及其中EN2是如图15A所示的数目48)并且小于n(例如,其中n是ECC解码器400的最大纠错位数,以及是如图15A所示的数目64;参见下表7)时,钱氏搜索单元440可以以四分之一操作模式执行钱氏搜索。如图15A所示,钱氏搜索单元440可以以四分之一操作模式操作以执行如线Max(3)所示的8位钱氏搜索。也就是说,钱氏搜索单元440的每循环功耗可以随着读矢量RV的错误的数目超过阈值而顺序地降低。
根据读矢量RV的错误的数目可以省略对读矢量RV的奇偶校验部分(例如,读矢量RV的读奇偶校验矢量RPV)的钱氏搜索。当读矢量RV的错误的数目低于第一错误的数目EN1(例如,n/4,如下表7所示;以及其中EN1是如图15A所示的数目32)时,可以执行完全操作模式的钱氏搜索,以及可以省略对读矢量RV的奇偶校验部分的钱氏搜索。钱氏搜索的循环的数目可以小于数据输入/输出循环的数目。也就是说,当读矢量RV的错误的数目低于第一错误的数目EN1时,钱氏搜索单元440可以以完全搜索模式操作以搜索读矢量的读数据矢量RDV部分,以及可以省略搜索读矢量RV的读奇偶校验部分RPV。
当读矢量RV的错误的数目大于第一错误的数目EN1(例如,n/4,如下表7所示;以及其中EN1是如图15A所示的数目32)并且小于第二错误的数目EN2(例如,n/2,如下表7所示;以及EN2是如图15A所示的数目48)时,可以利用以一半操作模式(例如,如图15A所示的16位搜索)操作的钱氏搜索单元440执行钱氏搜索,以及可以省略对读矢量RV的奇偶校验部分的钱氏搜索。当读矢量RV的错误的数目大于第二错误的数目EN2(例如,n/2,如下表7所示;以及其中EN2是如图15A所示的数目32)并且小于第二阈值TV2时,可以利用以四分之一操作模式(例如,如图15A所示的8位搜索)操作的钱氏搜索单元440执行钱氏搜索,以及可以省略对读矢量RV的奇偶校验部分的钱氏搜索。
当读矢量RV的错误的数目大于第二错误的数目EN2(例如,n/2,如下表7所示;并且其中EN2是如图15A所示的数目32)时,可以利用以四分之一操作模式操作的钱氏搜索单元440执行钱氏搜索以搜索读矢量RV的数据和奇偶校验部分。虽然可以同等地执行当钱氏搜索单元440在四分之一操作模式时执行的钱氏搜索(即,不考虑确定的循环数目,可以对于确定的循环数目的每一个同等地执行钱氏搜索),可以根据读矢量RV的错误的数目是否低于第二错误的数目EN2(例如,n/2,如下表7所示;以及其中EN2是如图15A所示的数目48)来确定用于执行钱氏搜索的循环数目。例如,可以根据对读矢量RV的奇偶校验部分的钱氏搜索产生循环差。
图16是示出了根据本发明总构思的示范性实施例的纠错解码操作的时序图。在示范性实施例中,读矢量RV的错误的数目可以低于第一错误的数目EN1(例如,n/4)。也就是说,当错误位置多项式已被确定时,KES单元430和钱氏搜索单元440可以支持运行时模式,其中读矢量可以被纠错而没有延迟,以使得纠错后的数据矢量CDV可以从ECC解码器400输出。参考图6和16,在T1,可以从信道CH0接收第一读矢量RV1,以及可以从信道CH1接收第二读矢量RV2。
在本发明总构思的示范性实施例中,信道CH0和CH1可以彼此独立。信道CH0和CH1可以连接到不同的存储设备。可以提供与信道CH0和CH1独立的ECC解码器400。以下,可以不考虑信道CH0和CH1,使用相同的参考数字描述ECC解码器400和它的组成元件。
校验子S(x)可以通过将读矢量RV与奇偶校验矩阵HT相乘来计算。可以用例如图7和上面详细描述的相同的方式计算校验子S(x)。因此,当接收到读矢量RV时可以执行校验子S(x)的计算。与信道CH0对应的校验子计算单元420可以计算第一读矢量RV1的第一校验子S1(x)。与信道CH1对应的校验子计算单元420可以计算第二读矢量RV2的第二校验子S2(x)。
在T2,可以结束第一和第二读矢量RV1和RV2的输入(即,这些矢量的数据和奇偶校验部分的接收可以完成)。也就是说,在T2,可以包括读数据矢量和读奇偶校验矢量的第一和第二读矢量RV1和RV2可以由控制器200的ECC解码器400完全接收。校验子S1(x)和S2(x)可以由类似于校验子计算单元420的校验子计算单元通过图7所示以及上面详细描述的方法来计算。当第一和第二读矢量RV1和RV2的输入结束时,第一和第二校验子S1(x)和S2(x)的计算可以结束和/或完成。如图16所示,在正在接收读矢量RV1的同时,可以在相同的时间段期间计算校验子S1(x)。类似地,可以接收读矢量RV2,以及可以在相同的时间段期间计算校验子S2(x)。第一和第二校验子S1(x)和S2(x)可以被传送到KES单元430。KES单元430可以基于第一和第二校验子S1(x)和S2(x)计算第一和第二错误位置多项式Λ1(x)和Λ2(x)。KES单元430可以根据图8所示以及上面详细描述的方法计算第一和第二错误位置多项式Λ1(x)和Λ2(x)。
信道CH0和CH1和校验子计算单元420可以进入就绪状态。也就是说,因为已经对于信道CH0和CH1分别计算了校验子S1(x)和S2(x)和错误位置多项式Λ1(x)和Λ2(x),所以信道对于要执行的钱氏搜索(例如,错误位置多项式Λ1(x)和Λ2(x)可以准备好要被传送到钱氏搜索单元)是就绪的。在T2,可以通过信道CH0接收第三读矢量RV3,以及可以通过信道CH1接收第四读矢量RV4。校验子计算单元420可以通过图7所示以及上面详细描述的方法计算来自于第三和第四读矢量RV3和RV4的第三和第四校验子S3(x)和S4(x)。
当第一和第二读矢量RV1和RV2的错误的数目低于第一错误的数目EN1(例如,n/4)时,错误位置多项式Λ(x)的循环数目可以小于数据输入/输出循环数目。在T3,在第三和第四读矢量RV3和RV4的输入结束(即,输入矢量RV3和RV4的接收完成)之前,第一和第二错误位置多项式Λ1(x)和Λ2(x)的计算可以结束和/或完成。第一和第二错误位置多项式Λ1(x)和Λ2(x)可以被传送到钱氏搜索单元440。
钱氏搜索单元440可以基于第一和第二错误位置多项式Λ1(x)和Λ2(x)执行钱氏搜索。钱氏搜索单元440可以根据图9所示以及上面详细描述的方法执行第一和第二错误位置多项式Λ1(x)和Λ2(x)的钱氏搜索。可以从读矢量RV的数据部分(例如,读矢量RV的读数据矢量RDV)的一端开始顺序地执行正向钱氏搜索。根据钱氏搜索结果,可以从读矢量RV的数据部分的一端开始顺序地检测和纠正错误。也就是说,可以在T3在钱氏搜索中执行纠错。
KES单元420可以在T4进入就绪状态。
在T4,第三和第四读矢量RV3和RV4的输入可以完成,以及由校验子计算单元420根据图7所示和上面详细描述的方法对第三和第四校验子S3(x)和S4(x)的计算可以结束和/或完成。由于KES单元430处于就绪状态,并且第三和第四校验子S3(x)和S4(x)已被计算,因此第三和第四校验子S3(x)和S4(x)可以被传送到KES单元430。KES单元430可以根据图8所示以及上面详细描述的方法计算基于第三和第四校验子S3(x)和S4(x)的第三和第四错误位置多项式Λ3(x)和Λ4(x)。
信道CH0和CH1和校验子计算单元420可以进入就绪状态。可以通过信道CH0接收第五读矢量RV5,以及可以通过信道CH1接收第六读矢量RV6。校验子计算单元420可以根据图7所示以及上面详细描述的方法计算来自于第五和第六读矢量RV5和RV6的第五和第六校验子S5(x)和S6(x)。
如果第一读矢量RV1的纠错完成,则可以输出第一纠错后的数据矢量CDV1。在T5,可以输出第一纠错后的数据矢量CDV1。可以在第一纠错后的数据矢量CDV1之后输出第二纠错后的数据矢量CDV2。
当第一和第二读矢量RV1和RV2的错误的数目低于第一错误的数目EN1(例如,n/4)时,钱氏搜索循环的数目可以小于数据输入/输出循环的数目。在T6,当从T3开始在数目上少于数据输入/输出循环的循环过去时,对第一和第二错误位置多项式Λ1(x)和Λ2(x)的钱氏搜索可以结束和/或完成。钱氏搜索单元440可以进入就绪状态。
在T7,由KES单元430根据图8所示以及上面详细描述的方法对第三和第四错误位置多项式Λ3(x)和Λ4(x)的计算可以完成。钱氏搜索单元440可以根据图9所示以及上面详细描述的方法执行钱氏搜索操作,以及KES单元430可以进入就绪状态。
在T8,第五和第六读矢量RV5和RV6的输入以及由校验子计算单元420根据图7所示以及上面详细描述的方法对第五和第六校验子S5(x)和S6(x)的计算可以完成。第五和第六错误位置多项式Λ5(x)和Λ6(x)的计算可以由KES单元430根据图8所示以及上面详细描述的方法执行。第七和第八读矢量RV7和RV8的输入以及可以由校验子计算单元420根据图7所示以及上面详细描述的方法执行对第七和第八校验子S7(x)和S8(x)的计算。
图17是示出了根据本发明总构思的示范性实施例的纠错解码操作的时序图。在示范性实施例中,读矢量RV的错误的数目可以超过第一错误的数目EN1(例如,n/4,其中n是ECC解码器400的最大纠错位数)以及低于第二错误的数目EN2(例如,n/2)。参考图6和17,在T1,可以从信道CH0接收第一读矢量RV1,以及可以从信道CH1接收第二读矢量RV2。校验子计算单元420可以根据图7所示以及上面详细描述的方法计算基于第一和第二读矢量RV1和RV2的第一和第二校验子S1(x)和S2(x)。
在T2,第一和第二读矢量RV1和RV2的输入以及第一和第二校验子S1(x)和S2(x)的计算可以完成。第一和第二校验子S1(x)和S2(x)可以被传送到KES单元430。KES单元430可以根据图8所示以及上面详细描述的方法基于第一和第二校验子S1(x)和S2(x)计算第一和第二错误位置多项式Λ1(x)和Λ2(x)。
信道CH0和CH1和校验子计算单元420可以进入就绪状态。在T2,可以通过信道CH0接收第三读矢量RV3,以及可以通过信道CH1接收第四读矢量RV4。校验子计算单元420可以根据图7所示以及上面详细描述的方法基于第三和第四读矢量RV3和RV4计算第三和第四校验子S3(x)和S4(x)。
在T3,第三和第四读矢量RV3和RV4的输入以及第三和第四校验子S3(x)和S4(x)的计算可以完成。然而,由于KES单元430处于忙碌状态,因此校验子计算单元420可以维持第三和第四校验子S3(x)和S4(x)。在T3,KES单元430正在计算第一和第二错误位置多项式Λ1(x)和Λ2(x),因而可以仍不从校验子计算单元420接收计算的第三和第四校验子S3(x)和S4(x)。如图17所示,在T3计算的第三和第四校验子S3(x)和S4(x)的计算的完成和在T4第三和第四错误位置多项式Λ3(x)和Λ4(x)的计算之间可以存在延迟。
当读矢量RV的错误的数目大于第一错误的数目EN1(例如,n/4)并且低于第二错误的数目EN2(例如,n/2)时,错误位置多项式Λ(x)的计算循环的数目可以多于(即,大于)数据输入/输出循环的数目。也就是说,在T4,当从T2开始存在比数据输入/输出循环更多的计算循环时,第一和第二错误位置多项式Λ1(x)和Λ2(x)的计算可以完成。在T4,可以将第一和第二错误位置多项式Λ1(x)和Λ2(x)发送给钱氏搜索单元440以确定信道CH0和CH1各自的错误位置信息ELI1和ELI2。
钱氏搜索单元440可以基于从关键方程求解单元430接收的第一和第二错误位置多项式Λ1(x)和Λ2(x)执行钱氏搜索。可以从读矢量RV的数据部分(例如,图4和11所示的读矢量RV的读数据矢量RDV)的一端开始顺序地执行正向钱氏搜索。根据钱氏搜索结果,可以从读矢量RV的数据部分的一端开始顺序地检测和纠正错误。也就是说,可以在T4在钱氏搜索中执行纠错。
当第一和第二错误位置多项式Λ1(x)和Λ2(x)的计算完成时,KES单元430可以在T4进入就绪状态。
校验子计算单元420可以在T4将第三和第四校验子S3(x)和S4(x)传递到KES单元430。KES单元430可以根据图8所示以及上面详细描述的方法基于第三和第四校验子S3(x)和S4(x)计算第三和第四错误位置多项式Λ3(x)和Λ4(x)。
信道CH0和CH1和校验子计算单元420可以进入就绪状态。可以通过信道CH0接收第五读矢量RV5,以及可以通过信道CH1接收第六读矢量RV6。校验子计算单元420可以根据图7所示以及上面详细描述的方法基于第五和第六读矢量RV5和RV6计算第五和第六校验子S5(x)和S6(x)。
如果第一读矢量RV1的纠错由纠错单元450完成,则可以输出第一纠错后的数据矢量CDV1。在T5,可以输出第一纠错后的数据矢量CDV1。可以在第一纠错后的数据矢量CDV1之后由错误连接单元450输出第二纠错后的数据矢量CDV2。
当第一和第二读矢量RV1和RV2的错误的数目大于第一错误的数目EN1(例如,n/4)并且小于第二错误的数目EN2(例如,n/2)时,钱氏搜索循环的数目可以大于数据输入/输出循环的数目。在T6,当从T3开始在数目上比数据输入/输出循环更多的循环已经过去时,对第一和第二错误位置多项式Λ1(x)和Λ2(x)的钱氏搜索可以结束和/或完成。钱氏搜索单元440可以进入就绪状态。
如上所述,错误位置多项式Λ(x)的计算循环可以根据读矢量RV的错误的数目变化。读矢量RV中存在的错误的数目越大,错误位置多项式Λ(x)的计算循环的数目越大。钱氏搜索单元440的钱氏搜索的开始时间可以通过错误位置多项式Λ(x)的计算循环的增大或减小而延迟或提前。也就是说,错误位置多项式Λ(x)的计算循环的数目越大,钱氏搜索单元440的钱氏搜索的开始时间可以延迟越多。随着错误位置多项式Λ(x)的计算循环的数目减少,钱氏搜索单元440的钱氏搜索的开始时间可以在越早的时间出现,并且可能维持运行时操作模式。
钱氏搜索循环可以根据读矢量RV的错误的数目变化。当读矢量RV的错误的数目超过至少一个阈值时,钱氏搜索循环可以增大。纠错的开始时间可以通过钱氏搜索循环的数目的增大或减少而延迟或提前。错误位置多项式Λ(x)的计算以及执行钱氏搜索可以形成包括关键方程求解单元430和钱氏搜索单元440的ECC解码器400的独立的解码阶段。
图18是示出了根据本发明总构思的示范性实施例的图1中的控制器的操作方法的流程图。参考图1和18,在操作S910中,写数据矢量WDV可以由控制器200的ECC编码器300编码以形成要输出到存储设备100的码矢量CV。在操作S920中,码矢量CV可以被写入存储设备100。在操作S930中,可以从存储设备100读取读矢量RV。可以按照与图2所示以及上面详细描述的操作S110到S130相同的方法执行操作S910到S930。
在操作S940中,可以根据读矢量RV的错误的数目调整最大纠正时间,以及可以纠正读矢量RV的错误。也就是说,可以确定读矢量RV的读错误的数目,以及可以调整为了纠正读错误(例如,利用纠错单元450)分配的最大纠正时间。随着读错误的数目增大,可以增大用于纠正读错误的最大纠正时间。如表7所示以及下面描述,最大时间可以根据是否对读矢量RV的数据部分和/或奇偶校验部分执行钱氏搜索以及钱氏搜索单元440的操作模式(例如,完全搜索模式、一半搜索模式或四分之一搜索模式)而增大。
图19是示出了控制存储***的调整最大错误搜索时间和解码读矢量的操作的方法的流程图。参考图1、6和19,在操作S1010中,读矢量RV可以由控制器200的ECC解码器400接收到。在操作S1020中,读矢量RV的校验子S(x)可以由校验子计算单元420(例如,根据图7所示以及上面详细描述的方法)计算。在操作S1030中,可以确定校验子S(x)是否为‘0’。如果校验子S(x)是‘0’,则纠错可以结束。如果校验子S(x)非零,则在操作S1040中,可以由KES单元430通过图8所示以及如上所述的方法根据校验子S(x)计算错误位置多项式Λ(x)。在操作S1050中,可以根据错误位置多项式Λ(x)计算读矢量RV的错误的数目。可以按照与如上参考图5所述的操作S310到S350相同的方式执行操作S1010到S1050。
在操作S1060中,可以根据计算的错误的数目调整最大错误搜索时间。也就是说,可以根据计算的错误的数目增大或减小最大搜索时间。在本发明总构思的示范性实施例中,如果计算的错误的数目大于至少一个预定阈值,则最大搜索时间可以增加预定的量。当计算的错误的数目小于至少一个预定阈值时,最大搜索时间可以减少预定的量。在本发明总构思的示范性实施例中,最大时间可以根据是否对读矢量RV的数据部分和/或奇偶校验部分执行钱氏搜索以及钱氏搜索单元440的操作模式(例如,完全搜索模式、一半搜索模式或四分之一搜索模式)而增大。在操作S1070中,可以根据调整的最大错误搜索时间进行错误检测,以及可以由纠错单元450纠正检测到的错误。
校验子S(x)的计算、错误位置多项式Λ(x)的计算、以及钱氏搜索可以按照与图7到14所示以及上面详细描述的方式相同的方式执行。
如参考图15到17所述,校验子计算时间可以不影响错误解码时间的变化。如上参考图15到17所述,校验子完成的时刻可以确定错误解码可以开始的时刻。也就是说,错误解码可以根据校验子的计算完成的时间延迟,但是它可以不改变(即,增大或减小)完成错误解码的时间。
当读矢量RV的错误的数目低于第一错误的数目EN1(例如,n/4,其中n是ECC解码器400的最大纠错位数)时,错误位置多项式Λ(x)的最大计算时间可以是第一求解时间ST1。当读矢量RV的错误的数目是第一错误的数目EN1(例如,n/4)时,第一求解时间ST1可以与错误位置多项式Λ(x)的计算时间(或循环)对应。当读矢量RV的错误的数目超过第一错误的数目EN1(例如,n/4)并且低于第二错误的数目EN2(例如,n/2)时,错误位置多项式Λ(x)的最大计算时间可以是第二求解时间ST2。当读矢量RV的错误的数目是第二错误的数目EN2(例如,n/2)时,第二求解时间ST2可以与错误位置多项式Λ(x)的计算时间(或,循环)对应。当读矢量RV的错误的数目低于n时,错误位置多项式Λ(x)的最大计算时间可以是第三求解时间ST3。当读矢量RV的错误的数目为n时,第三求解时间ST3可以与错误位置多项式Λ(x)的计算时间(或,循环)对应。
当读矢量RV的错误的数目低于第一错误的数目EN1(例如,n/4)时,钱氏搜索可以由以完全操作模式操作的钱氏搜索单元440执行。钱氏搜索时间可以是第一总时间TT1或第一数据时间DT1。当执行对读矢量RV的数据和奇偶校验部分的钱氏搜索时,第一总时间TT1可以是钱氏搜索时间。当可以省略对读矢量RV的奇偶校验部分的钱氏搜索时,第一数据时间DT1可以是钱氏搜索时间。
当读矢量RV的错误的数目大于第一错误的数目EN1(例如,n/4)并且小于第二错误的数目EN2(例如,n/2)时,钱氏搜索可以由以一半操作模式操作的钱氏搜索单元440执行。钱氏搜索时间可以是第二总时间TT2或第二数据时间DT2。当执行对读矢量RV的数据和奇偶校验部分的钱氏搜索时,第二总时间TT2可以是钱氏搜索时间。当可以省略对读矢量RV的奇偶校验部分的钱氏搜索时,第二数据时间DT2可以是钱氏搜索时间。
当读矢量RV的错误的数目大于第二错误的数目EN2(例如,n/2)并且小于第二阈值TV2时,钱氏搜索可以利用以四分之一操作模式操作的钱氏搜索单元440执行。钱氏搜索时间可以是第三总时间TT3或第三数据时间DT3。当执行对读矢量RV的数据和奇偶校验部分(例如,读数据矢量RDV和读奇偶校验矢量RPV)的钱氏搜索时,第三总时间TT3可以是钱氏搜索时间。当可以省略对读矢量RV的奇偶校验部分的钱氏搜索时,第三数据时间DT3可以是钱氏搜索时间。
当读矢量RV的错误的数目大于第二阈值TV2并且低于n(即,其中n是ECC解码器400的最大纠错位数)时,可以由以四分之一操作模式操作的钱氏搜索单元440执行钱氏搜索。钱氏搜索时间可以是第三总时间TT3。
当通过钱氏搜索识别错误位置时,可以由纠错单元(例如,ECC解码器400的纠错单元450)执行纠错。因此,纠错可以不影响错误解码时间的变化。也就是说,错误解码可以根据例如校验子S(x)的计算和/或错误位置多项式Λ(x)的计算完成的时间而延迟,但是它可以不改变(即,增大或减小)完成纠错的时间。
影响纠错时间的变化的时间可以是错误位置多项式Λ(x)的计算时间和钱氏搜索时间。错误位置多项式Λ(x)的计算和钱氏搜索可以具有根据读矢量RV的错误的数目调整的最大时间。例如,随着错误的数目增大,最大调整时间可以增大。关键方程求解(KES)和钱氏搜索(CS)的最大时间可以如下表7所示。
表7
Figure BDA00001618579200431
也就是说,可以根据读矢量RV的错误的数目(EN)调整最大错误时间。如表7所示,最大时间可以根据是否对读矢量RV的数据部分和/或奇偶校验部分执行钱氏搜索以及钱氏搜索单元440的操作模式(例如,完全搜索模式、一半搜索模式或四分之一搜索模式)而增大。
图20是示出了图1中的存储***的应用的框图。参考图20,存储***2000可以包括存储设备2100和控制器2200。存储设备2100可以包括多个存储芯片,其可以分为多个组。每个组中的存储芯片可以通过公共信道与控制器2200通信。在本发明总构思的示范性实施例中,经由信道CH1到CHk与控制器2200通信的存储芯片示范性地示出在图20中。存储模块可以与信道而不是存储芯片连接。
控制器2200可以包括ECC编码器300和ECC解码器400。ECC编码器300和ECC解码器400可以与上面参考图2到19描述的相同地操作。例如,ECC解码器400可以根据读矢量RV的错误的数目调整每循环功耗和/或最大纠正时间并且进行纠错。
图20示出了多个存储芯片可以可通信地与一个信道连接。然而,在本发明总构思的示范性实施例中,存储***2000可以具有与一个存储芯片连接的一个信道。
图21是示出了根据本发明总构思的示范性实施例的包括图20中的存储***的计算***的框图。参考图21,计算***3000可以包括CPU 3100、RAM3200、用户接口3300、电源3400和存储***2000。存储***2000可以包括存储设备2100和控制器2200。存储设备2000可以类似于上面参考图1-19讨论的存储设备100和/或上面参考图21讨论的存储设备2100。
CPU 3100可以是用于控制根据这里公开的本发明总构思的示范性实施例的存储***2000和/或计算***300的操作的中央处理单元和/或任何合适的控制器、处理器、保存的(filed)可编程的门阵列、可编程的逻辑设备或集成电路。RAM 3200可以是随机存取存储器(RAM)、静态随机存取存储器(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)等等。用户接口3300可以包括用于从用户接收输入的键盘、显示器、触摸屏、鼠标、轨迹板和/或任何其它合适的设备。电源3400可以向计算***3000提供电力以使得它可以操作。
存储***2000可以经由***总线3500与元件3100到3400电连接。经由用户接口3300提供或由CPU 3100处理的数据可以被存储在存储***2000中。
图21示出了存储设备2100经由控制器2200与***总线3500连接。在本发明总构思的示范性实施例中,存储设备2100可以直接连接到***总线3500。
图21中的存储***2000可以与在图20中描述的存储***对应。然而,存储***2000可以被替换为图1所示以及上面详细描述的存储***1000。
在本发明总构思示范性实施例中,计算***3000可以包括参考图1和21描述的存储***1000和2000。
本发明总构思的示范性实施例可以测量和/或估计读矢量的错误的数目,以及可以根据测量的错误的数目调整ECC解码器的功耗。
上述公开的主题被认为是说明性的而不是限制性的,以及所附的权利要求书是用来覆盖所有这样的落入真实的精神和范围的修改、增强、以及其它实施例。因而,在法律允许的最大程度内,范围由以下权利要求书和它们的等价物的最宽的可容许的解释来确定,并且不应当被前述详细说明限制或限定。
虽然已经显示和描述了本发明总构思的几个实施例,但是本领域技术人员将理解,可以对这些实施例进行改变而不脱离本发明总构思的原理和精神,本发明总构思的范围在所附的权利要求书和它们的等价物中定义。

Claims (36)

1.一种用于控制存储设备的存储***的控制器,包括:
关键方程求解单元,计算在由该控制器从存储设备接收到的用于读取数据的读矢量中的错误位置多项式;
控制单元,根据计算的错误位置多项式和关于错误位置多项式的信息中的至少一个估计接收的读矢量中的错误的数目;和
钱氏搜索单元,根据计算的错误位置多项式搜索接收的读矢量的错误位置。
2.如权利要求1所述的控制器,还包括:
纠错单元,使用由该关键方程求解单元计算的错误位置多项式来纠正接收的读矢量的在由钱氏搜索单元确定的错误位置处的错误。
3.如权利要求1所述的控制器,其中该控制单元调整钱氏搜索单元的每循环功耗。
4.如权利要求3所述的控制器,其中该控制单元通过根据由关键方程求解单元计算的错误位置多项式调整要在接收的读矢量中同时搜索的位的数目来调整钱氏搜索单元的每循环功耗。
5.如权利要求4所述的控制器,其中,当错误的数目小于或等于预定的第一错误的数目时,该控制单元控制钱氏搜索单元以完全搜索模式操作,以同时搜索接收的读矢量的至少数据部分的位。
6.如权利要求5所述的控制器,其中,当错误的数目大于预定的第一错误的数目并且小于预定的第二错误的数目时,该控制单元控制该钱氏搜索单元以一半搜索模式操作,以同时搜索在完全搜索模式下同时搜索的接收的读矢量的位的数目的一半。
7.如权利要求6所述的控制器,其中以一半搜索模式操作的钱氏搜索单元的每循环功耗小于完全搜索模式的每循环功耗。
8.如权利要求6所述的控制器,其中,当错误的数目大于预定的第二错误的数目时,该控制单元控制该钱氏搜索单元以四分之一搜索模式操作,以同时搜索在完全搜索模式下同时搜索的接收的读矢量的位的数目的四分之一。
9.如权利要求8所述的控制器,其中以四分之一搜索模式操作的钱氏搜索单元的每循环功耗小于一半搜索模式的每循环功耗。
10.如权利要求1所述的控制器,其中,当错误的数目小于或等于预定的阈值时,该控制单元控制钱氏搜索单元仅仅对接收的读矢量的数据部分执行钱氏搜索。
11.如权利要求1所述的控制器,其中,当检测到的错误的数目大于预定的阈值时,该控制单元控制钱氏搜索单元对接收的读矢量的数据部分和奇偶校验部分执行钱氏搜索。
12.如权利要求1所述的控制器,其中该控制单元根据读矢量的错误的数目调整钱氏搜索单元的最大纠正时间。
13.如权利要求12所述的控制器,其中,当错误的数目小于第一预定的错误的数目时,该控制单元将钱氏搜索单元的最大纠正时间调整到第一预定的求解时间。
14.如权利要求13所述的控制器,其中,当错误的数目小于第一预定的错误的数目时,该控制单元控制钱氏搜索单元以完全搜索模式操作,以同时搜索该读矢量的至少数据部分的位。
15.如权利要求13所述的控制器,其中,当错误的数目大于第一预定的错误的数目并且小于第二预定的错误的数目时,该控制单元控制钱氏搜索单元以一半搜索模式操作,以同时搜索在以完全搜索模式操作时的读矢量的至少数据部分的位的数目的一半。
16.如权利要求15所述的控制器,其中,当错误的数目大于第二预定的错误的数目时,该控制单元控制钱氏搜索单元以四分之一搜索模式操作,以同时搜索当以完全搜索模式操作时的读矢量的至少数据部分的位的数目的四分之一。
17.如权利要求12所述的控制器,其中,当检测到的错误的数目大于预定的阈值时,该控制单元调整钱氏搜索单元的最大纠正时间以对接收的读矢量的数据部分和奇偶校验部分执行钱氏搜索。
18.一种控制包括存储设备的存储***的方法,该方法包括:
利用该存储***的关键方程求解单元计算在用于从存储设备读取数据的接收的读矢量中的错误位置多项式;
利用该存储***的控制单元根据计算的错误位置多项式和关于错误位置多项式的信息中的至少一个估计接收的读矢量的错误的数目;以及
利用具有控制单元的存储***的钱氏搜索单元根据计算的错误位置多项式搜索接收的读矢量的错误位置。
19.如权利要求18所述的方法,还包括:
利用纠错单元使用由该关键方程求解单元计算的错误位置多项式来纠正接收的读矢量的在由钱氏搜索单元确定的错误位置处的错误。
20.如权利要求18所述的方法,还包括:
利用该控制单元调整钱氏搜索单元的每循环功耗。
21.如权利要求20所述的方法,其中所述调整钱氏搜索单元的每循环功耗包括:
利用该控制单元根据由关键方程求解单元计算的错误位置多项式调整要在接收的读矢量中同时搜索的位的数目。
22.如权利要求21所述的方法,还包括:
当错误的数目小于或等于预定的第一错误的数目时,以完全搜索模式操作钱氏搜索单元,以同时搜索接收的读矢量的至少数据部分的位。
23.如权利要求22所述的方法,还包括:
当错误的数目大于预定的第一错误的数目并且小于预定的第二错误的数目时,以一半搜索模式操作钱氏搜索单元,以同时搜索在完全搜索模式下同时搜索的接收的读矢量的位的数目的一半。
24.如权利要求23所述的方法,其中以一半搜索模式操作的钱氏搜索单元的每循环功耗小于完全搜索模式的每循环功耗。
25.如权利要求23所述的方法,还包括:
当错误的数目大于预定的第二错误的数目时,以四分之一搜索模式操作钱氏搜索单元,以同时搜索在完全搜索模式下同时搜索的接收的读矢量的位的数目的四分之一。
26.如权利要求25所述的方法,其中以四分之一搜索模式操作的钱氏搜索单元的每循环功耗小于一半搜索模式的每循环功耗。
27.如权利要求18所述的方法,还包括:
当错误的数目小于或等于预定的阈值时,利用该控制单元控制钱氏搜索单元仅仅对接收的读矢量的数据部分执行钱氏搜索。
28.如权利要求18所述的方法,还包括:
当检测到的错误的数目大于预定的阈值时,利用该控制单元控制钱氏搜索单元对接收的读矢量的数据部分和奇偶校验部分执行钱氏搜索。
29.如权利要求18所述的方法,还包括:
利用该控制单元根据读矢量的错误的数目调整钱氏搜索单元的最大纠正时间。
30.如权利要求29所述的方法,还包括:
当错误的数目小于第一预定的错误的数目时,利用该控制单元将钱氏搜索单元的最大纠正时间调整到第一预定的求解时间。
31.如权利要求30所述的方法,还包括:
当错误的数目小于第一预定的错误的数目时,以完全搜索模式操作钱氏搜索单元,以同时搜索读矢量的至少数据部分的位。
32.如权利要求30所述的方法,还包括:
当错误的数目大于第一预定的错误的数目并且小于第二预定的错误的数目时,以一半搜索模式操作钱氏搜索单元,以同时搜索当以完全搜索模式操作时的读矢量的至少数据部分的位的数目的一半。
33.如权利要求32所述的方法,还包括:
当错误的数目大于第二预定的错误的数目时,以四分之一搜索模式操作钱氏搜索单元,以同时搜索在以完全搜索模式操作时的读矢量的至少数据部分的位的数目的四分之一。
34.如权利要求29所述的方法,还包括:
当检测到的错误的数目大于预定的阈值时,利用该控制单元调整钱氏搜索单元的最大纠正时间以对接收的读矢量的数据部分和奇偶校验部分执行钱氏搜索。
35.一种控制具有经由至少一个信道耦接到至少一个存储设备的控制器的存储***的方法,该方法包括:
确定由控制器经由至少一个信道从至少一个存储设备接收到的用于读取数据的读矢量的估计的错误的数目和错误位置信息;以及
根据估计的错误的数目和确定的错误位置信息,调整搜索读矢量的错误位置的存储***的钱氏搜索单元的每循环功耗和最大纠正时间中的至少一个。
36.一种具有经由至少一个信道耦接到控制器的至少一个存储设备的存储***的控制器,包括:
该控制器的纠错码解码器,确定由控制器经由至少一个信道从至少一个存储设备接收到的用于读取数据的读矢量的估计的错误的数目和错误位置信息;以及
该纠错码解码器的控制单元,根据估计的错误的数目和确定的错误位置信息,调整搜索读矢量的错误位置的存储***的钱氏搜索单元的每循环功耗和最大纠正时间中的至少一个。
CN201210141587.9A 2011-05-09 2012-05-09 存储器控制器和存储器控制器的操作方法 Active CN102779099B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2011-0043619 2011-05-09
KR1020110043619A KR101892251B1 (ko) 2011-05-09 2011-05-09 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법

Publications (2)

Publication Number Publication Date
CN102779099A true CN102779099A (zh) 2012-11-14
CN102779099B CN102779099B (zh) 2016-12-14

Family

ID=47124017

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210141587.9A Active CN102779099B (zh) 2011-05-09 2012-05-09 存储器控制器和存储器控制器的操作方法

Country Status (5)

Country Link
US (1) US8694858B2 (zh)
JP (1) JP5946691B2 (zh)
KR (1) KR101892251B1 (zh)
CN (1) CN102779099B (zh)
TW (1) TWI555029B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106920575A (zh) * 2015-12-24 2017-07-04 爱思开海力士有限公司 数据存储装置及其操作方法
CN111539523A (zh) * 2019-02-07 2020-08-14 爱思开海力士有限公司 具有地址生成器的存储器设备及包括其的存储器***

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2707246C (en) 2009-07-07 2015-12-29 Certusview Technologies, Llc Automatic assessment of a productivity and/or a competence of a locate technician with respect to a locate and marking operation
US8270666B2 (en) 2008-02-12 2012-09-18 Certusview Technologies, Llc Searchable electronic records of underground facility locate marking operations
US8532342B2 (en) 2008-02-12 2013-09-10 Certusview Technologies, Llc Electronic manifest of underground facility locate marks
US8572193B2 (en) 2009-02-10 2013-10-29 Certusview Technologies, Llc Methods, apparatus, and systems for providing an enhanced positive response in underground facility locate and marking operations
US8902251B2 (en) 2009-02-10 2014-12-02 Certusview Technologies, Llc Methods, apparatus and systems for generating limited access files for searchable electronic records of underground facility locate and/or marking operations
WO2012033602A1 (en) 2010-08-11 2012-03-15 Steven Nielsen Methods, apparatus and systems for facilitating generation and assessment of engineering plans
KR101747794B1 (ko) * 2011-03-29 2017-06-16 삼성전자주식회사 에러 정정 디코더 및 그것의 에러 정정 방법
US8914706B2 (en) 2011-12-30 2014-12-16 Streamscale, Inc. Using parity data for concurrent data authentication, correction, compression, and encryption
US8683296B2 (en) 2011-12-30 2014-03-25 Streamscale, Inc. Accelerated erasure coding system and method
US8996966B2 (en) * 2013-02-27 2015-03-31 Kabushiki Kaisha Toshiba Error correction device and error correction method
US10089172B2 (en) * 2014-02-07 2018-10-02 Texas Instruments Incorporated Package on package memory interface and configuration with error code correction
KR102149674B1 (ko) 2014-10-13 2020-09-01 삼성전자주식회사 에러 정정 디코더 및 에러 정정 디코더의 동작 방법
US9720772B2 (en) 2015-03-04 2017-08-01 Kabushiki Kaisha Toshiba Memory system, method for controlling magnetic memory, and device for controlling magnetic memory
KR102374668B1 (ko) * 2015-08-31 2022-03-17 삼성전자주식회사 전력 공급 중단의 경향에 따라 불휘발성 메모리를 다르게 관리하는 스토리지 장치
US10621035B2 (en) * 2017-10-18 2020-04-14 Intel Corporation Techniques for correcting data errors in memory devices
KR20210080982A (ko) * 2019-12-23 2021-07-01 삼성전자주식회사 반도체 메모리 장치 및 이의 동작 방법
KR20210089487A (ko) * 2020-01-08 2021-07-16 에스케이하이닉스 주식회사 전자 장치 및 이의 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040181735A1 (en) * 2003-03-04 2004-09-16 Weizhuang (Wayne) Xin Decoding a received BCH encoded signal
CN1623280A (zh) * 2002-01-23 2005-06-01 汤姆森许可公司 纠错译码器中的双chien搜索块
CN101964664A (zh) * 2010-09-16 2011-02-02 复旦大学 一种适用于CMMB的多模式Reed-Solomon译码器结构

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3219318B2 (ja) * 1992-09-30 2001-10-15 京セラ株式会社 誤り信号訂正装置
JPH06152436A (ja) 1992-10-29 1994-05-31 Sony Corp Bch符号の復号装置及び誤り位置多項式の算出方法
US6263470B1 (en) * 1998-02-03 2001-07-17 Texas Instruments Incorporated Efficient look-up table methods for Reed-Solomon decoding
US6115837A (en) * 1998-07-29 2000-09-05 Neomagic Corp. Dual-column syndrome generation for DVD error correction using an embedded DRAM
KR100594002B1 (ko) 1999-04-23 2006-06-28 삼성전자주식회사 가변 처리가 가능한 파이프라인 구조의 리드 솔로몬 복호기
JP3683454B2 (ja) * 1999-12-24 2005-08-17 松下電器産業株式会社 誤り訂正処理装置
US7237183B2 (en) * 2003-03-04 2007-06-26 Broadcom Corporation Parallel decoding of a BCH encoded signal
EP1569348A1 (en) * 2004-02-13 2005-08-31 Alcatel Iterative multidimensional decoding
US7810015B2 (en) * 2005-11-28 2010-10-05 Stmicroelectronics Sa Decoding with a concatenated error correcting code
KR101466694B1 (ko) 2007-08-28 2014-11-28 삼성전자주식회사 Ecc 회로, ecc 회로를 구비하는 메모리 시스템 및그의 오류 정정 방법
JP4564520B2 (ja) * 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
WO2009072105A2 (en) * 2007-12-05 2009-06-11 Densbits Technologies Ltd. A low power chien-search based bch/rs decoding system for flash memory, mobile communications devices and other applications
KR101437396B1 (ko) 2008-02-27 2014-09-05 삼성전자주식회사 레이턴시를 줄일 수 있는 에러 정정 블록을 포함하는메모리 시스템 및 그것의 에러 정정 방법
JP4856110B2 (ja) * 2008-03-01 2012-01-18 株式会社東芝 チェンサーチ装置およびチェンサーチ方法
JP4672743B2 (ja) * 2008-03-01 2011-04-20 株式会社東芝 誤り訂正装置および誤り訂正方法
US8201058B2 (en) * 2008-07-09 2012-06-12 Cadence Design Systems, Inc. Method and apparatus for parallel ECC error location
US8332725B2 (en) * 2008-08-20 2012-12-11 Densbits Technologies Ltd. Reprogramming non volatile memory portions
JP2010218634A (ja) * 2009-03-17 2010-09-30 Toshiba Corp 誤り検出訂正器、メモリコントローラおよび半導体記憶装置
WO2012074567A1 (en) * 2010-11-29 2012-06-07 Sandisk Il Ltd. Reduction of power consumption for data error analysis
US8612834B2 (en) * 2011-03-08 2013-12-17 Intel Corporation Apparatus, system, and method for decoding linear block codes in a memory controller
EP2689332B1 (en) * 2011-03-24 2017-01-04 SanDisk IL Ltd. Parallelization of error analysis circuitry for reduced power consumption

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1623280A (zh) * 2002-01-23 2005-06-01 汤姆森许可公司 纠错译码器中的双chien搜索块
US20040181735A1 (en) * 2003-03-04 2004-09-16 Weizhuang (Wayne) Xin Decoding a received BCH encoded signal
CN101964664A (zh) * 2010-09-16 2011-02-02 复旦大学 一种适用于CMMB的多模式Reed-Solomon译码器结构

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106920575A (zh) * 2015-12-24 2017-07-04 爱思开海力士有限公司 数据存储装置及其操作方法
CN106920575B (zh) * 2015-12-24 2020-12-29 爱思开海力士有限公司 数据存储装置及其操作方法
CN111539523A (zh) * 2019-02-07 2020-08-14 爱思开海力士有限公司 具有地址生成器的存储器设备及包括其的存储器***

Also Published As

Publication number Publication date
TW201246220A (en) 2012-11-16
US8694858B2 (en) 2014-04-08
KR101892251B1 (ko) 2018-08-29
JP2012238307A (ja) 2012-12-06
KR20120125890A (ko) 2012-11-19
CN102779099B (zh) 2016-12-14
TWI555029B (zh) 2016-10-21
JP5946691B2 (ja) 2016-07-06
US20120290901A1 (en) 2012-11-15

Similar Documents

Publication Publication Date Title
CN102779099A (zh) 存储器控制器和存储器控制器的操作方法
US8276051B2 (en) Chien-search system employing a clock-gating scheme to save power for error correction decoder and other applications
US8667369B2 (en) Memory controller and operating method of memory controller
US10097208B2 (en) Error locator polynomial decoder method
US9734129B2 (en) Low complexity partial parallel architectures for Fourier transform and inverse Fourier transform over subfields of a finite field
US10461777B2 (en) Error locator polynomial decoder and method
CN104521177A (zh) 使用单次注册用于基于存储器的puf的软判决误差校正
CN104115126A (zh) 使用代数码的多阶段ecc编码
US9054742B2 (en) Error and erasure decoding apparatus and method
CN104937669A (zh) 使用分类码来确定软数据
KR20160090054A (ko) 플래시 메모리 시스템 및 그의 동작 방법
CN102938653A (zh) 一种利用图形处理器gpu实现的并行rs译码方法
CN103325425B (zh) 存储器控制器
US20160283325A1 (en) Errors and erasures decoding from multiple memory devices
US9906240B2 (en) One-shot decoder for two-error-correcting BCH codes
US20120254705A1 (en) Error correction decoder and error correction method thereof
US10439644B2 (en) Error locator polynomial decoder and method
CN102045073A (zh) 一种bch码译码方法和装置
CN103151078A (zh) 一种存储器检错纠错码生成方法
CN103916138B (zh) 一种钱搜索电路及基于该钱搜索电路的ecc解码装置及方法
CN103346805B (zh) 一种长bch码的译码***及方法
CN101777922B (zh) 用于BCH译码器的高速低延时Berlekamp-Massey迭代译码电路
CN108574495B (zh) 错误定位多项式解码器及方法
CN101873143A (zh) 一种rs纠错码解码器中的伴随式计算电路及其计算方法
CN105741880A (zh) Sim卡装置及用于sim卡的ecc纠错模块

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
C14 Grant of patent or utility model
GR01 Patent grant