一种存储设备纠错方法及纠错装置制造方法及图纸

技术编号:25086820 阅读:21 留言:0更新日期:2020-07-31 23:30
本发明专利技术公开了一种存储设备纠错方法及纠错装置,不需要针对不同的存储设备的纠错机制行为设置多套代码,也不需要在一套代码里面用宏区分多种存储设备的纠错机制行为,减少了编码工作,降低了后期维护成本。方法包括:当存储设备出现数据读取错误时,获取存储设备的纠错机制格式信息;根据纠错机制格式信息设置纠错机制标准格式信息,纠错机制标准格式信息包括头部信息及数据信息;解析纠错机制标准格式信息的头部信息,得到执行纠错机制行为所需的命令参数、寄存器参数及数据参数;根据命令参数、寄存器参数及数据参数执行纠错机制行为,从数据信息读取纠错机制行为数据;根据纠错机制行为数据判断纠错机制行为是否成功。

【技术实现步骤摘要】
一种存储设备纠错方法及纠错装置
本专利技术涉及数据处理领域,特别是涉及一种存储设备纠错方法及纠错装置。
技术介绍
NANDFLASH作为一种存储介质,在生活领域随处可见。随着技术提升,NANDFLASH也从单层单元(Single-LevelCell,SLC)发展到多层单元(XLC)。随着容量越来越大,稳定性却在变差,比特位翻转在提高,这就需要比较强的纠错机制。NANDFLASH受温度、存储时长等条件的影响,会导致比特位翻转骤然增高,这会使得纠错机制失效,发生读数据失败。NANDFLASH厂商提供了一种调整判定电压的机制,即是纠错机制,先可以移动判定电压,然后重新发起读。实际应用中判定的电压移动的方向和幅度是未知的。NANDFLASH往往会提供几种,甚至几十种组合,包含了可能的情况。使用者一个个的尝试,调整判定电压,读数据,如果数据正常就结束,否则继续下一个组合。对于纠错机制格式,不同NANDFLASH厂家做法不一样,同一个厂家不同款式可能也不一样。面对这么多厂家不同的格式,第一种方法是每适配一款NANDFLASH写一套对应的代码,随着适配的NANDFLASH增多,会形成多套代码;第二种方法是在一套代码里面,用宏区别彼此不同,根据不同的纠错机制格式编译对应代码。但是,第一种方法需要编写多套代码需要大量人力投入,造成时间和人力浪费,后期维护成本太高;而第二种方法在一套代码里面用宏区分,则不利于阅读,会对维护者造成困扰,可能会造成混乱,同样不利于后期维护。
技术实现思路
本专利技术的目的是提供一种存储设备纠错方法及纠错装置,不需要针对不同的存储设备的纠错机制行为设置多套代码,也不需要在一套代码里面用宏区分多种存储设备的纠错机制行为,减少了编码工作,降低了后期维护成本。本专利技术第一方面提供一种存储设备纠错方法,包括:当存储设备出现数据读取错误时,获取存储设备的纠错机制格式信息;根据纠错机制格式信息设置纠错机制标准格式信息,纠错机制标准格式信息包括头部信息及数据信息,头部信息包括执行纠错机制行为所需的参数,数据信息包括执行纠错机制行为的数据;解析纠错机制标准格式信息的头部信息,得到执行纠错机制行为所需的命令参数、寄存器参数及数据参数;根据命令参数、寄存器参数及数据参数执行纠错机制行为,从数据信息读取纠错机制行为数据;根据纠错机制行为数据判断纠错机制行为是否成功。进一步的,根据纠错机制格式信息设置纠错机制标准格式信息,包括:构建纠错机制结构体,纠错机制结构体包括第一结构体和第二结构体;根据纠错机制格式信息得到存储设备执行纠错机制行为的参数及数据;将参数存放至第一结构体,将数据存放至第二结构体;根据第一结构体中的参数得到头部信息,根据第二结构体中的数据得到数据信息;根据头部信息和数据信息得到纠错机制标准格式信息。进一步的,根据命令参数、寄存器参数及数据参数执行纠错机制行为,从数据信息读取纠错机制行为数据,包括:确定当前参数设置的次数;根据命令参数判断纠错机制行为是否需要前缀命令;若需要前缀命令,解析获取并发送前缀命令;若不需要前缀命令,不需要解析获取前缀命令;根据寄存器参数确定寄存器模式,寄存器模式包括SLC模式和XLC模式,SLC模式对应的是SLC相关的寄存器,XLC模式对应的是XLC相关的寄存器;根据寄存器参数确定寄存器地址,根据寄存器模式及寄存器地址确定目标寄存器,将目标寄存器发送至数据信息;根据数据参数确定目标寄存器对应的数据量,根据数据量确定目标寄存器中数据的位置;根据是否终止纠错机制行为、数据信息的SLC信息及XLC信息,依据当前参数设置的次数及目标寄存器中数据的位置,计算得到目标寄存器的纠错机制行为数据位置;根据目标寄存器的纠错机制行为数据位置,从数据信息中读取到纠错机制行为数据。进一步的,根据目标寄存器的纠错机制行为数据位置,从数据信息中读取到纠错机制行为数据之后,还包括:根据寄存器参数判断是否还有下一个寄存器;若还有下一个寄存器,则进行下一次参数设置;若没有下一个寄存器,则根据命令参数确定纠错机制行为是否需要后缀命令;若需要后缀命令,则解析获取并发送后缀命令,并判断是否终止纠错机制行为;若不需要后缀命令,则判断是否终止纠错机制行为;若需要终止纠错机制行为,则终止纠错机制行为。进一步的,根据纠错机制行为数据判断纠错机制行为是否成功,包括:若不需要终止纠错机制行为,则重新读取纠错机制行为数据,根据纠错机制行为数据判断纠错机制行为是否成功;若纠错机制行为成功,则终止纠错机制行为;若纠错机制行为不成功,则判断寄存器模式为SLC模式或XLC模式;若是SLC模式,则根据寄存器参数确定SLC模式的最大组合数;若是XLC模式,则根据寄存器参数确定XLC模式的最大组合数;判断SLC模式及XLC模式的最大组合数是否达到;若没有达到最大组合数,则进行下一次参数设置;若达到最大组合数,则判断是否终止纠错机制行为;若需要终止纠错机制行为,则终止纠错机制行为;若不需要终止纠错机制行为,则进行下一次参数设置。本专利技术第二方面提供一种存储设备纠错装置,包括:获取模块,用于当存储设备出现数据读取错误时,获取存储设备的纠错机制格式信息;设置模块,用于根据纠错机制格式信息设置纠错机制标准格式信息,纠错机制标准格式信息包括头部信息及数据信息,头部信息包括执行纠错机制行为所需的参数,数据信息包括执行纠错机制行为的数据;解析模块,用于解析纠错机制标准格式信息的头部信息,得到执行纠错机制行为所需的命令参数、寄存器参数及数据参数;执行模块,用于根据命令参数、寄存器参数及数据参数执行纠错机制行为,从数据信息读取纠错机制行为数据;纠错判断模块,用于根据纠错机制行为数据判断纠错机制行为是否成功。进一步的,设置模块包括:构建单元,用于构建纠错机制结构体,纠错机制结构体包括第一结构体和第二结构体;构建单元,还用于根据纠错机制格式信息得到存储设备执行纠错机制行为的参数及数据;构建单元,还用于将参数存放至第一结构体,将数据存放至第二结构体;设置单元,用于根据第一结构体中的参数得到头部信息,根据第二结构体中的数据得到数据信息;设置单元,还用于根据头部信息和数据信息得到纠错机制标准格式信息。进一步的,执行模块包括:第一确定单元,用于确定当前参数设置的次数;命令判断单元,用于根据命令参数判断纠错机制行为是否需要前缀命令;命令单元,用于若需要前缀命令,解析获取并发送前缀命令;命令单元,还用于若不需要前缀命令,不需要解析获取前缀命令;第一确定单元,还用于根据寄存器参数确定寄存器模式,寄存器模式包括SLC模式和XLC模式,SLC模式对应的本文档来自技高网...

【技术保护点】
1.一种存储设备纠错方法,其特征在于,包括:/n当存储设备出现数据读取错误时,获取所述存储设备的纠错机制格式信息;/n根据所述纠错机制格式信息设置纠错机制标准格式信息,所述纠错机制标准格式信息包括头部信息及数据信息,所述头部信息包括执行纠错机制行为所需的参数,所述数据信息包括执行所述纠错机制行为的数据;/n解析所述纠错机制标准格式信息的头部信息,得到执行所述纠错机制行为所需的命令参数、寄存器参数及数据参数;/n根据所述命令参数、所述寄存器参数及所述数据参数执行所述纠错机制行为,从所述数据信息读取纠错机制行为数据;/n根据所述纠错机制行为数据判断所述纠错机制行为是否成功。/n

【技术特征摘要】
1.一种存储设备纠错方法,其特征在于,包括:
当存储设备出现数据读取错误时,获取所述存储设备的纠错机制格式信息;
根据所述纠错机制格式信息设置纠错机制标准格式信息,所述纠错机制标准格式信息包括头部信息及数据信息,所述头部信息包括执行纠错机制行为所需的参数,所述数据信息包括执行所述纠错机制行为的数据;
解析所述纠错机制标准格式信息的头部信息,得到执行所述纠错机制行为所需的命令参数、寄存器参数及数据参数;
根据所述命令参数、所述寄存器参数及所述数据参数执行所述纠错机制行为,从所述数据信息读取纠错机制行为数据;
根据所述纠错机制行为数据判断所述纠错机制行为是否成功。


2.根据权利要求1所述的方法,其特征在于,所述根据所述纠错机制格式信息设置纠错机制标准格式信息,包括:
构建纠错机制结构体,所述纠错机制结构体包括第一结构体和第二结构体;
根据所述纠错机制格式信息得到所述存储设备执行纠错机制行为的参数及数据;
将所述参数存放至所述第一结构体,将所述数据存放至所述第二结构体;
根据所述第一结构体中的所述参数得到头部信息,根据所述第二结构体中的所述数据得到数据信息;
根据所述头部信息和所述数据信息得到纠错机制标准格式信息。


3.根据权利要求2所述的方法,其特征在于,所述根据所述命令参数、所述寄存器参数及所述数据参数执行所述纠错机制行为,从所述数据信息读取纠错机制行为数据,包括:
确定当前参数设置的次数;
根据所述命令参数判断所述纠错机制行为是否需要前缀命令;
若需要所述前缀命令,解析获取并发送所述前缀命令;
若不需要所述前缀命令,不需要解析获取所述前缀命令;
根据所述寄存器参数确定寄存器模式,所述寄存器模式包括单层单元SLC模式和多层单元XLC模式,所述SLC模式对应的是SLC相关的寄存器,所述XLC模式对应的是XLC相关的寄存器;
根据所述寄存器参数确定寄存器地址,根据所述寄存器模式及所述寄存器地址确定目标寄存器,将所述目标寄存器发送至所述数据信息;
根据所述数据参数确定所述目标寄存器对应的数据量,根据所述数据量确定所述目标寄存器中数据的位置;
根据是否终止所述纠错机制行为、所述数据信息的SLC信息及XLC信息,依据所述当前参数设置的次数及所述目标寄存器中数据的位置,计算得到所述目标寄存器的纠错机制行为数据位置;
根据所述目标寄存器的纠错机制行为数据位置,从所述数据信息中读取到纠错机制行为数据。


4.根据权利要求3所述的方法,其特征在于,所述根据所述目标寄存器的纠错机制行为数据位置,从所述数据信息中读取到纠错机制行为数据之后,还包括:
根据所述寄存器参数判断是否还有下一个寄存器;
若还有所述下一个寄存器,则进行下一次参数设置;
若没有所述下一个寄存器,则根据所述命令参数确定所述纠错机制行为是否需要后缀命令;
若需要所述后缀命令,则解析获取并发送所述后缀命令,并判断是否终止所述纠错机制行为;
若不需要所述后缀命令,则判断是否终止所述纠错机制行为;
若需要终止所述纠错机制行为,则终止所述纠错机制行为。


5.根据权利要求4所述的方法,其特征在于,根据所述纠错机制行为数据判断所述纠错机制行为是否成功,包括:
若不需要终止所述纠错机制行为,则重新读取所述纠错机制行为数据,根据所述纠错机制行为数据判断所述纠错机制行为是否成功;
若所述纠错机制行为成功,则终止所述纠错机制行为;
若所述纠错机制行为不成功,则判断所述寄存器模式为所述SLC模式或所述XLC模式;
若是所述SLC模式,则根据所述寄存器参数确定SLC模式的最大组合数;
若是所述XLC模式,则根据所述寄存器参数确定XLC模式的最大组合数;
判断所述SLC模式及所述XLC模式的最大组合数是否达到;
若没有达到所述最大组合数,则进行下一次参数设置;
若达到所述最大组合数,则判断是否终止所述纠错机制行为;
若需要终止所述纠错机制行为,则终止所述纠错机制行为;
若不需要终止所述纠错机制行为,则进行下一次参数设置。


6.一种存储设备纠错装置,其特征在于,包括:
获取模块,用于当存储设备出现数据读取错误时,获取所述存储设备的纠错机制格式信息;
设置模块,用于根据所述纠错机制格式信息设置纠错机制标准格式信息,...

【专利技术属性】
技术研发人员:段小康
申请(专利权)人:江苏芯盛智能科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1