一种自适应调整纠错码的容错系统及方法与流程

文档序号:12005054阅读:257来源:国知局
一种自适应调整纠错码的容错系统及方法与流程
本发明涉及存储设备的智能容错领域,尤其涉及应用纠错码进行的自适应容错控制领域。

背景技术:
目前的存储设备在使用过程中或多或少都会发生故障,并不能完全保障存储数据的可靠性,可能会发生数据的读写错误,对系统的可靠运行产生影响。目前针对芯片级的容错方案主要采用的有TMR三模冗余技术以及纠错控制编码技术。其中TMR三模冗余技术需要将同样的数据存储于三个器件中,造成了资源和功耗的极大浪费,一般只用于关键控制处。而纠错控制编码的使用仅需要增加少数冗余位,便可以达到数据的纠检错目的,具有更高的使用效率。目前常用的纠错控制编码有Hamming码,BCH码和RS码,其中Hamming码的纠错能力最低,只能纠正一位错误,检测二位错误,实现也最为简单,冗余度最低,一般应用于SRAM、SDRAM等可靠性较高的器件。而RS码能够纠正多位突发错误,复杂度相对较高,占用冗余位较少,一般应用于恶劣环境下的SRAM、SDRAM等偶发相邻多位错误的情况。BCH码能够纠正多位随机错误,复杂度较RS码稍低,占用冗余位更多,一般应用于NandFlash等大容量非易失存储结构。各种纠错码有自己的利弊,传统的使用方法通过人为预先设定,设定后便不能更改,无法根据实际环境调整纠错码的使用。而几种纠错码复杂度相差很大,如果为了保证可靠性仅仅只使用一种纠错码,则在大部分低风险的区域造成了资源的极大浪费,不利于芯片使用效率的提升,与目前越来越快的数据传输速率发展趋势不符。因此,需要一种能够根据检测的环境信息自适应调整纠错码的容错系统及方法,不需要人为手工设定,可以通过系统自动完成纠错码之间的转换,保证系统可靠运行的同时,进一步提升芯片的读写吞吐率。

技术实现要素:
本发明的目的是缓解设备存储过程中发生的故障,有效利用各种纠错控制编码,纠正数据存储读写过程中出现的位翻转错误,保证设备可靠性的同时,提升纠错码的使用效率,避免只使用一种纠错控制编码造成的纠检错能力不足或者是资源和时间浪费。为达成所述目的,本发明提供的一种自适应调整纠错码的容错系统,所述系统具有环境信息传感模块、容错方案选择模块、纠错模块和目标处理模块,其中:环境信息传感模块与容错方案选择模块相连,用于获得影响目标处理模块中存储数据可靠性的因素信息;容错方案选择模块连接环境信息传感模块以及纠错模块,借助接收的环境信息传感模块传来的可靠性影响因素以及接收的纠错模块反馈的目标处理模块健康程度,容错方案选择模块生成并输出容错方案;纠错模块接收容错方案选择模块传来的容错方案,用于检测和纠正目标处理模块传来的数据中存在的错误;目标处理模块与纠错模块相连,用于发起数据的读写控制操作,向纠错模块发送原始数据及任务,存储纠错模块输出的可靠数据。本发明还提供一种自适应调整纠错码的容错方法,包含如下步骤:步骤S1:依靠目标处理模块运行过程中积累的容错方案使用经验,建立目标处理模块的可靠性影响因素及目标处理模块的健康程度对应的容错方案选择规则,构建存储容错方案选择规则的历史数据库;步骤S2:启动容错系统,对环境信息传感模块、容错方案选择模块、纠错模块以及目标处理模块初始化;步骤S3:容错方案选择模块中的实测数据子模块记录当前目标处理模块的健康程度信息,实测数据子模块记录环境信息传感模块测得的目标处理模块当前运行过程中的温度、辐射剂量、运行设备类型、运行设备写操作周期数、运行设备时间中的一种或几种可靠性影响因素;步骤S4:实测数据子模块根据记录的当前目标处理模块的健康程度信息的程度分级,建立目标处理模块的健康程度威胁等级特征,实测数据子模块根据记录的可靠性影响因素强弱分级,建立可靠性影响因素威胁等级特征,所述目标处理模块的健康程度威胁等级特征和可靠性影响因素威胁等级特征与历史数据库中的威胁等级特征一致;步骤S5:以健康程度威胁等级特征和可靠性影响因素威胁等级特征触发容错方案选择模块中的容错方案判定子模块,使容错方案判定子模块将健康程度威胁等级特征和可靠性影响因素威胁等级特征与历史数据库中的容错方案选择规则相匹配,判定目标处理模块的实际工作状态,输出选择的容错方案;步骤S6:纠错模块接收选择的容错方案,并调用与选择的容错方案相对应的纠错码完成数据的纠检错过程,反馈目标处理模块中运行设备的健康程度至实测数据子模块,得到纠错完成后的可靠数据;步骤S7:将纠错完成后得到的可靠数据传送至目标处理模块,执行任务,等待下一次的读写过程,重复步骤S2至步骤S7。所述自适应调整纠错码的容错方法依靠软件架构实现其功能,借助可靠性的影响因素及目标处理模块中运行设备的健康状态,不需用户手动选择,自适应调整纠错码的容错系统自动完成纠错码的转换,保证设备以最佳使用状态运行。本发明的有益效果或优点:本发明提供的自适应调整纠错码的容错系统及方法,其发明原理是容错系统内置容错方案选择模块,借助智能控制领域专家系统的相关思想,通过近年来的设备运行积累的经验,以及设备实时读写过程中出现的设备健康程度信息,构建历史数据库,以可靠性影响环境因素及目标处理模块健康程度为触发,通过匹配历史数据库,输出使用的纠检错方案至集成多种纠错方案的纠错模块。构建的历史数据库可以根据设备的运行情况进行调整,直至满足系统可靠性要求为止。实现了所使用容错方案的自动调整,无需人工干预,具有更高的使用效率。本发明的优点是:1)实现了存储设备读写过程中纠错码的自动转换,能够根据实时监测环境自适应调整使用的纠错码,在低风险时使用复杂度低的Hamming码,高风险时选择更高能力但复杂度相对高的BCH/RS码,保证可靠性的同时降低时间及资源冗余,能够保证一定的数据吞吐率。2)本发明可以表现为依靠软件实现的纠错控制系统,可以一定程度上取代传统由硬件电路构成的纠错控制电路,具有更高的可移植性。3)系统提供基于监测环境的纠错码选择方案,能够适应多种工作环境,甚至是高温、高辐射的环境。4)纠错码的选择规则可以根据实际运行情况进行修正,更改不合适的规则,保障纠错码的切换自动可靠进行,无需人工设定和更改,更为方便快捷。附图说明图1为本发明的自适应调整纠错码的容错系统原理框图。图2为本发明的容错方案选择模块具体连接框图。图3为本发明的自适应调整纠错码的容错系统的结构示意图。图4为本发明的自适应调整纠错码的容错方法实现流程图。图5为本发明的历史数据库构建流程图。具体实施方式为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。如图1所示,为本发明提供的自适应调整纠错码的容错系统原理框图,图中具体标识出了每一部分的连接关系。容错系统具有环境信息传感模块11、容错方案选择模块12、纠错模块13和目标处理模块14,其中:环境信息传感模块11与容错方案选择模块12相连,用于获得影响目标处理模块中存储数据可靠性的因素信息;容错方案选择模块12连接环境信息传感模块11以及纠错模块13,借助接收的环境信息传感模块11传来的可靠性影响因素以及接收的纠错模块13反馈的目标处理模块健康程度,容错方案选择模块12生成并输出容错方案;纠错模块13接收容错方案选择模块12传来的容错方案,用于检测和纠正目标处理模块14传来的数据中存在的错误;目标处理模块14与纠错模块13相连,用于发起数据的读写控制操作,向纠错模块发送原始数据及任务,存储纠错模块输出的可靠数据。其中,环境信息传感模块11直接连接在容错方案选择模块12上,提供可靠性影响因素,可靠性影响因素含有目标处理模块14当前运行过程中的温度、辐射剂量、运行设备型号、运行设备写操作周期数、运行设备时间中的一种或几种易于测量并对设备可靠性起到较大影响的因素。用户根据需要选择所需的环境信息传感器,并不仅仅局限于一类传感器,可以将不同类型的传感器组合使用,满足用户不同场合的可靠性需求。如图2及图3中示出本发明提供的容错方案选择模块具体连接框图,容错方案选择模块12是本发明提供的容错系统的核心模块包含:历史数据库121、实测数据子模块122和容错方案判定子模块123;其中:历史数据库121,用于永久或可更新的存储容错方案选择规则,所述容错方案选择规则是根据目标处理模块14运行过程中积累的容错方案使用经验,由可靠性影响因素威胁等级特征和目标处理模块14的健康程度威胁等级特征共同决定;实测数据子模块122,用于记录环境信息传感模块11传递而来的可靠性的影响因素信息,以及纠错模块13反馈的目标处理模块14中运行的设备健康程度信息,并将可靠性影响因素信息和目标处理模块14的健康程度信息按照强弱程度分级,建立与历史数据库121一致的威胁等级特征;容错方案判定子模块123,用于将实测数据子模块122中的可靠性影响因素威胁等级特征、目标处理模块14的健康程度威胁等级特征与历史数据库121中的容错方案选择规则相匹配,采用前向搜索、后向搜索或哈希查找匹配算法,得到选择的容错方案,最后将容错方案输出至纠错模块13。历史数据库121中容错方案选择规则的获取可以是手工的,也可以采用机器学习的相关方法自动获取。构建的历史数据库121可以是静态不变的,也可以是在运行过程中动态调整的。用户按照如果一种可靠性影响因素威胁等级特征和健康程度威胁等级特征的条件出现,那么一定会得到唯一一种所述条件对应的容错方案选择结果(Ifcondition,thenresult)的形式构建产生式规则。如图3所示为本发明提供的自适应调整纠错码的容错系统的一个具体实施案例中,其中:环境信息传感模块11具体包实现括温度传感器111、辐射剂量传感器112、以及目标处理模块14运行设备写周期数传感器113,输出环境温度、辐射剂量、运行设备写操作周期数至容错方案选择模块12。其中:容错方案选择模块12中的历史数据库121中存储预先根据目标处理模块运行过程中积累的容错方案使用经验确定的容错方案选择规则。其中:容错方案选择模块12中的实测数据子模块122将环境温度、辐射剂量、运行设备写操作周期数按照强弱等级构建可靠性影响因素威胁等级特征。其中:将纠错模块13反馈的目标处理模块14运行的设备类型,阈值时间t内发生的错误类型和该错误类型出现的概率按照影响程度构建目标处理模块的健康程度威胁等级特征。所述纠错模块13由ECC编码子模块131和ECC解码子模块132组成;ECC编码子模块131在写数据的过程中生成纠错所用的校验位;ECC解码子模块132在读数据的过程中完成纠错过程,反馈目标处理模块14的健康程度信息;纠错模块13在获得容错方案后,调用容错方案中选择的纠错码对应的ECC编码子模块131和ECC解码子模块132纠正目标处理模块传递的数据中可能出现的错误。纠错模块13中所述的ECC编码子模块131集成了多种纠错控制编码包括Hamming码、纠2位BCH码、纠4位BCH码、纠8位BCH码、纠16位BCH码、纠2位RS码、纠4位RS码、纠8位RS码、纠16位RS码中的一种或几种编码方案组成,所述编码方案是硬件实现的纠错码编码电路,或是软件实现的编码程序。所述ECC解码子模块132由Hamming码、纠2位BCH码、纠4位BCH码、纠8位BCH码、纠16位BCH码、纠2位RS码、纠4位RS码、纠8位RS码、纠16位RS码中的一种或几种解码方案组成,所述解码方案是硬件实现的纠错码解码电路,或是软件实现的解码程序。纠错模块13具体实现包括Hamming码133、纠2位BCH码134、纠4位BCH码135、纠8位BCH码136、纠2位RS码137、纠4位RS码138的编译码实现方案,所述实现方案分别包括ECC编码子模块和ECC解码子模块,可以是高度并行化的硬件编译码电路,或是软件实现的代码,实现对目标处理模块14中传递的原始数据的纠错检错过程。ECC编码子模块在写数据的过程中生成纠错所用的校验位;ECC解码子模块在读数据的过程中完成纠错过程,并将纠错完成的数据传送回目标处理模块14中,反馈目标处理模块的健康程度信息。其中:目标处理模块14具体实现为数据处理系统,用于发起数据的读写控制操作,向纠错模块13发送原始数据,存储纠错模块13输出的可靠数据。目标处理模块14包括:DSP芯片141、FPGA芯片142、SDRAM芯片143、NandFlash芯片144(NandFlash是芯片名称,本领域技术人员都知道的公知表示)、EEPROM芯片145、SRAM芯片146;在使用过程中由DSP芯片141、FPGA芯片142发起数据的读写任务,对SDRAM143、NandFlash芯片144、EEPROM145、SRAM146中存储的数据进行读写操作,用于完成与纠错模块13之间的数据传递。针对不同的芯片类型,用户可自行定制所需使用的纠错码。DSP芯片141完成整个系统的控制及主要数据处理过程,FPGA芯片142协助DSP芯片141控制NandFlash芯片144,并完成小数据量的数据处理工作。系统的外接存储器包括SDRAM芯片143、NandFlash芯片144、EEPROM芯片145、SRAM芯片146,其中SDRAM芯片143和SRAM芯片146用于存储DSP芯片141运行过程中需要存储的数据,NandFlash芯片144存储需要处理的大数据量的数据,EEPROM芯片145存储数据备份。除了以上存储器外,还存在DSP芯片141内部存储器以及FPGA芯片142的内部存储器。这些存储器在使用过程中存储的数据可能会存在或多或少的错误,影响设备可靠运行,用户可以通过本发明提供的系统对不同设备进行可靠性分析,选择最为适合的纠错码控制方案,实现使用效率与可靠性的有效提升。本发明的另一个具体实施案例中,目标处理模块14运行的设备为NandFlash芯片144,使用环境为恶劣空间环境,需要考虑辐射因素,需要2个环境传感模块,如图3所示,辐射剂量传感器112记录高能粒子(LET)通量的值,写周期数传感器113记录当前NandFlash芯片144已经写/擦除的次数。容错方案选择模块12包含实测数据子模块122,预先建立并存储于内存空间的历史数据库121以及执行历史数据库121与实测数据子模块122匹配过程输出容错方案的容错方案判定子模块123。纠错模块13包括高度并行化的软件实现的Hamming码133、纠2位BCH码134、纠4位BCH码135的ECC编码子模块和ECC解码子模块,纠错模块13接收到容错方案判定子模块123传递来的容错方案后,调用容错方案选择的纠错码的ECC编码子模块和ECC解码子模块执行目标处理模块14的NandFlash芯片144中存储的数据的纠检错过程。用户可根据此系统完成对NandFlash芯片144的自适应纠检错过程,根据环境恶劣程度选择效率最高的纠错码。下面结合图4和图5,说明本实施案例的具体实现流程。如图4所示,为本发明提供的自适应调整纠错码的容错方法实现流程图,该容错方法包含如下步骤:步骤S1:依靠目标处理模块14运行过程中积累的容错方案使用经验,建立目标处理模块14的可靠性影响因素及目标处理模块14的健康程度对应的容错方案选择规则,构建存储容错方案选择规则的历史数据库;步骤S2:启动容错系统,对环境信息传感模块11、容错方案选择模块12、纠错模块13以及目标处理模块14初始化;步骤S3:容错方案选择模块12中的实测数据子模块记录当前目标处理模块14的健康程度信息,实测数据子模块记录环境信息传感模块测得的目标处理模块当前运行过程中的温度、辐射剂量、运行设备类型、运行设备写操作周期数、运行设备时间中的一种或几种可靠性影响因素;步骤S4:实测数据子模块根据记录的当前目标处理模块14的健康程度信息的程度分级,建立目标处理模块的健康程度威胁等级特征,实测数据子模块根据记录的可靠性影响因素强弱分级,建立可靠性影响因素威胁等级特征,所述目标处理模块14的健康程度威胁等级特征和可靠性影响因素威胁等级特征与历史数据库中的威胁等级特征一致;步骤S5:以健康程度威胁等级特征和可靠性影响因素威胁等级特征触发容错方案选择模块12中的容错方案判定子模块,使容错方案判定子模块将健康程度威胁等级特征和可靠性影响因素威胁等级特征与历史数据库中的容错方案选择规则相匹配,判定目标处理模块14的实际工作状态,输出选择的容错方案;步骤S6:纠错模块13接收选择的容错方案,并调用与选择的容错方案相对应的纠错码完成数据的纠检错过程,反馈目标处理模块14中运行设备的健康程度至实测数据子模块,得到纠错完成后的可靠数据;步骤S7:将纠错完成后得到的可靠数据传送至目标处理模块14,执行任务,等待下一次的读写过程,重复步骤S2至步骤S7。在所述步骤S1中的建立历史数据库是本发明提供的容错方法的关键步骤。如图5所示是本发明提供的历史数据库构建流程图,历史数据库的构建包含如下步骤:步骤S11:确定可靠性影响因素,并根据影响因素的强弱进行分级,构建可靠性影响因素威胁等级特征。如在前面所述的实施案例中,针对恶劣环境中的NandFlash芯片,影响其存储数据可靠性的因素主要有辐射剂量(LET)大小、NandFlash芯片写/擦除操作周期数,构成环境信息传感模块11获得的可靠性影响因素信息,并根据各影响因素的强弱分级,建立无量纲量化威胁等级特征表。表1各因素无量纲量化威胁等级特征表步骤S12:构建目标处理模块14的健康程度威胁等级特征,确定容错方案选择规则的表示及存储形式。容错方案选择规则按照如果一种条件出现,那么一定会得到唯一一种所述条件对应的结果(Ifcondition,thenresult)的形式表示并存储,所述容错方案选择规则以可靠性影响因素威胁等级特征和目标处理模块14的健康程度威胁等级特征作为规则的条件(condition),在所述规则的条件下唯一对应的容错方案作为规则的结果(result)。如在前面所述的实施案例中,建立NandFlash芯片的类型是SLC型还是MLC型因素(SLC和MLC是NandFlash芯片类型名称,本领域内人员都了解其含义),以及阈值时间t内出现的错误类型及该错误类型出现的概率,对应的目标处理模块的健康程度威胁等级特征。根据健康程度威胁等级特征和可靠性影响因素威胁等级特征确定容错方案选择规则形式,将容错方案选择规则表示为:Rule(LET,CYCLE,TYPE,NUM,RATE,CODE)Rule表示一条容错方案选择规则,括号中的LET、CYCLE、TYPE、NUM、RATE为容错方案选择规则的条件,其中LET表示目标处理模块14的NandFlash芯片144当前运行过程中的辐射剂量、CYCLE表示NandFlash芯片144的写/擦除操作周期数、TYPE表示NandFlash芯片144的类型、NUM表示阈值t时间内错误的位数、RATE表示该错误位数出现的概率。CODE表示选择的容错方案,即使用何种纠错码,为容错方案选择规则的结果CODE。构成容错方案选择规则的存储形式如表2和表3所示,表2给出了容错方案选择规则的条件和结果所占用的存储位数;表3给出了每一个存储位的含义。表2:规则构成形式表3:每一位的含义步骤S13:根据已有的目标处理模块运行过程中积累的容错方案使用经验,建立以可靠性影响因素威胁等级特征和目标处理模块的健康程度威胁等级特征构成的规则条件(condition)与规则所选择的容错方案结果(result)之间对应的容错方案选择规则。容错方案选择规则构成形式为:如果一种可靠性影响因素威胁等级特征和健康程度威胁等级特征条件出现,那么一定会得到唯一一种所述条件对应的容错方案选择结果(Ifcondition,thenresult)。所述容错方案选择规则可以是根据以往经验获得的人工制定的规则,也可以是借助机器学习算法自动获得的规则。如前面所述的实施案例中的容错方案选择规则是依靠人工制定的。如表2所示,以可靠性影响因素威胁等级特征和目标处理模块14的健康程度威胁等级特征构成的条件(condition)由标志a1、a2、a3、a4、a5构成,结果(result)为标志a6对应的值。针对SLC型号的NandFlash芯片144,在弱辐射剂量、写/擦除操作周期数等级低时,如果阈值t时间内错误位数低于2位的比例为100%,则开始使用Hamming码。而当辐射剂量及写/擦除操作周期等级中以上时,若超出使用的纠错码的纠错能力的情况在5%以上,则选择更高能力的纠错码。当辐射剂量及写/擦除操作周期数等级中以下时,若持续阈值t时间内95%以上均低于纠错能力时,则选择低级别的纠错码,其他情况则维持当前纠错码不变。IFa1=00anda2=00anda3=0anda4=001ora4=000anda5=00,thena6=000,其中IF表示随后给出容错方案选择规则的条件,and表示逻辑运算“且”,or表示逻辑运算“或”,then表示规则的容错方案选择结果,给出了Hamming码的容错方案选择规则,依靠相同方法得到全部纠错码的容错方案选择规则。步骤S14:构成历史数据库规则表,存储于历史数据库中。如在前面所述的实施案例,将产生式规则以数组的形式存储于历史数据库中。步骤S15:根据测试获得的系统健康情况判断历史数据库是否合理,如果历史数据库合理,则保持此历史数据库不变,转入步骤S17,将历史数据库存储于DSP芯片内存空间;若不合理则转入步骤S16。如前面所述的实施案例,判断历史数据库合理与否需要进行NandFlash芯片144运行试验,在试验中监测NandFlash芯片144的运行状况,若NandFlash芯片144出错的概率高于设定的阈值,在上述实施案例中设定为0.001%,则历史数据库规则不合理,需要调整历史数据库。步骤S16:根据测试结果调整历史数据库,修改容错方案选择规则,并对历史数据库进行更新,重复步骤S12-步骤S15。步骤S17:输出历史数据库,将历史数据库存储于DSP芯片的内存空间中。如步骤S5所述的将健康程度威胁等级特征和可靠性影响因素威胁等级特征与历史数据库中的容错方案选择规则相匹配,所述匹配方法可以使用简单的前向搜索方法,也可以使用一些快速查找算法,如哈希查找法,二分查找法,输出纠错码的选择方案至纠错模块,完成纠错过程。如步骤S6所述的纠错模块调用相应的纠错码完成纠错过程,如上述实施案例中,使用的纠错码为借助DSP软件实现的Hamming码,纠2、4位错误的BCH码,在主频300MHz的ADSP-TS101芯片下编码程序运行占用的时间分别为1.98μs、14.4μs、19.5μs,解码程序运行占用的时间分别为2.07μs、19.9μs、44.2μs。可以看出不同能力的纠错码使用效率相差很大,充分说明了借助当前检测环境动态切换纠错码,可以有效降低时间消耗,提升纠错码的使用效率。本发明的自适应调整纠错码的容错方法依靠软件架构实现其功能,借助可靠性的影响因素及目标处理模块14中运行设备的健康状态,不需用户手动选择,自适应调整纠错码的容错系统自动完成纠错码的转换,保证设备以最佳使用状态运行。ECC、Hamming码、BCH码、RS码是纠错码领域的专用名词,没有其他的解释方法,该领域的人员可以读懂。上面描述是用于实现本发明及其实施例,本发明的范围不应由该描述来限定,本领域的技术人员应该理解,在不脱离本发明的范围的任何修改或局部替换,均属于本发明权利要求来限定的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1