基于NANDflash的数据块处理方法和装置与流程

文档序号:15587792发布日期:2018-10-02 18:35阅读:217来源:国知局

本发明实施例涉及存储器技术,尤其涉及一种基于nandflash的数据块处理方法和装置。



背景技术:

众所周知,半导体存储器具有排列成阵列的大量存储器单元,阵列内一特定的存储器单元通常经由一字线(word-line,wl)与一对位线(bit-line,bl)选取。字线通常耦接至一行内各存储器单元的一个或多个控制栅。假设控制栅由nmos所形成,当耦接于其上的字线具有高电压时(即,被活化,activate),所有的存储器单元会被导通。位线对(blpair)通常耦接一列内各存储器单元的存储点至一感测放大器。位于被活化的字线与位线对的一交叉点的存储器单元便是被选择的存储器单元。通过控制字线和位线的高低电压可以实现存储单元的读写。

nandflash是flash内存的一种,属于非易失性半导体存储器。nandflash包括很多数据块,每个数据块由很多存储器单元组成,用于读写数据。其中,没有写满的数据块称为非满数据块或者打开状态(open)的数据块,而当数据块没有写满时,openwl数据会比较不稳定,即对已写数据进行多次的读操作常常会引起数据出现多个bit错误,甚至不可纠正的错误。



技术实现要素:

本发明实施例提供一种基于nandflash的数据块处理方法和装置,以解决现有技术中当数据块没有写满时而引起数据不稳定的问题。

第一方面,本发明实施例提供了一种基于nandflash的数据块处理方法,应用于nandflash存储设备,所述存储设备包括至少一个数据块,每个数据块包括至少一个数据页,该方法包括:检测目标数据块是否写满;当检测出目标数据块未写满时,检测目标数据块的写操作次数和读操作次数是否分别满足写操作预设条件和读操作预设条件;当检测出满足时,以目标数据块当前的第一个空白数据页为起始页,在包含所述第一个空白数据页的第一预设页数空白数据页内写入无效数据。

进一步的,当检测出目标数据块未写满时,该方法还包括:检测目标数据块中,从当前最后一个非空白数据页往前数的第二预设页数非空白数据页中是否存在读错误;当检测出存在读错误时,以目标数据块当前的第一个空白数据页为起始页,在包含所述第一个空白数据页的第一预设页数空白数据页内写入无效数据。

第二方面,本发明实施例提供了一种基于nandflash的数据块处理装置,应用于nandflash存储设备,所述存储设备包括至少一个数据块,每个数据块包括至少一个数据页,该装置包括:第一检测模块,用于检测目标数据块是否写满;第二检测模块,用于当第一检测模块检测出目标数据块未写满时,检测目标数据块的写操作次数和读操作次数是否分别满足写操作预设条件和读操作预设条件;无效数据写入模块,用于当第二检测模块检测出所述写操作次数和读操作次数分别满足写操作预设条件和读操作预设条件时,以目标数据块当前的第一个空白数据页为起始页,在包含所述第一个空白数据页的第一预设页数空白数据页内写入无效数据。

进一步的,该装置还包括:第三检测模块,用于当第一检测模块检测出目标数据块未写满时,检测目标数据块中,从当前最后一个非空白数据页往前数的第二预设页数非空白数据页中是否存在读错误;所述无效数据写入模块,还用于当第三检测模块检测出存在读错误时,以目标数据块当前的第一个空白数据页为起始页,在包含所述第一个空白数据页的第一预设页数空白数据页内写入无效数据。

本发明实施例通过判断目标数据块是否写满,对于未写满的目标数据块,当其写操作次数和读操作次数分别满足写操作预设条件和读操作预设条件时,以目标数据块当前的第一个空白数据页为起始页,在包含第一个空白数据页的第一预设页数空白数据页内写入无效数据,以解决现有技术中当数据块没有写满时而引起数据不稳定的问题。

附图说明

图1是本发明实施例一中一种基于nandflash的数据块处理方法的流程图;

图2是本发明实施例二中一种基于nandflash的数据块处理方法的流程图;

图3是本发明实施例三中一种基于nandflash的数据块处理装置的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1为本发明实施例一提供的一种基于nandflash的数据块处理方法的流程图,本实施例可适用于基于nandflash的数据块处理的情况,应用于nandflash存储设备,该方法可以由具有基于nandflash的数据块处理功能的装置来执行,该装置可以采用软件和/或硬件的方式实现。本发明实施例一提供的方法具体包括:

s110、检测目标数据块是否写满。

具体的,nandflash内存是flash内存的一种,属于非易失性存储设备。存储设备的主要功能是存储程序和各种数据,并能高速、自动地完成程序或数据的存取。nandflash存储设备包括至少一个nandflash单元,每个nandflash单元包括至少一个数据块,每个数据块包括至少一个数据页。nandflash存储设备容量较大,改写速度快,适用于大量数据的存储。nandflash以页为单位对数据进行读写,以块为单位擦除数据,按照这样的组织方式可以形成三类地址:列地址(地址的低八位)、页地址和块地址,通过对三类地址的管理对数据进行处理。nandflash内存以块为单位进行擦除操作。闪存的写入操作必须在空白区域进行,如果目标区域已经有数据,必须先擦除后写入。

写操作是指,将待写入数据写入到nandflash中目标地址对应的存储位置。以数据页为单位,对目标数据块进行写操作。若目标数据块中的数据页都有数据写入并写满,即目标数据块已写满。

s120、当检测出目标数据块未写满时,检测目标数据块的写操作次数和读操作次数是否分别满足写操作预设条件和读操作预设条件。

在一种实施方式中,可以通过预设变量来记录数据块的写操作次数和读操作次数。可选的,写操作预设条件为,当写操作次数小于第一预设次数x;读操作预设条件为,当读操作次数大于第二预设次数d。当检测到目标数据块未写满时,判断目标数据块的写操作次数是否小于第一预设次数x,以及读操作次数是否大于第二预设次数d。

s130、当检测出满足时,以目标数据块当前的第一个空白数据页为起始页,在包含所述第一个空白数据页的第一预设页数空白数据页内写入无效数据。

具体的,当检测出写操作次数小于第一预设次数x且读操作次数大于第二预设次数d时,在空白数据页中写入无效数据。目标数据块当前的第一个空白数据页记为k,第一预设页数为y1,从第空白数据页k开始之后的第一预设页数y1页的空白数据页中写入无效数据。可选的,对写入的无效数据的内容不做具体限定,可以是任意写入无效数据,也可以是预先在算法中设定一个无效数据表,当需要在发生读错误的数据页中写入无效数据时,从该无效数据表中选择无效数据进行写入。空白数据页中写入无效数据后,数据块中之前的数据页中写入的有效数据对应的存储单元状态发生改变,有效数据也变稳定。

本发明实施例通过判断目标数据块是否写满,对于未写满的目标数据块,当其写操作次数和读操作次数分别满足写操作预设条件和读操作预设条件时,以目标数据块当前的第一个空白数据页为起始页,在包含第一个空白数据页的第一预设页数空白数据页内写入无效数据,以解决现有技术中当数据块没有写满时而引起数据不稳定的问题。

实施例二

图2为本发明实施例一提供的一种基于nandflash的数据块处理方法的流程图,实施例二以实施例一为基础进行了优化,该方法还包括“检测目标数据块中,从当前最后一个非空白数据页往前数的第二预设页数非空白数据页中是否存在读错误;当检测出存在读错误时,以目标数据块当前的第一个空白数据页为起始页,在包含所述第一个空白数据页的第一预设页数空白数据页内写入无效数据”。本发明实施例二提供的方法的具体包括:

s210、检测目标数据块是否写满。

s220、当检测出目标数据块未写满时,检测目标数据块的写操作次数和读操作次数是否分别满足写操作预设条件和读操作预设条件。

s230、当检测出满足时,以目标数据块当前的第一个空白数据页为起始页,在包含所述第一个空白数据页的第一预设页数空白数据页内写入无效数据。

s240、当检测出目标数据块未写满时,检测目标数据块中,从当前最后一个非空白数据页往前数的第二预设页数非空白数据页中是否存在读错误。

具体的,对目标数据块中的数据页进行检测,当前最后一个非空白数据页记为n,第二预设页数为y2,检测范围为从非空白数据页n开始,往前数第二预设页数y2的非空白数据页,检测该范围内的非空白数据页中是否存在读错误。可选的,读错误可以是一个或多个数据页中出现内容混乱的现象。

s250、当检测出存在读错误时,以目标数据块当前的第一个空白数据页为起始页,在包含所述第一个空白数据页的第一预设页数空白数据页内写入无效数据。

具体的,当检测出读错误时,从第空白数据页k开始之后的第一预设页数y1页的空白数据页中写入无效数据。

需要说明的是,在本实施例中,当检测出目标数据块未写满时,通过两个检测条件来进一步确定是否需要写入无效数据,分别是检测目标数据块的写操作次数和读操作次数是否分别满足写操作预设条件和读操作预设条件,以及检测目标数据块中从当前最后一个非空白数据页往前数的第二预设页数非空白数据页中是否存在读错误,从而进一步为已写入数据的稳定性提供保证。而在检测出目标数据块未写满时,对两个检测条件的执行顺序,本发明实施例不做任何限制。

本发明实施例中,当检测出目标数据块未写满时,通过上述两个检测条件来进一步确定是否需要写入无效数据,使得在这些无效数据之前的有效数据的存储单元状态发生变化,从而使这些无效数据之前写入的有效数据变得稳定。

实施例三

图3是本发明实施例三中一种基于nandflash的数据块处理装置的结构示意图,该装置具体包括:

第一检测模块310,用于检测目标数据块是否写满;

第二检测模块320,用于当第一检测模块310检测出目标数据块未写满时,检测目标数据块的写操作次数和读操作次数是否分别满足写操作预设条件和读操作预设条件;

无效数据写入模块330,用于当第二检测模块320检测出所述写操作次数和读操作次数分别满足写操作预设条件和读操作预设条件时,以目标数据块当前的第一个空白数据页为起始页,在包含所述第一个空白数据页的第一预设页数空白数据页内写入无效数据。

进一步的,该装置还包括第三检测模块:

第三检测模块,用于当第一检测模块检测出目标数据块未写满时,检测目标数据块中,从当前最后一个非空白数据页往前数的第二预设页数非空白数据页中是否存在读错误;

无效数据写入模块310,还用于当第三检测模块检测出存在读错误时,以目标数据块当前的第一个空白数据页为起始页,在包含所述第一个空白数据页的第一预设页数空白数据页内写入无效数据。

本发明实施例提供的基于nandflash的数据块处理装置可执行本发明任意实施例提供的基于nandflash的数据块处理方法,具备执行方法相应的功能模块和有益效果。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1