发明名称 一种基于理德-所罗门码的ECC控制器
摘要 本发明涉及一种基于理德-所罗门码的ECC控制器,设有编码寄存器、解码寄存器、控制寄存器、状态寄存器、纠错逻辑、数据分割逻辑,控制模块,CPU在向编码寄存器或解码寄存器输入数据的同时,数据分割逻辑将编/解码数据以符号的方式传输到理德-所罗门码编/解码模块内,进行编/解码处理,实现了单一数据流完成数据传输过程和相应ECC码或纠错码产生的过程,且实现了数据传输与ECC码或纠错码运算并行处理的ECC控制器。
申请公布号 CN101667837A 申请公布日期 2010.03.10
申请号 CN200910034091.X 申请日期 2009.08.21
申请人 苏州国芯科技有限公司 发明人 张艳丽;于麦口;郑茳;肖佐楠
分类号 H03M13/00(2006.01)I;G11C29/00(2006.01)I 主分类号 H03M13/00(2006.01)I
代理机构 苏州创元专利商标事务所有限公司 代理人 马明渡
主权项 1、一种基于理德-所罗门码的ECC控制器,该ECC控制器包括理德-所罗门码编/解码模块(202),该理德-所罗门码编/解码模块(202)主要由编码电路(501)、译码求解电路(502)、错误符号地址求解电路(504)和纠错码求解电路(503)组成,当处于编码状态时,用于对编码数据进行运算生成相应的ECC码,当处于解码状态时,用于判断解码数据是否存在错误符号,如存在则计算生成错误符号地址和对错误符号进行纠错的纠错码;其特征在于:所述ECC控制器还包括系统总线接口(201)、数据分割逻辑(309)以及控制模块(203);所述系统总线接口(201),主要由编码寄存器(301)、解码寄存器(302)、控制寄存器(303)、状态寄存器(304)、纠错逻辑(310)组成;编码寄存器(301)用于存放编码数据和ECC码,CPU(104)将编码数据写入编码寄存器(301),触发理德-所罗门码编/解码模块(202)工作,编码寄存器(301)与数据分割逻辑(309)连接;解码寄存器(302)用于存放解码数据,CPU(104)将解码数据写入解码寄存器(302),触发理德-所罗门码编/解码模块(202)工作,解码寄存器(302)与所述数据分割逻辑(309)连接;控制寄存器(303)用于接收CPU(104)输出的控制信息,将其转化为相应的控制信号输出到控制模块(203),通过控制模块(203)实现CPU(104)对编/解码过程的控制,其与所述控制模块(203)连接;状态寄存器(304),用于接收标识所述ECC控制器的状态信息,实现CPU(104)对所述ECC控制器的状态查询,其与所述控制模块(203)连接;纠错逻辑(310)用于对解码数据进行符号纠错,纠错逻辑(310)接收理德-所罗门码编/解码模块(202)在解码过程中生成的错误符号地址和对应的纠错码,同时接收解码寄存器(302)中错误符号地址对应的错误符号,对错误符号和纠错码进行运算后得到正确符号并将正确符号传输到解码寄存器,从而将错误符号更新为正确符号,其与解码寄存器(302)、理德-所罗门码编/解码模块(202)连接;所述数据分割逻辑(309),用于将编码或解码数据划分为若干个符号分多个时钟周期输入所述理德-所罗门码编/解码模块(202),同时,会触发外部总线至等待状态(wait-state),禁止CPU(104)的访问,防止期间因CPU(104)的误操作而导致编/解码无法正常结束的现象;所述控制模块(203),包含一组状态机,响应数据分割逻辑(309)、理德-所罗门码编/解码模块(202)的反馈信号及CPU对编码寄存器(301)、解码寄存器(302)和控制寄存器(303)的操作,产生相应的控制信号,控制编/解码过程,并将理德-所罗门码编/解码模块(202)的状态反馈到CPU(104)可查询的所述状态寄存器(304)内,同时完成不同状态之间的跳转,其中一组状态机包括:(1)空闲状态(IDLE),所述ECC控制器处于空闲状态,控制模块(203)正在监测CPU(104)的操作,(2)编码初始化状态(START_EN),用于启动编码流程,对理德-所罗门码编/解码模块(202)在编码过程中使用到的相关变量进行初始化。当有数据写入编码寄存器时,使能所述编码电路(501),使得编码电路(501)处于编码工作状态,(3)解码初始化状态(START_DE),用于启动解码流程,对理德-所罗门码编/解码模块(202)在解码过程中使用到的相关变量进行初始化。当有数据写入解码寄存器时,使能所述编码电路(501),使得编码电路(501)处于解码工作状态,(4)正常编码状态(USUAL_EN),用于响应CPU(104)对编码寄存器(310)的操作,触发理德-所罗门码编/解码模块(202)对编码寄存器(301)内数据进行编码操作,(5)正常解码状态(USUAL_DE),用于响应CPU(104)对解码寄存器(302)的操作,触发理德-所罗门码编/解码模块(202)对解码寄存器(302)内数据进行解码操作,(6)编码成功状态(EOK),用于判断编码是否结束,并将此编码成功状态信息输入可供CPU(104)查询的状态寄存器(304)内,(7)解码成功状态(DOK),用于判断解码是否结束,并将此解码成功状态信息输入可供CPU(104)查询的状态寄存器(304)内,(8)译码状态(EUC),当编码电路(501)工作在解码状态时输出的解码伴随式S(X)不为‘0’时跳转到该译码状态(EUC),使能所述译码求解电路(502)产生错误位置多项式L(x)和错误值多项式W(x),(9)查错状态(FIND),用于使能错误符号地址求解电路(504)和纠错码求解电路(503)查找错误符号的具体位置并计算纠错码。
地址 215011江苏省苏州市高新区竹园路209号苏州创业园C2031室