CN101894590A - 存储数据纠错的编码和译码方法,装置以及存储数据纠错设备 - Google Patents

存储数据纠错的编码和译码方法,装置以及存储数据纠错设备 Download PDF

Info

Publication number
CN101894590A
CN101894590A CN200910059381XA CN200910059381A CN101894590A CN 101894590 A CN101894590 A CN 101894590A CN 200910059381X A CN200910059381X A CN 200910059381XA CN 200910059381 A CN200910059381 A CN 200910059381A CN 101894590 A CN101894590 A CN 101894590A
Authority
CN
China
Prior art keywords
data
error correction
error
correcting code
code pattern
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.)
Pending
Application number
CN200910059381XA
Other languages
English (en)
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.)
Huawei Digital Technologies Chengdu Co Ltd
Original Assignee
Huawei Symantec Technologies 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 Huawei Symantec Technologies Co Ltd filed Critical Huawei Symantec Technologies Co Ltd
Priority to CN200910059381XA priority Critical patent/CN101894590A/zh
Publication of CN101894590A publication Critical patent/CN101894590A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明实施例公开了一种存数据纠错的方法、装置和设备,具体包括接收纠错控制信号,所述纠错控制信号用于指示待写入存储数据区的数据进行编码采用的纠错码模式;根据所述纠错控制信号从至少两种纠错码模式中确定所述数据进行编码采用的纠错码模式;对所述数据采用所述确定的纠错码模式的编码电路进行编码并生成编码校验位;将所述数据和所述编码校验位写入存储数据区,以实现在同一存储数据的编译码系统下对不同纠错码模式的兼容提供通用的技术手段。

Description

存储数据纠错的编码和译码方法,装置以及存储数据纠错设备
技术领域
本发明涉及存储技术领域,尤其涉及存储数据纠错的编码和译码方法,装置以及存储数据纠错设备。
背景技术
目前,闪存已具备很多传统硬盘无法比拟的良好特性,诸如小尺寸、大容量、非易失性、低功耗等。闪存控制器中必须设计纠错码(ECC,Error Correct Code)电路对数据进行保护,在一定错误范围内能够恢复数据。数据写入闪存数据区的同时对数据编码,编码完成后将编码计算得到的校验位写入闪存校验区。从闪存读取数据时需将校验位一同读出,进行译码,检测数据是否发生错误,如果有错,纠正数据错误。
对闪存纠错而言,常用的纠错码ECC主要有两种:RS码和BCH码。RS码是一类具有很强纠错能力的多进制BCH码,具有同时纠正突发错误和随机错误的能力,因而广泛应用于数据通信和数据存储系统的差错控制中,目前RS码已经成为存储系统的标准码。BCH码主要纠正随机单比特错误,适合目前闪存芯片的数据出错模式,因而在闪存控制设计中得到更多的应用。一般情况下,对单层单元闪存多使用RS码,对多层单元闪存多使用BCH码。
现有技术中,包括闪存在内的存储设备控制器设计通常需要根据设计需求,分别设计使用RS码纠错的存储设备控制器、使用BCH码纠错的存储设备控制器或者使用其他纠错方式的存储设备控制器。从现有技术的方案可以看出,现有的存储设备控制器纠错模式的配置和纠错码间的切换不灵活,当切换到另一种纠错模式需要通过更换存储设备控制器或者进行纠错码切换,即更新存储设备控制器的纠错电路部分,严重消耗成本,增加复杂度和纠错效率。
发明内容
本发明实施例提供存储数据纠错的编码和译码方法,装置以及存储数据纠错设备,以提升纠错码配置和纠错码间的切换的灵活性,实现不同纠错模式的兼容。
本发明的实施例提供存储数据纠错的编码方法,该方法包括:
接收纠错控制信号,所述纠错控制信号用于指示待写入存储数据区的数据进行编码采用的纠错码模式;
根据所述纠错控制信号从至少两种纠错码模式中确定所述数据进行编码采用的纠错码模式;
对所述数据采用所述确定的纠错码模式的编码电路进行编码并生成编码校验位;
将所述数据和所述编码校验位写入存储数据区。
本发明的实施例提供存储数据纠错的译码方法,该方法包括:
接收纠错控制信号,所述纠错控制信号用于指示需传送给需求端的存储数据进行译码采用的纠错码模式;
根据所述纠错控制信号从至少两种纠错码模式中确定从存储数据区读取的所述需传送给需求端的存储数据进行译码采用的纠错码模式;
对所述存储数据采用所述确定的纠错码模式的译码电路进行译码;
将译码后的所述存储数据传送给所述存储数据的需求端。
本发明的实施例提供存储数据纠错的编码装置,该装置包括:
纠错控制单元,用于提供纠错控制信号,指示待写入存储数据区的数据进行编码采用的纠错码模式;
模式编码单元,用于解析所述纠错控制信号,从至少两种纠错码模式中确定所述数据进行编码采用的纠错码模式,在所述纠错控制单元的控制下对所述数据采用所述确定的纠错码模式的编码电路进行编码并生成编码校验位;
数据传送单元,用于在所述纠错控制单元的控制下传送所述纠错控制信号、所述数据、所述编码校验位以及将编码后的所述数据和所述编码校验位写入所述存储数据区。
本发明的实施例提供存储数据纠错的译码装置,该装置包括:
纠错控制单元,用于提供纠错控制信号,指示从存储数据区读取的需传送给需求端的数据进行译码采用的纠错码模式;
模式译码单元,用于解析所述纠错控制信号,从至少两种纠错码模式中确定所述数据进行译码采用的纠错码模式,在所述纠错控制单元的控制下对所述数据采用所述确定的纠错码模式的译码电路进行译码;
数据传送单元,用于在所述纠错控制单元的控制下传送所述纠错控制信号、所述数据以及将译码后的所述数据传送给所述数据的需求端。
本发明的实施例提供存储数据纠错设备,该设备包括:
纠错控制器,用于提供纠错控制信号,指示待写入存储数据区的数据进行编码采用的纠错码模式或从存数数据区读取出来需传送给需求端的存储数据进行译码采用的纠错码模式;
至少两种纠错模式的编码电路,用于接收和解析指示待写入存储数据区的数据进行编码采用的纠错码模式的纠错控制信号,采用所述确定的纠错码模式的编码电路对所述数据进行编码并生成编码校验位
至少两种纠错模式的译码电路,用于接收和解析指示需传送给需求端的数据进行译码采用的纠错码模式的纠错控制信号,采用所述确定的纠错码模式的译码电路进行译码。
数据传送装置,用于在所述纠错控制单元的控制下传送所述纠错控制信号、所述数据、以及将译码后的所述数据传送给所述数据的需求端或将编码后的所述数据和所述编码校验位写入所述存储数据区。
由上述本发明的实施例提供的技术方案可以看出,通过接收纠错控制信号,所述纠错控制信号用于指示待写入存储数据区的数据进行编码采用的纠错码模式,根据所述纠错控制信号从至少两种纠错码模式中确定所述数据进行编码采用的纠错码模式,对所述数据采用所述确定的纠错码模式的编码电路进行编码并生成编码校验位,将所述数据和所述编码校验位写入存储数据区,可以灵活的根据存储设备芯片的出错模式配置更为合适的纠错码,使得存储设备控制器中对各内存设备的纠错模式的配置和切换变得更加灵活,从而实现纠错模式存储设备对纠错模式的兼容性提升。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例存储数据纠错的编码方法示意图;
图2为本发明一实施例存储数据纠错的译码方法示意图;
图3为本发明一实施例存储数据纠错的方法示意图;
图4为本发明一实施例存储数据纠错的编码方法下数据位宽转换示意图;
图5为本发明一实施例存储数据纠错的译码方法下数据位宽转换示意图;
图6为本发明一实施例存储数据纠错的编码装置示意图;
图7为本发明一实施例存储数据纠错的译码装置示意图;
图8为本发明一实施例存储数据纠错的设备示意图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
要实现存储设备对纠错模式的兼容性提升采用的两种纠错模式可配置实际上就是要把存储设备控制器中的纠错电路部分设计为可兼容两种纠错模式的形式。基于控制信号来选择存储数据的纠错模式,基于不同的纠错模式进行相应的位宽转化以使得内存控制器中对各内存设备的纠错模式的配置和切换变得更加灵活,下面结合存储数据纠错方法、装置和存储数据纠错设备的实施例加以描述。如下的存储数据纠错方法、装置以及设备适用于对存储数据的写入和读取过程,写数据和读数据均可采用下述的实施例执行。
本发明一实施例提供存储数据纠错的编码方法,如图1所示,包括如下的步骤:
S101,接收纠错控制信号,所述纠错控制信号用于指示待写入存储数据区的数据进行编码采用的纠错码模式。
本实施例描述数据写入存储数据区的编码方法。可以是应用户端的要求或者其他需求,需要做写入数据的编码操作,所述编码操作由纠错控制信号触发,纠错控制信号在可实施的多种纠错码中指示所述编码方法中对所述数据采用的纠错码模式。
S102,根据所述纠错控制信号从至少两种纠错码模式中确定所述数据进行编码采用的纠错码模式。
多种纠错码模式共存的编码电路下,根据纠错控制信号的指示从多种纠错码模式编码电路中确定对所述数据进行编码的纠错码模式。
S103,对所述数据采用所述确定的纠错码模式的编码电路进行编码并生成编码校验位。
若所述纠错控制信号指示按照多种纠错码模式中的第一纠错码模式进行编码,则按照所述第一纠错码模式对所述数据进行编码,生成编码校验位。
若所述纠错控制信号指示按照第二纠错码模式进行编码,并且所述第二纠错码模式编码占用的位宽非所述数据编码可操作的数据位宽时,对所述数据进行数据位宽转换,当转化为可操作的数据位宽时,对所述存储数据采用第二纠错码模式进行编码,同样的,生成编码校验位。
S104,将所述数据和所述编码校验位写入存储数据区。
包括所述存储数据区的存储设备可以为闪存,可读可写存储器、存储盘等。
采用本实施例的上述方案实现不同纠错码模式在同一存储设备中的模式兼容,采用两种及其以上纠错模式可配置实际上就是要把存储设备控制器中的纠错电路部分设计为可兼容的多种纠错模式的形式。基于控制信号来选择存储数据的纠错模式,基于不同的纠错模式进行相应的位宽转化以使得内存控制器中对各内存设备的纠错模式的配置和切换变得更加灵活。
本发明一实施例提供存储数据纠错的译码方法,如图2所示,包括如下的步骤:
S201,接收纠错控制信号,所述纠错控制信号用于指示需传送给需求端的存储数据进行译码采用的纠错码模式。
本实施例描述存储数据读取时的纠错,即读出存储数据的纠错译码方法。接收存储数据纠错控制信号,根据控制信号的指示对应于需要读取的存储数据进行译码时采用的纠错码模式。从存储区读取出来的存储数据要发送到客户端需要经过译码处理,根据存储数据的特性以及不同纠错码的适用,对于不同的存储数据可能适用于不同的纠错码模式。
S202,根据所述纠错控制信号从至少两种纠错码模式中确定从存储数据区读取的所述需传送给需求端的存储数据进行译码采用的纠错码模式。
根据控制信号中携带的纠错模式指示确定读取出的存储数据的纠错码模式。每一译码系统中存在多种纠错码模式,多种纠错码模式的并存为数据译码提供了通用的译码方法以及有效对不同存储数据采用不同纠错码模式进行兼容,当接收到纠错控制信号后,通过控制信号的指示从译码系统中存在的多种纠错码模式中选择和所述控制信号指示对应的纠错码模式,确定用来对存储数据进行译码错作。
S203,对所述存储数据采用所述确定的纠错码模式的译码电路进行译码。
若所述控制信号指示按照第一纠错码模式进行译码,则按照所述第一纠错码模式对所述存储数据进行译码。若所述控制信号指示按照第二纠错码模式进行编码,则按照所述第二纠错码模式对所述存储数据进行译码,也可以是其他纠错码模式。若其中任一采用的纠错码模式下译码占用的位宽非常规的位宽时,如8bit,对所述存储数据进行数据位宽转换,当转化为可接受的数据位宽时,对所述存储数据采用对应的纠错码模式进行译码
S204,将译码后的所述存储数据传送给所述存储数据的需求端。
当没有进行位宽转换时,将译码后的所述存储数据直接传送给所述存储数据的需求端。当进行位宽转换则将同时读取出存放在数据缓存中的所述存储数据传送给所述存储数据的需求端。所述存储设备可以为闪存,可读可写存储器、存储盘等。
采用本实施例的上述方案实现不同纠错码模式在同一存储设备中的模式兼容,采用两种及其以上纠错模式可配置实际上就是要把存储设备控制器中的纠错电路部分设计为可兼容的多种纠错模式的形式。基于控制信号来选择存储数据的纠错模式,基于不同的纠错模式进行相应的位宽转化以使得内存控制器中对各内存设备的纠错模式的配置和切换变得更加灵活。
本发明一实施例提供存储数据纠错的方法,本实施例以一存储数据从写入到读取的纠错编译码处理存储数据从写入到读取的纠错全过程由控制器控制在整个ECC电路中实施,其中包括数据传输以及数据流向的控制。以闪存为例,如图3所示,包括如下的步骤:
S301、进行闪存写数据操作时,控制器发送纠错控制信号指示数据写入采用的纠错码模式。
数据写入闪存时,需要进行数据编码操作以提升闪存的存储性能和写入数据的可靠性,所述数据可以是用户数据或者其他需要进行存储的终端数据、服务器数据等。对待写入数据的编码操作通过编码电路实施,本实施例的编译码系统中存在多种编码电路,不同的编码电路可以采用的编码模式不同,即不同的纠错码模式,本实施例中由于可兼容不同的纠错码模式,所以提供了写数据时编码的通用性,无需配置不同的编译码系统,在一个编译码系统中实现不同纠错码模式的兼容。对于在不同的纠错码模式中选择对待写入数据采用的纠错码模式由控制器控制,通过纠错控制信号触发。控制器发送控制信号,所述控制信号指示所述数据需要写入闪存的同时指示所述数据编码时的纠错码模式,所述纠错码模式可以包括BCH模式、RS模式或者其他已有或未来将会存在的其他纠错码模式,这里称其为第三纠错模式。
S302、根据纠错控制信号携带的信息,从多种编码电路对应的纠错码模式中确定对待写入数据进行编码采用的纠错码模式。
接收到所述控制信号后,按照控制信号的指示确定所述数据的编码模式。当待编码数据通过控制器控制输入编译码系统,控制器发送的控制信号指示了所述待编码数据采用的编码模式,如按照步骤S301中的模式所示,若指示按照BCH模式进行编码,则对所述数据进行BCH模式的编码,若按照RS模式进行编码,则对所述数据进行RS模式的编码,或者指示按照第三模式进行编码。若没有所述纠错控制信号指示的纠错码模式对应的编码电路,则默认为预设的纠错码模式对应的编码电路进行数据编码操作。
S303、对所述采用的纠错码模式占用位宽和数据传输占用的位宽进行比较,若满足设定条件,则执行步骤S305,否则转至步骤S304执行。
进行确定编码模式操作还需要对适用的编码模式进行位宽转换。由于不同纠错码模式适用的位宽不同,当数据传输占用的位宽和不同模式编码位宽不一致时,需要进行位宽的转换。比较不同纠错码的位宽和数据传输位宽,当一致,转至步骤S305执行。通过步骤S302,若按照BCH模式编码,由于BCH模式码的位宽为8bits,和闪存端口数据传输位宽一致,应此可直接按照确定的BCH模式码编码。
S304、进行数据位宽转换到确定的纠错码模式占用位宽和数据编码所需位宽一致。
若按照RS模式编码,与所述BCH模式编码不同的是在所述数据进行RS编码前需对所述数据进行数据位宽的转换,对RS模式而言,RS模式码以symbol为单位,symbol的位宽由数据长度决定。闪存的纠错处理通常是对1个sector(512Bytes)数据进行操作。对1个sector长度的数据而言,RS码的每一个symbol位宽是9bits,而闪存端口数据传输是以字节为单位,因此,需要对RS模式下的数据进行数据位宽转换,如图4所示。结合RS模式以及闪存端口数据传输位宽的要求,在进行RS模式编码前要先对数据进行8bits到9bits转换,对数据位宽转化后的数据进行RS模式编码,生成8bits数据和8bits的编码校验位。
上述的数据位宽的转换可以采用下述的步骤实现:
将第1个9bits数据的低8bits作为第1个8bits数据输出;
将第1个9bits数据的最高bit与第2个9bits数据低7bits组合作为第2个8bits数据输出;
...
将第8个9bits数据的高8bits作为第9个8bits数据输出;
重复上述步骤,直到完成所有数据转换完成。
S305、采用确定的纠错码模式对应的编码电路对数据进行编码,将编码后的数据和生成的编码校验位写入闪存。
纠错码模式确定并且纠错码位宽和数据传输位宽一致,采用确定的纠错码模式对应的编码电路对数据进行编码,生成编码校验位,连同所述数据一并写入闪存中,所述写入闪存的数据称为存储数据。如上所述,由于存数设备端口数据传输的位宽的限制,可能会产生和编码的就错码模式的数据位宽不一致的情况,此时通过控制信号的指示获知纠错码模式后,需要根据存储设备端口数据传输模式确定是否进行数据位宽的转换以保证编码的有效实施。待数据写入闪存获得存储数据编码过程结束。
译码的方法似编码方法的逆过程,包括的步骤如下:
S306、进行从闪存读数据操作时,接收纠错控制信号,读取所述控制信号指示对应的存储数据,所述纠错控制信号指示所述存储数据译码采用的纠错码模式。
根据控制信号的指示首先从闪存中读取数据需求端所需的存储数据,对所述存储数据进行缓存和译码,由于在纠错码模式下的译码不能和数据同步,需要额外消耗译码时间,即检错再纠错,所以进行检错时需要将数据缓存,若数据无错则读取缓存数据传送给存储数据需求端。同编码,此时的纠错控制信号用于指示存储数据译码所采用的纠错码模式。编译码系统中同时存在支持不同纠错码模式的编解码电路,采用不同纠错码模式的编解码电路对数据进行编译码操作,对译码而言,多译码电路共存为在同一系统下对不同纠错码模式的选择提供了通用性,使得不用纠错码模式的译码可以在同一系统下实现兼容。译码的处理同样取决于纠错码模式,对于采用系统中众多纠错码模式的译码电路中哪一种需要根据控制信号的指示确定。
S307、根据纠错控制信号携带的信息,从多种译码电路对应的纠错码模式中确定对从闪存中读出的存储数据进行译码采用的纠错码模式。
此步骤同步骤S302,不同在于,确定的纠错码模式将用于对闪存中读出的存储数据进行译码。
S308、对所述译码采用的纠错码模式占用位宽和数据传输占用的位宽进行比较,若满足设定条件,则执行步骤S310,否则转至步骤S309执行。
此步骤同步骤S303。不同在于,此时进行的位宽比较为译码方法过程中的操作。
S309、进行数据位宽转换到确定的纠错码模式占用位宽和数据编码所需位宽一致。
若控制信号指示纠错码模式为RS模式,则进行数据位宽转换,与编码时的数据位宽转换不同在于此时进行的是9bits到8bits转换如图5所示,转换的步骤可以如下实现:
将第1个8bits数据与第二个8bits数据的最低位组合成第1个9bits数据;
将第2个8bits数据的高位与第3个数据低2bit组合成第2个9bits数据;
将第3个8bits数据的高位与第4个数据低3bit组合成第3个9bits数据;
...
将第8个8bits数据的高位与第9个数据组合成第9个9bits数据。
完成上述9步转换后,数据组合方式又回到第一步的情况。重复9步转换直到将所有数据都转换成9bits位宽。
S310、采用确定的纠错码模式对应的译码电路对数据进行译码,将译码后的存数数据发送给存储数据需求端。
若确定为RCH模式译码,则按照RCH模式对应的译码电路对所述存储数据进行译码操作,对从闪存中读取的存储数据首先进行检错,若没有错误则将缓存的所述存储数据传送给用户端,若发生错误,则对缓存的所述存数数据进行纠错,将纠错后的正确存数数据传送给用户端。
同一编译码系统下,对不同数据的编译码操作,当不同的纠错码模式之间具有继承性或者贯连性时,不同纠错码模式对应的电路可以部分复用,以RS码和BCH码为例,由于RS码是一种特殊的BCH码,因此,两种码有很大一部分电路是可以复用的,如乘法器等,对编解码电路的复用可以有效的节约逻辑资源。
采用本实施例的上述方案实现不同纠错码模式在同一存储设备中的模式兼容,采用两种及其以上纠错模式可配置实际上就是要把存储设备控制器中的纠错电路部分设计为可兼容的多种纠错模式的形式。基于控制信号来选择存储数据的纠错模式,基于不同的纠错模式进行相应的位宽转化以使得内存控制器中对各内存设备的纠错模式的配置和切换变得更加灵活。
本发明一实施例提供存储数据纠错的编码装置,如图6所示,由纠错控制单元601、模式编码单元602和数据传送单元603组成,具体的:
纠错控制单元601用于提供纠错控制信号,指示待写入存储数据区的数据进行编码采用的纠错码模式;模式编码单元602用于解析所述纠错控制信号,从至少两种纠错码模式中确定所述数据进行编码采用的纠错码模式,在所述纠错控制单元601的控制下对所述数据采用所述确定的纠错码模式的编码电路进行编码并生成编码校验位;数据传送单元603用于在所述纠错控制单元601的控制下传送所述纠错控制信号、所述数据、所述编码校验位以及将编码后的所述数据和所述编码校验位写入所述存储数据区。
本实施例的装置还包括数据位宽转换单元604,用于确定采用的纠错码模式后,对所述采用的纠错码模式下的数据位宽进行转换,转换所述数据位宽与所述存储数据编码可操作数据位宽一致。
本实施例所述模式编码单元602具体包括模式选择单元6021和至少两种编码电路6022,所述模式选择单元602解析指示待写入存储数据区的数据进行编码采用的纠错码模式的纠错控制信号,确定所述数据进行编码采用的纠错码模式,在所述纠错控制单元601的控制下选择至少两种编码电路6022中和所述采用的纠错码模式一致的编码电路,至少两种编码电路6022,根据模式选择单元6021结果,所述选择的编码电路对所述数据进行编码生成编码校验位。
本实施例中,纠错控制单元601对存储数据纠错的编码装置的工作及数据传输和流向进行控制,包括为模式编码单元602提供控制信号用以指示模式编码单元602对纠错模式的确定,控制数据、信号在各个单元间的传输和流向以及控制数据位宽的转换。模式编码单元602获得纠错控制单元601的控制信号后确定进行纠错编码的编码模式,以及根据确定的纠错模式进一步确定是否进行数据位宽转换,当需要进行数据位宽的转换时,在纠错控制单位601的控制下由所述数据位宽转换单元604进行位宽转换,数据位宽转换单元604处理后的数据被模式编码单元按照确定的编码模式进行编码,模式编码单元602编码后的数据连同编码生成的编码校验位写入存储设备的存储数据区605。
采用本实施例的上述方案实现不同纠错码模式在同一存储设备中的模式兼容,采用两种及其以上纠错模式可配置实际上就是要把存储设备控制器中的纠错电路部分设计为可兼容的多种纠错模式的形式。基于控制信号来选择存储数据的纠错模式,基于不同的纠错模式进行相应的位宽转化以使得内存控制器中对各内存设备的纠错模式的配置和切换变得更加灵活。
本发明一实施例提供存储数据纠错的译码装置,如图7所示,包括如下:纠错控制单元701、模式译码单元702和数据传送单元703,具体的,
纠错控制单元701用于提供纠错控制信号,指示从存储数据区读取的需传送给需求端的数据进行译码采用的纠错码模式;模式译码单元702,用于解析所述纠错控制信号,从至少两种纠错码模式中确定所述数据进行译码采用的纠错码模式,在所述纠错控制单元的控制下对所述数据采用所述确定的纠错码模式的译码电路进行译码;数据传送单元703,用于在所述纠错控制单元的控制下传送所述纠错控制信号、所述数据以及将译码后的所述数据传送给所述数据的需求端。
本实施例的装置还包括数据位宽转换单元704,用于确定采用的纠错码模式后,对所述采用的纠错码模式下的数据位宽进行转换,转换所述数据位宽与所述数据译码可操作数据位宽一致。
本实施例所述模式译码单元702包括模式选择单元7021和至少两种译码电路7022,所述模式选择单元702解析指示从存数数据区读取出来需传送给需求端的数据进行译码采用的纠错码模式的纠错控制信号,确定所述数据进行译码采用的纠错码模式,在所述纠错控制单元701的控制下选择至少两种译码电路7022中和所述采用的纠错码模式一致的译码电路,至少两种译码电路,根据模式选择单元7021的结果,所述选择的译码电路对所述数据进行译码。所述模式译码单元702还包括数据缓存单元7023,所述译码电路由译码检错电路和译码纠错电路组成,所述数据缓存单元7023对所述从存储数据区读取的数据进行缓存,当译码检错电路检测出所述数据有错误时,从所述数据缓存单元7023中提取所述数据进入译码纠错电路纠错,或当译码检错电路检测出所述数据没有错误,从所述数据缓存单元7023中提取所述数据传送给需求端。
本实施例中,纠错控制单元701对存储数据纠错的译码装置的工作及存储数据传输和流向进行控制,包括为模式译码单元702提供控制信号用以指示模式译码单元702对纠错模式的确定,控制存储数据、信号在各个单元间的传输和流向以及控制数据位宽的转换。模式译码单元702获得纠错控制单元701的控制信号后确定进行纠错译码的译码模式,以及根据确定的纠错模式进一步确定是否进行数据位宽转换,当需要进行数据位宽的转换时,在纠错控制单位701的控制下由所述数据位宽转换单元704进行位宽转换,数据位宽转换单元704处理后的存储数据被模式译码单元702按照确定的译码模式进行编码,模式译码单元702译码后,将缓存的所述数据传送给数据需求端706。
采用本实施例的上述方案实现不同纠错码模式在同一存储设备中的模式兼容,采用两种及其以上纠错模式可配置实际上就是要把存储设备控制器中的纠错电路部分设计为可兼容的多种纠错模式的形式。基于控制信号来选择存储数据的纠错模式,基于不同的纠错模式进行相应的位宽转化以使得内存控制器中对各内存设备的纠错模式的配置和切换变得更加灵活。
本发明一实施例提供存储数据纠错设备,包括:
纠错控制装置,用于提供纠错控制信号,指示待写入存储数据区的数据进行编码采用的纠错码模式或从存数数据区读取出来需传送给需求端的存储数据进行译码采用的纠错码模式;至少两种纠错模式的编码电路,用于接收和解析指示待写入存储数据区的数据进行编码采用的纠错码模式的纠错控制信号,采用所述确定的纠错码模式的编码电路对所述数据进行编码并生成编码校验位;至少两种纠错模式的译码电路,用于接收和解析指示需传送给需求端的数据进行译码采用的纠错码模式的纠错控制信号,采用所述确定的纠错码模式的译码电路进行译码;数据传送装置,用于在所述纠错控制装置的控制下传送所述纠错控制信号、所述数据、以及将译码后的所述数据传送给所述数据的需求端或将编码后的所述数据和所述编码校验位写入所述存储数据区;进一步的,还可以包括数据位宽转换装置,用于确定采用的纠错码模式后,对纠错码位宽和数据传输位宽不一致时的所述采用的纠错码模式下的数据位宽进行转换,转换所述数据位宽与所述数据编码或译码可操作数据位宽一致;进一步的,还可以包括数据缓存装置,所述译码电路由译码检错电路和译码纠错电路组成,所述数据缓存装置对从存储数据区读取的数据进行缓存,当译码检错电路检测出所述数据有错误时,从所述数据缓存装置中提取所述数据进入译码纠错电路纠错,或当译码检错电路检测出所述数据没有错误时,从所述数据缓存装置中提取所述数据传送给需求端。
本实施例采用的编码电路和译码电路根据不同纠错码模式的相关性可部分复用,如图8所示复用电路。
下面具体以RS纠错码和BCH纠错码并存的设备为例加以说明,如图8所示。
纠错控制装置根据设计需求选择RS纠错码或BCH纠错码实现纠错功能。控制数据流向,如果选择RS码,需要经过数据位宽转换装置。
数据位宽转换装置,主要针对RS码。RS码纠错以symbol为单位,symbol位宽由数据长度决定。闪存纠错通常是对1个sector(512Bytes)数据进行操作。对1个sector长度的数据而言,RS码的每一个symbol位宽是9bits,而flash端数据传输是以字节为单位,因此,纠错单元到Flash之间必须要进行数据位宽转换。数据送往算法可选单元(选择RS码)进行RS编码前,要先对数据进行8b-9b转换,编码输出数据和校验位位宽为8bits;数据从flash读出送往算法可选单元进行RS译码前,也需要先对数据进行8b-9b转换。此外,译码输出的错误位置也是symbol为基本单位(9bits位宽),为与数据位宽一致,译码输出也需要数据位宽转换单元进行9b-8b位宽转换。
转换过程为分为如下9步:
1、将第1个8bits数据与第二个8bits数据的最低位组合成第1个9bits数据;
2、将第2个8bits数据的高位与第3个数据低2bit组合成第2个9bits数据;
3、将第3个8bits数据的高位与第4个数据低3bit组合成第3个9bits数据;
...
9、将第8个8bits数据的高位与第9个数据组合成第9个9bits数据。
完成上述9步转换后,数据组合方式又回到1的情况。重复9步转换直到将所有数据都转换成9bits位宽。
对RS译码过程,译码输出的错误位置也是symbol为基本单位(9bits位宽),为与数据位宽一致,需要进行9b-8b位宽转换,该转换是8b-9b位宽转换的逆过程,转换过程如下图所示
转换过程分为如下9步:
1、将第1个9bits数据的低8bits作为第1个8bits数据输出;
2、将第1个9bits数据的最高bit与第2个9bits数据低7bits组合作为第2个8bits数据输出;
...
3、将第8个9bits数据的高8bits作为第9个8bits数据输出。
重复上述9步,直到完成所有数据转换。
至少两种纠错模式的编码电路和译码电路,以RS纠错码模式和BCH纠错码模式为例,每一种纠错码实现部分都包含编码和译码,编码是针对数据写入闪存过程,而译码则是针对数据从闪存的读过程。包含RS码编/译码电路RS-Encoder和RS-Decoder,BCH码编/译码电路BCH-Encoder和BCH-Decoder。两部分分别完成RS码和BCH码译码功能。RS纠错以symbol为单位(9bits位宽),因此RS-Encoder和RS-Decoder的输入输出端口位宽都为9bits,而BCH-Encoder和BCH-Decoder的输入输出端口位宽则都为8bits。所述编译码电路由纠错控制装置控制,根据纠错控制装置发送的纠错控制信号选择RS/BCH两种纠错码中的一种进行编码和译码。一旦纠错码选定,另一种纠错码的非公用部分电路会自动屏蔽。根据纠错控制单元的选择信号选择RS与BCH中一种实现数据纠错。RS码是一种特殊的BCH码,因此,两种码有很大一部分电路是可以复用的,如乘法器等,复用电路可以节约逻辑资源。
数据缓存装置:数据缓存装置主要针对译码,编码不需要数据缓存,这是因为RS/BCH编码可以与数据传输同步进行,而译码则不能做到与数据传输同步,需要消耗额外译码时间。当数据从闪存中读回时,同时送入数据缓存装置和译码电路。完成译码基本运算后,将数据从缓存读出,通过纠错控制装置送往数据需求端,同时对数据进行纠正。RS/BCH译码都不能做到与数据同步,需要额外消耗译码时间,需要先检错再纠错。检错的同时要将数据寄存下来。若数据无错,直接将数据读出送往数据需求端,若数据有错,纠错时将数据读出,同时进行错误纠正。数据缓存装置作用就是缓存数据。为弥补译码延迟时间,增大数据缓存装置的存储容量,可以设计流水译码结构,保证闪存读数据带宽不受译码影响。
数据传送装置,用于在所述纠错控制装置的控制下传送所述纠错控制信号、所述数据、以及将译码后的所述数据传送给所述数据的需求端或将编码后的所述数据和所述编码校验位写入所述存储数据区。具体体现为硬件装置或者不以单独的实体装置存在于所述设备中,可以通过计算机程序来指令相关的硬件来完成。
上述实施例的存储数据纠错设备可以是闪存控制器等具有存储数据编译码能力的设备,如在闪存控制器中,同时设计了两种常用纠错码RS和BCH。根据具体设计需求,只需要在初始时对闪存控制器进行配置,即可任意选择RS和BCH中的一种,不需要修改控制器。闪存控制器同时兼容多种纠错码,可灵活配置,这样做使得闪存控制器兼容性更好。同时,考虑到RS码和BCH码的相似性,在具体实现时,有很大一部分电路是可以复用的,也就是说,兼容这样两种特殊的算法,有效减少逻辑资源的使用。
采用本实施例的上述方案实现不同纠错码模式在同一存储设备中的模式兼容,采用两种及其以上纠错模式可配置实际上就是要把存储设备控制器中的纠错电路部分设计为可兼容的多种纠错模式的形式。基于控制信号来选择存储数据的纠错模式,基于不同的纠错模式进行相应的位宽转化以使得内存控制器中对各内存设备的纠错模式的配置和切换变得更加灵活。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (16)

1.一种存储数据纠错的编码方法,其特征在于,该方法包括:
接收纠错控制信号,所述纠错控制信号用于指示待写入存储数据区的数据进行编码采用的纠错码模式;
根据所述纠错控制信号从至少两种纠错码模式中确定所述数据进行编码采用的纠错码模式;
对所述数据采用所述确定的纠错码模式的编码电路进行编码并生成编码校验位;
将所述数据和所述编码校验位写入存储数据区。
2.如权利要求1所述的方法,其特征在于,所述对所述数据采用所述确定的纠错码模式的编码电路进行编码前还包括:
对所述确定采用的纠错码模式下的数据位宽进行转换,转换所述数据位宽与所述数据编码可操作数据位宽一致。
3.一种存储数据纠错的译码方法,其特征在于,该方法包括:
接收纠错控制信号,所述纠错控制信号用于指示需传送给需求端的存储数据进行译码采用的纠错码模式;
根据所述纠错控制信号从至少两种纠错码模式中确定从存储数据区读取的所述需传送给需求端的存储数据进行译码采用的纠错码模式;
对所述存储数据采用所述确定的纠错码模式的译码电路进行译码;
将译码后的所述存储数据传送给所述存储数据的需求端。
4.如权利要求3所述的方法,其特征在于,所述对所述存储数据采用所述确定的纠错码模式的译码电路进行译码前还包括:
对所述确定采用的纠错码模式下的数据位宽进行转换,转换所述数据位宽与所述存储数据译码可操作数据位宽一致。
5.如权利要求3或4所述的方法,其特征在于,所述对所述存储数据采用所述确定的纠错码模式的译码电路进行译码包括:
对从存储数据区读取的所述存储数据进行缓存;
对所述存储数据采用所述确定的纠错码模式的译码电路进行译码检错;
若发生错误数据,对缓存的所述存储数据进行译码纠错,否则将缓存的存储数据作为译码后的存储数据。
6.一种存储数据纠错的编码装置,其特征在于,包括:
纠错控制单元,用于提供纠错控制信号,指示待写入存储数据区的数据进行编码采用的纠错码模式;
模式编码单元,用于解析所述纠错控制信号,从至少两种纠错码模式中确定所述数据进行编码采用的纠错码模式,在所述纠错控制单元的控制下对所述数据采用所述确定的纠错码模式的编码电路进行编码并生成编码校验位;
数据传送单元,用于在所述纠错控制单元的控制下传送所述纠错控制信号、所述数据、所述编码校验位以及将编码后的所述数据和所述编码校验位写入所述存储数据区。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
数据位宽转换单元,用于确定采用的纠错码模式后,对所述采用的纠错码模式下的数据位宽进行转换,转换所述数据位宽与所述存储数据编码可操作数据位宽一致。
8.如权利要求6或7所述的装置,其特征在于,所述模式编码单元包括模式选择单元和至少两种编码电路,
所述模式选择单元解析指示待写入存储数据区的数据进行编码采用的纠错码模式的纠错控制信号,确定所述数据进行编码采用的纠错码模式,在所述纠错控制单元的控制下选择至少两种编码电路中和所述采用的纠错码模式一致的编码电路,
至少两种编码电路,根据模式选择单元的结果,所述选择的编码电路对所述数据进行编码生成编码校验位。
9.一种存储数据纠错的译码装置,其特征在于,包括:
纠错控制单元,用于提供纠错控制信号,指示从存储数据区读取的需传送给需求端的数据进行译码采用的纠错码模式;
模式译码单元,用于解析所述纠错控制信号,从至少两种纠错码模式中确定所述数据进行译码采用的纠错码模式,在所述纠错控制单元的控制下对所述数据采用所述确定的纠错码模式的译码电路进行译码;
数据传送单元,用于在所述纠错控制单元的控制下传送所述纠错控制信号、所述数据以及将译码后的所述数据传送给所述数据的需求端。
10.如权利要求9所述的装置,其特征在于,还包括:
数据位宽转换单元,用于确定采用的纠错码模式后,对所述采用的纠错码模式下的数据位宽进行转换,转换所述数据位宽与所述数据译码可操作数据位宽一致。
11.如权利要求9或11所述的装置,其特征在于,所述模式译码单元包括模式选择单元和至少两种译码电路,
所述模式选择单元解析指示从存数数据区读取出来需传送给需求端的数据进行译码采用的纠错码模式的纠错控制信号,确定所述数据进行译码采用的纠错码模式,在所述纠错控制单元的控制下选择至少两种译码电路中和所述采用的纠错码模式一致的译码电路,
至少两种译码电路,根据模式选择单元的结果,所述选择的译码电路对所述数据进行译码。
12.如权利要求11所述的装置,其特征在于,所述模式译码单元还包括数据缓存单元,所述译码电路由译码检错电路和译码纠错电路组成,
所述数据缓存单元对所述从存储数据区读取的数据进行缓存,当译码检错电路检测出所述数据有错误时,从所述数据缓存单元中提取所述数据进入译码纠错电路纠错,或当译码检错电路检测出所述数据没有错误时,从所述数据缓存单元中提取所述数据传送给需求端。
13.一种存储数据纠错设备,其特征在于,包括:
纠错控制器,用于提供纠错控制信号,指示待写入存储数据区的数据进行编码采用的纠错码模式或从存数数据区读取出来需传送给需求端的存储数据进行译码采用的纠错码模式;
至少两种纠错模式的编码电路,用于接收和解析指示待写入存储数据区的数据进行编码采用的纠错码模式的纠错控制信号,采用所述确定的纠错码模式的编码电路对所述数据进行编码并生成编码校验位
至少两种纠错模式的译码电路,用于接收和解析指示需传送给需求端的数据进行译码采用的纠错码模式的纠错控制信号,采用所述确定的纠错码模式的译码电路进行译码。
数据传送装置,用于在所述纠错控制单元的控制下传送所述纠错控制信号、所述数据、以及将译码后的所述数据传送给所述数据的需求端或将编码后的所述数据和所述编码校验位写入所述存储数据区。
14.如权利要求13所述的设备,其特征在于,所述设备还包括:
数据位宽转换单元,用于确定采用的纠错码模式后,对所述采用的纠错码模式下的数据位宽进行转换,转换所述数据位宽与所述数据编码或译码可操作数据位宽一致。
15.如权利要求13或14所述的设备,其特征在于,所述设备还包括数据缓存装置,所述译码电路由译码检错电路和译码纠错电路组成,
所述数据缓存单元对从存储数据区读取的数据进行缓存,当译码检错电路检测出所述数据有错误时,从所述数据缓存单元中提取所述数据进入译码纠错电路纠错,或当译码检错电路检测出所述数据没有错误时,从所述数据缓存单元中提取所述数据传送给需求端。
16.如权利要求13所述的设备,其特征在于,所述采用的编码电路和所述采用的译码电路根据对应的纠错码模式间的相关性可部分复用。
CN200910059381XA 2009-05-21 2009-05-21 存储数据纠错的编码和译码方法,装置以及存储数据纠错设备 Pending CN101894590A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910059381XA CN101894590A (zh) 2009-05-21 2009-05-21 存储数据纠错的编码和译码方法,装置以及存储数据纠错设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910059381XA CN101894590A (zh) 2009-05-21 2009-05-21 存储数据纠错的编码和译码方法,装置以及存储数据纠错设备

Publications (1)

Publication Number Publication Date
CN101894590A true CN101894590A (zh) 2010-11-24

Family

ID=43103752

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910059381XA Pending CN101894590A (zh) 2009-05-21 2009-05-21 存储数据纠错的编码和译码方法,装置以及存储数据纠错设备

Country Status (1)

Country Link
CN (1) CN101894590A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102355331A (zh) * 2011-10-11 2012-02-15 中国科学院微电子研究所 一种通用多模式译码装置
CN102543207A (zh) * 2010-12-17 2012-07-04 西安奇维测控科技有限公司 一种在闪存控制器中rs纠检错算法的高效利用方法
CN103297184A (zh) * 2012-02-24 2013-09-11 瑞鼎科技股份有限公司 数字数据处理方法及数字数据传输系统
CN105609141A (zh) * 2015-12-18 2016-05-25 中国科学院计算技术研究所 一种用于自动校正访问存储装置数据的装置及方法
CN106328209A (zh) * 2015-06-30 2017-01-11 中国科学院电子学研究所 存储器单粒子多位翻转容错方法及电路
CN108255633A (zh) * 2016-12-28 2018-07-06 旺宏电子股份有限公司 存储控制方法、存储装置
CN109802760A (zh) * 2018-12-29 2019-05-24 北京行易道科技有限公司 数据的存储方法及装置,数据的解码方法
CN112017725A (zh) * 2019-05-28 2020-12-01 慧荣科技股份有限公司 超前处理的数据保护的非挥发性存储器存取方法和设备
CN113485866A (zh) * 2021-07-02 2021-10-08 海光信息技术股份有限公司 译码方法及相关装置、电子设备和存储介质

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102543207A (zh) * 2010-12-17 2012-07-04 西安奇维测控科技有限公司 一种在闪存控制器中rs纠检错算法的高效利用方法
CN102355331B (zh) * 2011-10-11 2013-10-02 中国科学院微电子研究所 一种通用多模式译码装置
CN102355331A (zh) * 2011-10-11 2012-02-15 中国科学院微电子研究所 一种通用多模式译码装置
CN103297184B (zh) * 2012-02-24 2017-05-03 瑞鼎科技股份有限公司 数字数据处理方法及数字数据传输系统
CN103297184A (zh) * 2012-02-24 2013-09-11 瑞鼎科技股份有限公司 数字数据处理方法及数字数据传输系统
CN106328209A (zh) * 2015-06-30 2017-01-11 中国科学院电子学研究所 存储器单粒子多位翻转容错方法及电路
CN106328209B (zh) * 2015-06-30 2020-01-21 中国科学院电子学研究所 存储器单粒子多位翻转容错方法及电路
CN105609141A (zh) * 2015-12-18 2016-05-25 中国科学院计算技术研究所 一种用于自动校正访问存储装置数据的装置及方法
CN108255633A (zh) * 2016-12-28 2018-07-06 旺宏电子股份有限公司 存储控制方法、存储装置
CN109802760A (zh) * 2018-12-29 2019-05-24 北京行易道科技有限公司 数据的存储方法及装置,数据的解码方法
CN112017725A (zh) * 2019-05-28 2020-12-01 慧荣科技股份有限公司 超前处理的数据保护的非挥发性存储器存取方法和设备
CN112017725B (zh) * 2019-05-28 2022-10-21 慧荣科技股份有限公司 超前处理的数据保护的非挥发性存储器存取方法和设备
CN113485866A (zh) * 2021-07-02 2021-10-08 海光信息技术股份有限公司 译码方法及相关装置、电子设备和存储介质
CN113485866B (zh) * 2021-07-02 2023-05-09 海光信息技术股份有限公司 译码方法及相关装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
CN101894590A (zh) 存储数据纠错的编码和译码方法,装置以及存储数据纠错设备
US7900118B2 (en) Flash memory system and method for controlling the same
CN101950586B (zh) 存储控制器及控制数据读取的方法
EP2297641B1 (en) Efficient in-band reliability with separate cyclic redundancy code frames
EP2908254A1 (en) Data redundancy implementation method and device
US8090976B2 (en) Error correction for digital systems
CN102394114B (zh) 具有自适应纠错能力的bch码纠错方法
US20110016262A1 (en) Storage and method for performing data backup using the storage
CN103534968A (zh) 一种以太网物理层的编码、解码方法和装置
CN108737021A (zh) Polar码传输方法及装置
CN109582508B (zh) 用于nvdimm的数据备份和恢复方法、nvdimm控制器以及nvdimm
CN101140543B (zh) 支持flash页操作与流水线纠错码的数据交换装置与方法
US8910024B1 (en) Systems and methods for encoding data to meet an output constraint
KR102426047B1 (ko) 폴라 부호 복호화 장치 및 방법
CN112596674A (zh) 一种用于固态硬盘主控缓存数据双重保护的方法及系统
CN111221746B (zh) 数据储存系统与其相关方法
CN107710163B (zh) 一次写入型存储器码的纠错码管理的电路、系统和方法
CN114510368A (zh) 一种基于rs纠删码的编解码加速方法及系统
US6813700B2 (en) Reduction of bus switching activity using an encoder and decoder
US11392457B2 (en) Error correction method of a memory system
CN102568605B (zh) 系统总线检错纠错方法和nand flash控制器
CN113485866B (zh) 译码方法及相关装置、电子设备和存储介质
US8600766B2 (en) Method and apparatus for encoding and decoding data with altered bit sequence
CN103533372A (zh) 双向预测图像片的编码、解码方法及设备
CN112687324A (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
C53 Correction of patent for invention or patent application
CB02 Change of applicant information

Address after: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Applicant after: Huawei Symantec Technologies Co., Ltd.

Address before: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Applicant before: Chengdu Huawei Symantec Technologies Co., Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES CO., LTD. TO: HUAWEI DIGITAL TECHNOLOGY (CHENGDU) CO., LTD.

C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20101124