CN108665940B - Ecc编码电路、解码电路以及存储器控制器 - Google Patents

Ecc编码电路、解码电路以及存储器控制器 Download PDF

Info

Publication number
CN108665940B
CN108665940B CN201810456229.4A CN201810456229A CN108665940B CN 108665940 B CN108665940 B CN 108665940B CN 201810456229 A CN201810456229 A CN 201810456229A CN 108665940 B CN108665940 B CN 108665940B
Authority
CN
China
Prior art keywords
register
data
random access
static random
access memory
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
Application number
CN201810456229.4A
Other languages
English (en)
Other versions
CN108665940A (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.)
Lianyun Technology Hangzhou Co ltd
Original Assignee
Maxio Technology Hangzhou 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 Maxio Technology Hangzhou Ltd filed Critical Maxio Technology Hangzhou Ltd
Priority to CN201810456229.4A priority Critical patent/CN108665940B/zh
Publication of CN108665940A publication Critical patent/CN108665940A/zh
Application granted granted Critical
Publication of CN108665940B publication Critical patent/CN108665940B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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

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)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本申请提供一种ECC编码电路、ECC解码电路和存储器控制器。所述一种存储器控制器,包括ECC编码电路和静态随机存储器,所述ECC编码电路用于根据原始数据生成已编码数据,包括:两个乘法器;两个加法器;两个寄存器,用于用于存储原始数据的相应字节经过加法和/或乘法操作的结果数据;第一选择器,输入端分别和所述个两个寄存器相连,用于根据所述结果数据获得所述已编码数据;所述静态随机存储器和所述两个寄存器双向相连,从所述两个寄存器中接收所述结果数据进行存储,并将存储的所述结果数据传送到所述两个寄存器。本申请通过静态随机存储器和寄存器之间的数据双向流动,扩展了ECC编码电路的编码能力。

Description

ECC编码电路、解码电路以及存储器控制器
技术领域
本发明涉及一种ECC编码电路、ECC解码电路以及存储器控制器。
背景技术
快闪存储器(flash)是一种非易失性的存储器,广泛应用于记忆卡、固态硬盘以及可携式多媒体播放器(portable multimedia players)等电子设备。快闪存储器可分为N0R型快闪存储器和NAND型快闪存储器。
为了保证数据安全,通常在快闪存储器的控制器设置有ECC(Error Checking andCorrection)电路,用于数据恢复和纠错处理。ECC电路设置在快闪存储器的控制端,在数据写入阶段,将基于原始数据编码产生已编码数据存储到快闪存储器中,在数据读取阶段,对已编码数据进行译码才能获得原始数据。通过ECC编译码电路能够降低快闪存储器的误码率以及提高产品良率。
为了提高ECC的数据纠错能力,可以在快闪存储器的控制器内设置更多的ECC编码电路,以实现对更多的原始数据进行编码,以及设置更多的ECC解码电路实现对更多的已编码数据进行解码。然而,更多的ECC编码电路和解码电路意味着快闪存储器的体积会增加,这和快闪存储器的发展趋势相悖。随着3D NAND型快闪存储器的兴起,快闪存储器在体积方面趋向越来越小。由此,如何在不增加甚至减小快闪存储器的体积的基础上,提高ECC电路的纠错能力是一个值得研究的问题。
发明内容
有鉴于此,本发明实施例提出一种ECC编码电路和解码电路,不增加甚至减小快闪存储器的体积的基础上,提高ECC电路的纠错能力。
根据本发明的第一方面,提供一种ECC编码电路,用于根据原始数据生成已编码数据,包括:
第一寄存器和第二寄存器;
第一静态随机存储器,分别与所述第一寄存器和所述第二寄存器连接;
第一加法器,一个输入端顺序接收所述原始数据的各个字节,另一输入端与所述第一寄存器连接,输出端分别连接到第一乘法器的输入端和第二乘法器的输入端;
第二加法器,一个输入端与所述第一乘法器的输出端连接,另一个输入端与所述第二寄存器连接,输出端与所述第一寄存器连接;
第一乘法器,一个输入端接收第二常量,另一个输入端与所述第一加法器的输出端连接,输出端连接到所述第二加法器的输入端;
第二乘法器,一个输入端接收第一常量,另一个输入端与所述第一加法器的输出端连接,输出端连接到所述第二寄存器;
第一选择器,两个输入端分别和所述第一寄存器、所述第二寄存器连接,输出端输出所述已编码数据;
其中,所述第一静态随机存储器与所述第一寄存器、所述第二寄存器进行双向数据传输,包括:所述第一静态随机存储器存储上一次编码操作的结果数据,所述第一寄存器和所述第二寄存器分别从第一静态随机存储器读取上一次编码操作的结果数据,并存储根据所述上一次编码操作的结果数据和本次接收到的所述原始数据的至少一个字节生成的本次编码操作得到的结果数据,进而所述第一寄存器和所述第二寄存器将本次编码操作得到的结果数据存储到所述第一静态随机存储器,以及经过多次双向数据传输,所述第一寄存器和所述第二寄存器中结果数据被输入给所述第一选择器,以从所述第一选择器的输出端输出所述已编码数据。
可选地,所述第一乘法器和所述第二乘法器均为常数乘法器,所述第一常量和所述第二常量为不同常量。
可选地,所述ECC编码电路还包括第二选择器,所述第二选择器分别与所述第一寄存器、所述第二寄存器之间进行双向数据传输,所述第二选择器与所述第一静态随机存储器进行双向数据传输。
可选地,所述第一静态随机存储器为单端口静态随机存储器。
第二方面,本发明提供一种ECC解码电路,用于对已编码数据进行ECC检测和纠错,包括:
两路数据处理单元,每路数据处理单元包括第三乘法器、第三加法器、第三选择器和第三寄存器,其中,所述第三加法器的一个输入端连接到每路数据处理单元的输入端,另一输入端与所述第三选择器的输出端连接,输出端与所述第三寄存器连接;所述第三乘法器的一个输入端接收第三常量,另一输入端与所述第三寄存器连接,输出端与所述第三选择器的输入端连接;所述第三选择器的一个输入端接收0数据,另一输入端与所述第三乘法器的输出端连接,输出端与所述第三加法器的输入端连接;所述第三寄存器与第三加法器、第二静态随机存储器和计算单元连接;
每路数据处理单元的输入端顺序接收所述已编码数据的各个字节,将产生的结果数据存储到所述第三寄存器中;
所述计算单元用于从所述两路数据处理单元各自的第三寄存器获取结果数据,进行ECC检测和纠错;
其中,所述第二静态随机存储器与所述两路数据处理单元各自的第三寄存器之间进行双向数据传输,包括:所述两路数据处理单元各自的第三寄存器从第二静态随机存储器读取上次解码操作的结果数据,然后根据上次解码操作的结果数据和新接收到的所述已编码数据的至少一个字节,进行解码操作,并将本次解码操作的结果数据存储到所述第二静态随机存储器中,以及经过多次双向数据传输,所述计算单元从所述两路数据处理单元各自的第三寄存器获取结果数据,并输出ECCECC检测和纠错结果。
可选地,所述ECC解码电路还包括第四个选择器,所述第四个选择器分别与两路数据处理单元各自的第三寄存器连接,并与所述第二静态随机存储器连接,用于控制两路数据处理单元各自的第三寄存器与所述第二静态随机存储器之间的双向数据传输。
可选地,所述第二静态随机存储器为单端口静态随机存储器。
第三方面,本发明提供一种存储器控制器,包括上述任一项所述的ECC编码电路和上述任一项所述的ECC解码电路。
可选地,所述ECC编码电路的第一静态随机存储器和所述ECC解码电路的第二静态随机存储器为同一个静态随机存储器。
本发明实施例提供的ECC编码电路和解码电路,在不增加寄存器数量的基础上,通过SRAM存储编码过程中产生的结果数据,并在需要时从SARM中获取结果数据进行编码,由此,提高了ECC编码电路的编码能力。同理,通过SRAM存储解码过程中产生的结果数据,并在需要时从SARM中获取结果数据进行ECC检测和纠错,由此,提高了ECC解码电路的解码能力。
进一步地,本发明实施例提供的存储器控制器,在不增加寄存器数量的基础上,通过SRAM存储编码过程中产生的结果数据,并在需要时从SARM中获取结果数据进行编码,由此,提高了存储器控制的编码能力。同理,通过SRAM存储解码过程中产生的结果数据,并在需要时从SARM中获取结果数据进行ECC检测和纠错,由此,提高了存储器控制的的解码能力。
附图说明
通过参照以下附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是闪存系统的结构图;
图2是通过ECC编码电路生成的编码数据的存储示意图;
图3是现有技术中ECC编码电路的结构示意图;
图4是本发明实施例的ECC编码电路的结构示意图;
图5是现有技术中ECC解码电路的结构示意图;
图6是本发明实施例的ECC解码电路的结构示意图。
具体实施方式
以下将参照附图更详细地描述本发明。在各个附图中,相同的元件采用类似的附图标记来表示。为了清楚起见,附图中的各个部分没有按比例绘制。此外,可能未示出某些公知的部分。
图1是闪存系统的结构图。
该闪存系统100例如是使用固态硬盘(SSD)的计算机系统。该计算机系统包括主机130。固态硬盘包括快闪存储器110和存储器控制器120。
主机130经由存储器控制器120访问存储器130。在该闪存系统中,存储数据为原始数据经过编码产生的已编码数据,在读取过程中对存储数据译码才能获得原始数据。主机110例如包括处理器。在使用状态中,该处理器从存储器130中加载程序或读取数据,以及向存储器130中写入数据。
快闪存储器110由多个存储页面组成,每个存储页面包括多个由浮动栅极晶体管构成的存储器单元,每个存储器单元中存储一个或多个比特位(bit)的数据。存储器控制器120通过向晶体管的控制栅极提供适当的检测电压,读取存储器单元存储的数据。
存储器控制器120可以是独立的集成电路或和其他电路集成在一起。如图所示,存储器控制器120包括控制电路121,ECC编码电路122和ECC解码电路123。控制电路121用于例如行读写控制。ECC编码电路122用于在写入操作阶段,对原始数据进行编码,生成已编码数据。ECC解码电路123用于在读取操作期间,对已编码数据进行译码,并根据译码结果对原始数据进行检测和纠错。
图2是通过ECC编码电路生成的编码数据的存储示意图。以block为例进行说明。
所述block包括256个存储页page0至page255,在存储页page0至page255中分别存储原始数据Din和已编码数据PageCode0~PageCode255,在存储页page256~page257存储已编码数据columnCode0~columnCode15。已编码数据PageCode0~PageCode255是根据对应的一个存储页内的原始数据生成的已编码数据,columnCode0~columnCode15是根据对应的多个存储页中的原始数据生成的已编码数据。具体地,假设一个存储页能够存储20K字节的数据,则保留4K字节存储已编码数据,则剩余16K字节存储原始数据,同时将16K存储空间切割为16等份,组合PageCode0~PageCode255中在相同位置的存储空间中存储的数据并对其进行编码处理,得到16个已编码数据columnCode0~columnCode15。将已编码数据columnCode0~columnCode15分别存储block之后的存储页page256~page257内。由此,得到了二维已编码数据:横向和纵向已编码数据。同理,当进行读取操作时,分别读取横向和纵向的已编码数据并和原始数据进行迭代解码,以检测错误位置和错误数据,并获得正确的原始数据。
在图2中,在行和列两个方向上对数据进行编码,二维编码能够提高ECC检测和纠错能力。当然,本发明也适用于一维编码,例如,仅对每个存储页生成已编码数据。用于生成已编码数据的编码方法可不局限于一种,例如选用LDPC、RS等编码方法。
图3是现有技术中ECC编码电路的结构示意图。参考图3,该ECC编码电路300包括两个乘法器301和301’、两个加法器302和302’、两个寄存器303和303’,以及一个选择器304。
乘法器301和301’各包括两个输入端和一个输出端,其中一个输入端接收DSP常量数据(例如纠错码),另一输入端和一加法器302的输出端连接,用于接收用于编码的原始数据,输出端用于输出相乘结果数据。如图所示,图上左侧的乘法器301’的输出端和寄存器303’相连,用于将相乘结果数据输送到寄存器中存储,图上右侧的乘法器301的输出端和加法器302’的输入端相连,用于将相乘结果数据作为加法器302’的一个加数,进而加法器302’将相加结果数据传送到寄存器303。
两个寄存器303和303’分别和选择器304的输入端相连。其中,左侧的寄存器303’存储相乘结果数据,右侧的寄存器303存储相加结果数据。
加法器302和302’各包括两个输入端和一个输出端,图上左侧的加法器302’的一个输入端和寄存器303’相连,另一个输入端接收相乘结果数据,输出端和另一寄存器303相连。图上右侧的加法器302的一输入端接收原始数据,另一输入端和寄存器303相连,在输出端输出相加结果数据。
选择器304包含三个输入端和一个输出端,其中一输入端接收原始数据,另两个输入端分别接收寄存器303和303’中存储的数据。选择器304根据原始数据和寄存器内的数据生成已编码数据,并将已编码数据写入到快闪存储器的介质上。虽然图上未示出,选择器304还和RAIDFireware(RAID固件)相连,用于从RAID Fireware接收可执行的程序代码和常量等数据。
在上述ECC编码电路工作时,初始寄存器的值为0,第一周期开始,一个字节经由选择器的输入端送入,生成字节和第一常量的相乘结果存储到寄存器303’中,同時将字节和上一周期寄存器303的相加结果乘上第二常量,再加上前一次周期303’的结果,并且存储到寄存器303中,经过数个周期後(e.x.code size)最终两个寄存器内的数据被输送到选择器中,经由内部的逻辑运算,生成已编码数据从选择器的输出端输出,写入到快闪存储器的介质上。
在本实施例中,输入到两个乘法器中的作为纠错码的第一常量和第二常量不相同。由于寄存器的存储能力有限(一般只能存储1个字节),导致上述ECC编码电路只能用于对有限字节的原始数据进行编码。
因此,在现有技术中,通过增加乘法器、加法器和寄存器的数量的方法扩展ECC编码电路的编码能力。例如,当对1024个字节的数据进行编码时,上述编码电路增加到包含1024*2个乘法器、1024*2个加法器和1024*2个寄存器。然而该方法虽然能够提升ECC编码电路的编码能力,但同时也增加快闪存储器的体积。
有鉴于此,图3给出了本发明实施例的ECC编码电路的结构示意图。
参考图4,该ECC编码电路400包括两个乘法器401和401’、两个加法器402和402’、两个寄存器403和403’,以及两个选择器404和404’。其中加法器、乘法器和寄存器的连接方式和图3示例中的ECC编码电路的连接方式相同,这里就不再赘述。
如图所示,图上左侧的选择器404’为新增的选择器,该选择器404’和寄存器403和403’双向连接,同时该选择器404’和外部的SRAM(Static Random-Access Memory,静态随机存取存储器)双向连接,SRAM通过地址线、控制线等和外部的阵列控制单元(Global RAIDcontrol Unit)406连接。这里,双向连接表示数据流可以在两个连接方之间流动。在本实施例中,SRAM优选为单端口的SARM。在可选的实施例中,选择器404’也可以省略,即,寄存器403和403’和SRAM直接连接。
在上述ECC编码电路400中,虽然两个寄存器403和403’的存储能力并没有增加,乘法器和加法器的数量也没有增加,但是能够对更多字节的原始数据进行编码。
具体地,当上述ECC编码电路400工作时,第一周期时,先从SRAM将上一周期的数据读取到寄存器403’和403中。第二周期时,将新输入的字节与上一周期寄存器403的值相加,并乘以第二常量,再与上一周期的寄存器403’内的值相加,输入到寄出器403。将新输入的字节与上一周期寄存器403内的值相加,并乘以第一常量,输入到寄存器403’中。第三周期时将寄存器403’与403的值存回到SRAM中。重复一样的动作进行后续的周期,直到原始数据的所有字节输入结束。
综上,通过增加SRAM,在不增加电子元件的数量的条件上,提高ECC编码电路的编码能力,降低产品的成本。并且,由于现有的ECC编码电路是串行处理机制,而本发明的ECC编码电路也同样采用串行处理机制,因而基本不会降低ECC编码电路的编码效率。
图5是现有技术中ECC解码电路的结构示意图。
参考图5,该ECC解码电路50包括两路数据处理单元500和计算单元506。
每个数据处理单元500包括乘法器501、加法器502、寄存器503,选择器504,并经由输入端Input输入已编码数据,经由寄存器503将处理后的数据输出到计算单元506。
加法器502从输入端Input接收已编码数据,另一个输入端和选择器504的输出端相连,输出端和寄存器503相连,将相加结果数据暂存到寄存器503中。
乘法器501的一个输入端从RAID Fireware(RAID固件)接收常量,另一输入端和寄存器连接,输出端和选择器504的输入端连接。
选择器504和RAID Fireware相连接用于接收可执行代码和常量等信息,一输入端接收0数据,另一个输入端和乘法器501的输出端相连,输出端和加法器502的输入端相连。
计算单元506的两个输入端分别和寄存器503连接,从寄存器503中读取数据,并据此计算已编码数据中的错误数值以及错误位置,并将正确的数据输出到快闪存储器的相应位置上,即对快闪存储器上的数据进行修正。
在上述ECC解码电路中,通过两路加法和乘法计算,获得和已编码数据的两路相乘相加数据,再根据这两路相乘相加数据进行检测和纠错。然而,在本例中,由于寄存器的存储能力有限,导致ECC解码电路只能用于对有限字节的已编码数据进行解码和纠错。举例说明,假定每个寄存器只能存储1个字节,为了方便,ECC解码电路也仅用于对1个字节的已编码数据进行解码和纠错。
当上述解码电路扩展时,可增加相同连接关系的乘法器、加法器和寄存器的数量。例如,当对1024个字节的数据进行编码时,上述编码电路增加到包含1024*2个乘法器、1024*2个加法器和1024*2个寄存器。
然而通过增加电子元件的数量实现编码能力的提升的方法也会增加快闪存储器的体积。有鉴于此,图6给出了本发明实施例的ECC解码电路的结构示意图。
参考图6,该ECC解码电路包括两个加法器602,两个乘法器601、两个寄存器603、两个选择器604和计算单元606,同时还包括两个输入端Input和一个输出端Output。
两个加法器602,两个乘法器601、两个寄存器603、两个选择器604和计算单元606的连接方式和图5示例中的解码电路的连接方式相同,这里就不再赘述。
图上左侧的选择器607为本例中新增的选择器,该选择器607和寄存器603双向连接,同时该选择器607和外部的SRAM608(Static Random-Access Memory,静态随机存取存储器)双向连接,该SRAM通过地址线、控制线等和外部的阵列控制单元(Global RAIDcontrol Unit)609连接。这里,双向连接表示数据流可以在两个连接方之间流动。在本实施例中,SRAM优选为单端口的SARM。
在上述ECC解码电路600中,虽然两个寄存器603的存储能力没有增加,而且乘法器和加法器的数量也没有增加,但是能够对更多字节的原始数据进行编码。具体地,当上述ECC解码电路600工作时,能够通过双向连接将数据经由选择器607临时存储到SRAM 608中,同时通过双向连接将数据从SRAM 608中存储到寄存器603中,而计算单元606则不停地从寄存器603中获得数据进行解码和纠错计算,并将正确数据输出到快闪存储器的相应位置上。
本发明实施例提供的ECC编码方法和解码方法,在不增加寄存器数量的基础上,通过外部的SRAM,存储编码和解码过程中产生的结果数据,并在必要时从SARM中获取结果数据进行编解码,由此,在不增加电子元件的基础上,提高了ECC电路的编码和解码能力。
本发明实施例虽然以较佳实施例公开如上,但其并不是用来限定权利要求,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保护范围应当以本发明权利要求所界定的范围为准。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种ECC编码电路,用于根据原始数据生成已编码数据,包括:
第一寄存器和第二寄存器;
第一静态随机存储器,分别与所述第一寄存器和所述第二寄存器连接;
第一加法器,一个输入端顺序接收所述原始数据的各个字节,另一输入端与所述第一寄存器连接,输出端分别连接到第一乘法器的输入端和第二乘法器的输入端;
第二加法器,一个输入端与所述第一乘法器的输出端连接,另一个输入端与所述第二寄存器连接,输出端与所述第一寄存器连接;
第一乘法器,一个输入端接收第二常量,另一个输入端与所述第一加法器的输出端连接,输出端连接到所述第二加法器的输入端;
第二乘法器,一个输入端接收第一常量,另一个输入端与所述第一加法器的输出端连接,输出端连接到所述第二寄存器;
第一选择器,两个输入端分别和所述第一寄存器、所述第二寄存器连接,输出端输出所述已编码数据;
其中,所述第一静态随机存储器与所述第一寄存器、所述第二寄存器进行双向数据传输,包括:所述第一静态随机存储器存储上一次编码操作的结果数据,所述第一寄存器和所述第二寄存器分别从第一静态随机存储器读取上一次编码操作的结果数据,并存储根据所述上一次编码操作的结果数据和本次接收到的所述原始数据的至少一个字节生成的本次编码操作得到的结果数据,进而所述第一寄存器和所述第二寄存器将本次编码操作得到的结果数据存储到所述第一静态随机存储器,以及经过多次双向数据传输,所述第一寄存器和所述第二寄存器中结果数据被输入给所述第一选择器,以从所述第一选择器的输出端输出所述已编码数据。
2.根据权利要求1所述的ECC编码电路,其中,所述第一乘法器和所述第二乘法器均为常数乘法器,所述第一常量和所述第二常量为不同常量。
3.根据权利要求1所述的ECC编码电路,其中,所述ECC编码电路还包括第二选择器,所述第二选择器分别与所述第一寄存器、所述第二寄存器之间进行双向数据传输,所述第二选择器与所述第一静态随机存储器进行双向数据传输。
4.根据权利要求1所述的ECC编码电路,其中,所述第一静态随机存储器为单端口静态随机存储器。
5.一种ECC解码电路,用于对已编码数据进行ECC检测和纠错,包括:
两路数据处理单元,每路数据处理单元包括第三乘法器、第三加法器、第三选择器和第三寄存器,其中,所述第三加法器的一个输入端连接到每路数据处理单元的输入端,另一输入端与所述第三选择器的输出端连接,输出端与所述第三寄存器连接;所述第三乘法器的一个输入端接收第三常量,另一输入端与所述第三寄存器连接,输出端与所述第三选择器的输入端连接;所述第三选择器的一个输入端接收0数据,另一输入端与所述第三乘法器的输出端连接,输出端与所述第三加法器的输入端连接;所述第三寄存器与第三加法器、第二静态随机存储器和计算单元连接;
每路数据处理单元的输入端顺序接收所述已编码数据的各个字节,将产生的结果数据存储到所述第三寄存器中;
所述计算单元用于从所述两路数据处理单元各自的第三寄存器获取结果数据,进行ECC检测和纠错;
其中,所述第二静态随机存储器与所述两路数据处理单元各自的第三寄存器之间进行双向数据传输,包括:所述两路数据处理单元各自的第三寄存器从第二静态随机存储器读取上次解码操作的结果数据,然后根据上次解码操作的结果数据和新接收到的所述已编码数据的至少一个字节,进行解码操作,并将本次解码操作的结果数据存储到所述第二静态随机存储器中,以及经过多次双向数据传输,所述计算单元从所述两路数据处理单元各自的第三寄存器获取结果数据,并输出ECCECC检测和纠错结果。
6.根据权利要求5所述的ECC解码电路,其中,所述ECC解码电路还包括第四个选择器,所述第四个选择器分别与两路数据处理单元各自的第三寄存器连接,并与所述第二静态随机存储器连接,用于控制两路数据处理单元各自的第三寄存器与所述第二静态随机存储器之间的双向数据传输。
7.根据权利要求5所述的ECC解码电路,其中,所述第二静态随机存储器为单端口静态随机存储器。
8.一种存储器控制器,包括如权利要1-4任一项所述的ECC编码电路和如权利要求5-7任一项所述的ECC解码电路。
9.根据权利要求8所述的存储器控制器,所述ECC编码电路的第一静态随机存储器和所述ECC解码电路的第二静态随机存储器为同一个静态随机存储器。
CN201810456229.4A 2018-05-14 2018-05-14 Ecc编码电路、解码电路以及存储器控制器 Active CN108665940B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810456229.4A CN108665940B (zh) 2018-05-14 2018-05-14 Ecc编码电路、解码电路以及存储器控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810456229.4A CN108665940B (zh) 2018-05-14 2018-05-14 Ecc编码电路、解码电路以及存储器控制器

Publications (2)

Publication Number Publication Date
CN108665940A CN108665940A (zh) 2018-10-16
CN108665940B true CN108665940B (zh) 2020-09-04

Family

ID=63779280

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810456229.4A Active CN108665940B (zh) 2018-05-14 2018-05-14 Ecc编码电路、解码电路以及存储器控制器

Country Status (1)

Country Link
CN (1) CN108665940B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114461440B (zh) * 2021-01-20 2022-11-04 沐曦集成电路(上海)有限公司 隐藏ecc编码延时的存储系统及方法
US11940872B2 (en) 2022-04-21 2024-03-26 Analog Devices International Unlimited Company Error correction code validation

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1238604A (zh) * 1998-06-02 1999-12-15 松下电器产业株式会社 里德-所罗门编码装置与编码方法
CN1288542A (zh) * 1998-01-08 2001-03-21 西加特技术有限责任公司 用于循环纠错码的物理块地址恢复设备、系统和方法
US6226772B1 (en) * 1998-11-06 2001-05-01 Lih-Jyh Weng Pipelined combined system for producing error correction code symbols and error syndromes for large ECC redundancy
JP2004120419A (ja) * 2002-09-26 2004-04-15 Oki Electric Ind Co Ltd リードソロモン符号化回路およびリードソロモン復号化回路
CN101695002A (zh) * 2009-10-13 2010-04-14 苏州国芯科技有限公司 一种基于理德-所罗门码的编码电路

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8914687B2 (en) * 2011-04-15 2014-12-16 Advanced Micro Devices, Inc. Providing test coverage of integrated ECC logic en embedded memory
US20140115422A1 (en) * 2012-10-24 2014-04-24 Laurence H. Cooke Non-volatile memory error correction

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1288542A (zh) * 1998-01-08 2001-03-21 西加特技术有限责任公司 用于循环纠错码的物理块地址恢复设备、系统和方法
CN1238604A (zh) * 1998-06-02 1999-12-15 松下电器产业株式会社 里德-所罗门编码装置与编码方法
US6226772B1 (en) * 1998-11-06 2001-05-01 Lih-Jyh Weng Pipelined combined system for producing error correction code symbols and error syndromes for large ECC redundancy
JP2004120419A (ja) * 2002-09-26 2004-04-15 Oki Electric Ind Co Ltd リードソロモン符号化回路およびリードソロモン復号化回路
CN101695002A (zh) * 2009-10-13 2010-04-14 苏州国芯科技有限公司 一种基于理德-所罗门码的编码电路

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Fast Decoding ECC for Future Memories;Paolo Amato等;《 IEEE Journal on Selected Areas in Communications》;20160826;全文 *
Novel ECC structure and evaluation method for NAND flash memory;Jiang Xiao-bo等;《2015 28th IEEE International System-on-Chip Conference (SOCC)》;20160215;全文 *
基于FPGA和NAND Flash的存储器ECC设计与实现;邢开宇等;《基于FPGA和NAND Flash的存储器ECC设计与实现》;20121015;全文 *

Also Published As

Publication number Publication date
CN108665940A (zh) 2018-10-16

Similar Documents

Publication Publication Date Title
CN113032178B (zh) 存储器控制器及快闪存储器的存取方法
CN104347122B (zh) 一种消息式内存模组的访存方法和装置
KR20170056407A (ko) 데이터의 인코딩과 디코딩을 위한 메모리 시스템
US10097208B2 (en) Error locator polynomial decoder method
KR20100124087A (ko) 메모리 컨트롤러, 그것을 포함하는 메모리 시스템 그리고 그것의 동작 방법
KR20180086816A (ko) 사전-검사된 에러율에 따른 적응형 에러정정을 수행하는 메모리장치 및 전자장치와, 메모리장치의 동작방법
CN116266148A (zh) 用于存储器内计算/邻存储器计算的端到端数据保护
US9858994B2 (en) Memory system with MLC memory cells and partial page compression or reduction
US9236886B1 (en) Universal and reconfigurable QC-LDPC encoder
CN108665940B (zh) Ecc编码电路、解码电路以及存储器控制器
TWI718060B (zh) 記憶體控制器及快閃記憶體的存取方法
TW201921281A (zh) 具備資料可靠性機制的儲存系統及其操作方法
TWI536749B (zh) 解碼方法、記憶體儲存裝置與記憶體控制電路單元
US10439644B2 (en) Error locator polynomial decoder and method
US9268629B2 (en) Dual mapping between program states and data patterns
US8423865B2 (en) Apparatus and method for storing data using non-volatile buffer
TWI751096B (zh) 使用藉助於先算資訊輪換的資料保護的非揮發性記憶體寫入方法和設備
TWI684856B (zh) 解碼方法及相關的快閃記憶體控制器與電子裝置
CN116168754A (zh) 纠错码电路、包括纠错码电路的存储设备以及纠错码电路的操作方法
US11115055B2 (en) Method and apparatus for encoding and decoding data in memory system
KR20220129106A (ko) 비트 스트링 축적
US10141072B2 (en) Efficient encoder based on modified RU algorithm
TWI759672B (zh) 解碼方法及相關的快閃記憶體控制器與電子裝置
WO2024103413A1 (zh) 存储系统、控制器、存储器及操作方法、电子设备
US12118228B2 (en) Data protection method for memories and memory device thereof

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 310053 room c1-604, building C, No. 459, Qianmo Road, Xixing street, Binjiang District, Hangzhou, Zhejiang Province

Patentee after: Lianyun Technology (Hangzhou) Co.,Ltd.

Address before: 310053 8th floor, building 2, No. 307, Liuhe Road, Puyan street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee before: MAXIO TECHNOLOGY (HANGZHOU) Ltd.