一种非易失性存储器数据的读写控制方法及系统.pdf

上传人:54 文档编号:996413 上传时间:2018-03-24 格式:PDF 页数:17 大小:924.95KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910110589.X

申请日:

2009.10.23

公开号:

CN101727402A

公开日:

2010.06.09

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 12/06申请日:20091023|||公开

IPC分类号:

G06F12/06

主分类号:

G06F12/06

申请人:

深圳市江波龙电子有限公司

发明人:

李志雄; 邓恩华; 郭丹

地址:

518000 广东省深圳市南山区科发路8号金融服务技术创新基地1栋8楼A、B、C、D、E、F1

优先权:

专利代理机构:

深圳中一专利商标事务所 44237

代理人:

张全文

PDF下载: PDF下载
内容摘要

本发明适用于数据存储技术领域,提供了一种非易失性存储器数据的读写控制方法及系统,所述方法包括下述步骤:对非易失性存储器内的有效块进行区域划分,所述区域包括至少一个包含固定数量有效块的数据区域和一个包含至少两个有效块的交换区域;建立每个区域的逻辑块和物理块的对应关系表和生成块的逻辑页和物理页的对应关系表,将所述逻辑块和物理块的对应关系表及块的逻辑页和物理页的对应关系表存储到私有数据区;在所述数据区域块内的空闲页顺序写入数据块,或从所述数据区域内的有效页读取数据块,在有限的内存空间下,提高NAND?Flash数据的读写速度和效率。

权利要求书

1: 一种非易失性存储器数据的读写控制方法,其特征在于,所述方法包括下述步骤: 对非易失性存储器内的有效块进行区域划分,所述区域包括至少一个包含固定数量有效块的数据区域和一个包含至少两个有效块的交换区域; 建立每个区域的逻辑块和物理块的对应关系表; 根据块内页的冗余区信息生成所述块的逻辑页和物理页的对应关系表,将所述逻辑块和物理块的对应关系表及块的逻辑页和物理页的对应关系表存储到私有数据区; 在所述数据区域块内的空闲页顺序写入数据块,或从所述数据区域内的有效页读取数据块。
2: 如权利要求1所述的方法,其特征在于,所述在所述数据区域块内的空闲页写入或读出数据块的步骤之后还包括下述步骤: 在所述数据区域的第N块写入新数据块时,当所述第N块已写满时,则在所述交换区域申请一个空块,将所述新数据块暂时存储在所述交换区域的所述空块上,其中,N为大于等于1的整数。
3: 如权利要求2所述的方法,其特征在于,所述将所述新数据块暂时存储在所述交换区域的所述空块上的步骤之后还包括下述步骤: 当所述交换区域的所述空块也写满时,则向所述交换区域申请一个替换块,并将所述第N块和第N块所对应的交换块中的有效数据块拷贝搬移到所述替换块。
4: 如权利要求3所述的方法,其特征在于,所述当所述交换区域的所述空块也写满时,则向所述交换区域申请一个替换块,并将所述第N块和第N块所对应的交换块中的的有效数据块拷贝搬移到所述替换块的步骤之后,还包括下述步骤: 将已擦空的所述第N块和所述交换区域的空块添加到所述交换区域的先进先出队列。
5: 如权利要求3所述的方法,其特征在于,所述方法还包括下述步骤: 当有数据块的拷贝搬移操作时,更新所述区域的逻辑块和物理块的对应关系表; 当有新的数据块写入块的空闲页时,更新所述块的逻辑页和物理页的对应关系表。
6: 如权利要求1所述的方法,其特征在于,所述在所述数据区域的块的空闲页顺序写入数据块,或从所述数据区域内的有效页读取数据块的步骤具体包括下述步骤: 根据所述数据块的偏移地址计算所述数据块所在的区域; 在私有数据区读取所述区域的逻辑块和物理块的对应关系表; 查询所述逻辑块和物理块的对应关系表,确定所述数据块写入或读出的物理块; 在确定出的物理块的空闲页顺序写入数据块,或者从确定出的物理块读取数据块。
7: 一种非易失性存储器数据的读写控制系统,其特征在于,所述系统包括: 区域划分模块,用于对非易失性存储器内的有效块进行区域划分,所述区域包括至少一个包含固定数量有效块的数据区域和一个包含至少两个有效块的交换区域; 第一对应关系表建立模块,用于建立每个区域的逻辑块和物理块的对应关系表; 第二对应关系表生成模块,用于根据块内页的冗余区信息生成所述块的逻辑页和物理页的对应关系表; 存储模块,用于将所述第一对应关系表建立模块建立的每个区域的逻辑块和物理块的对应关系表及所述第二对应关系表生成模块生成的块的逻辑页和物理页的对应关系表存储到私有数据区;以及 数据块读写模块,用于在所述数据区域的块的空闲页顺序写入数据块,或从所述数据区域的有效页读出数据块。
8: 如权利要求7所述的系统,其特征在于,所述系统还包括: 数据块暂时存储模块,用于在所述数据区域的第N块写入新数据块时,当所述第N块已写满时,则在所述交换区域申请一个空块,将所述新数据块暂时存储在所述交换区域的所述空块上;以及 数据块拷贝搬移模块,用于当所述交换区域的所述空块也写满时,则向所述交换区域申请一个替换块,并将所述第N块的数据块和第N块所对应的交换块中的有效数据块拷贝搬移到所述替换块,其中,N为大于等于1的整数。
9: 如权利要求8所述的系统,其特征在于,所述数据块读写模块具体包括: 计算模块,用于根据所述数据块的偏移地址计算所述数据块所在的区域; 第一对应关系表读取模块,用于在私有数据区读取所述区域的逻辑块和物理块的对应关系表; 确定模块,用于查询所述逻辑块和物理块的对应关系表,确定所述数据块写入或读出的物理块; 写数据块模块,用于在确定的物理块的空闲页顺序写入数据块;以及 读数据块模块,用于从确定的物理块的有效页读出数据块。
10: 如权利要求8所述的系统,其特征在于,所述系统还包括: 更新模块,用于更新所述区域的逻辑块和物理块的对应关系表或块的逻辑页和物理页的对应关系表;以及 队列添加模块,用于将已擦空的所述第N块和所述交换区域的空块添加到所述交换区域的先进先出队列。

说明书


一种非易失性存储器数据的读写控制方法及系统

    【技术领域】

    本发明属于数据存储技术领域,尤其涉及一种非易失性存储器数据的读写控制方法及系统。

    背景技术

    非易失性存储器NAND Flash已经广泛应用于移动存储设备中,例如U盘,SD卡,SSD固态硬盘等,NAND Flash可以对称为Block的存储器单元块进行擦写和再编程。任何NAND Flash器件的写入操作只能在空或已擦除成空的单元内进行,所以为了保证写入数据的正确性,在进行写入操作之前必须先执行擦除的操作。

    目前,基于NAND Flash存储介质的文件系统中要写入一段数据时,首先要频繁的修改它的系统文件,例如普遍使用的微软Windows操作系统中的FAT文件系统要写入一个文件,必须要先修改FAT表和FDT表,而且这部分数据会反复修改多次后才写入文件内容数据。由于NAND Flas本身的特性,不能对同一页进行重复编程,必须整块先擦除后再编程(编程即数据写入),但是在擦除一个Block时,必须先把Block上的有效的数据保存到新的(空置Block)地址。

    图1示出了现有技术提供的NAND Flash数据写入操作过程,假如Block 1和Block 2都为NAND Flash中的一个标准大小的Block,其中,Block 1为已有数据存放区域,Block 2为一个空置的区域,现要将数据块A(大小小于等于一个Block)写入到Block 1中的逻辑A地址区域(就是数据块A的大小),在现有技术的NAND Flash芯片中,在A区域的起始逻辑地址写入数据时,其操作过程包括:

    步骤1:找到一个新的空置的Block 2,将Block 1的A区域以外的数据拷贝到Block 2中相应位置;

    步骤2:将要写入的数据块A直接写到Block 2中的A区域;

    步骤3:擦除Block 1。

    在步骤1中,即先拷贝Block 1中的B区域到Block 2中的B区域,再拷贝Block 1的C区域到Block 2的C区域。

    这种方法会导致系统文件所在的区域频繁的擦写,所带来的问题就是效率低下,而且对NAND Flash的磨损较大,影响存储器的寿命。

    根据以上方法所示步骤及图1,用现有的技术更新Block 1中逻辑地址为A的数据块时,在不考虑外面传输接口耗时的情况下所耗费的时间T为:

    T=TR*(M-N)+TW*(M-N)+TW*N+TD

    其中M为这个Block的总Page数,N为数据块A的Page数,TR为读取一个Page到RAM的时间,TW为RAM到Page的编程时间(写入时间),TD为擦除一个Block所耗的时间。其中TW远大于TR,所以可以近似的认为:

    T≈TWM-TWN+TWN+TD=TWM+TD

    因此,写入数据块A的效率比E为:

    E=写入数据块A的时间/T=TWN/(TWM+TD)

    当更新的数据块A越小时,效率越低,前面所述的FAT表、FDT表、文件内容数据分别都是一个数据块A,采用现有的技术,操作用时长,大大降低了系统存储文件的速度。

    综上所述,现有的NAND Flash数据的读写的效率较低,速度慢。

    【发明内容】

    本发明实施例的目的在于提供一种非易失性存储器数据的读写控制方法,旨在解决现有的NAND Flash数据的读写的效率较低,速度慢的问题。

    本发明实施例是这样实现的,一种非易失性存储器数据的读写控制方法,所述方法包括下述步骤:

    对非易失性存储器内的有效块进行区域划分,所述区域包括至少一个包含固定数量有效块地数据区域和一个包含至少两个有效块的交换区域;

    建立每个区域的逻辑块和物理块的对应关系表;

    根据块内页的冗余区信息生成所述块的逻辑页和物理页的对应关系表,将所述逻辑块和物理块的对应关系表及块的逻辑页和物理页的对应关系表存储到私有数据区;

    在所述数据区域块内的空闲页顺序写入数据块,或从所述数据区域内的有效页读取数据块。

    所述在所述数据区域块内的空闲页写入或读出数据块的步骤之后还包括下述步骤:

    在所述数据区域的第N块写入新数据块时,当所述第N块已写满时,则在所述交换区域申请一个空块,将所述新数据块暂时存储在所述交换区域的所述空块上。

    所述将所述新数据块暂时存储在所述交换区域的所述空块上的步骤之后还包括下述步骤:

    当所述交换区域的所述空块也写满时,则向所述交换区域申请一个替换块,并将所述第N块和第N块所对应的交换块中的有效数据块拷贝搬移到所述替换块。

    所述当所述交换区域的所述空块也写满时,则向所述交换区域申请一个替换块,并将所述第N块和第N块所对应的交换块中的的有效数据块拷贝搬移到所述替换块的步骤之后,还包括下述步骤:

    将已擦空的所述第N块和所述交换区域的空块添加到所述交换区域的先进先出队列。

    所述方法还包括下述步骤:

    当有数据块的拷贝搬移操作时,更新所述区域的逻辑块和物理块的对应关系表;

    当有新的数据块写入块的空闲页时,更新所述块的逻辑页和物理页的对应关系表。

    所述在所述数据区域的块的空闲页顺序写入数据块,或从所述数据区域内的有效页读取数据块的步骤具体包括下述步骤:

    根据所述数据块的偏移地址计算所述数据块所在的区域;

    在私有数据区读取所述区域的逻辑块和物理块的对应关系表;

    查询所述逻辑块和物理块的对应关系表,确定所述数据块写入或读出的物理块;

    在确定出的物理块的空闲页顺序写入数据块,或者从确定出的物理块读取数据块。

    本发明另一实施例的目的在于提供一种非易失性存储器数据的读写控制系统,所述系统包括:

    区域划分模块,用于对非易失性存储器内的有效块进行区域划分,所述区域包括至少一个包含固定数量有效块的数据区域和一个包含至少两个有效块的交换区域;

    第一对应关系表建立模块,用于建立每个区域的逻辑块和物理块的对应关系表;

    第二对应关系表生成模块,用于根据块内页的冗余区信息生成所述块的逻辑页和物理页的对应关系表;

    存储模块,用于将所述第一对应关系表建立模块建立的每个区域的逻辑块和物理块的对应关系表及所述第二对应关系表生成模块生成的块的逻辑页和物理页的对应关系表存储到私有数据区;以及

    数据块读写模块,用于在所述数据区域的块的空闲页顺序写入数据块,或从所述数据区域的有效页读出数据块。

    所述系统还包括:

    数据块暂时存储模块,用于在所述数据区域的第N块写入新数据块时,当所述第N块已写满时,则在所述交换区域申请一个空块,将所述新数据块暂时存储在所述交换区域的所述空块上;以及

    数据块拷贝搬移模块,用于当所述交换区域的所述空块也写满时,则向所述交换区域申请一个替换块,并将所述第N块的数据块和第N块所对应的交换块中的有效数据块拷贝搬移到所述替换块。

    所述数据块读写模块具体包括:

    计算模块,用于根据所述数据块的偏移地址计算所述数据块所在的区域;

    第一对应关系表读取模块,用于在私有数据区读取所述区域的逻辑块和物理块的对应关系表;

    确定模块,用于查询所述逻辑块和物理块的对应关系表,确定所述数据块写入或读出的物理块;

    写数据块模块,用于在确定的物理块的空闲页顺序写入数据块;以及

    读数据块模块,用于从确定的物理块的有效页读出数据块。

    所述系统还包括:

    更新模块,用于更新所述区域的逻辑块和物理块的对应关系表或块的逻辑页和物理页的对应关系表;以及

    队列添加模块,用于将已擦空的所述第N块和所述交换区域的空块添加到所述交换区域的先进先出队列。

    在本发明实施例中,在非易失性存储器上以固定数量个有效块Block为一个数据区域进行划分,并确定其中一个区域为交换区域;建立每个块中逻辑页和物理页的对照表和生成块的逻辑页和物理页的对应关系表,将所述逻辑块和物理块的对应关系表及块的逻辑页和物理页的对应关系表存储到私有数据区;在所述数据区域块内的空闲页写入或读出数据块,在有限的内存空间下,提高NAND Flash数据的读写速度和效率。

    【附图说明】

    图1是现有技术提供的非易失性存储器数据的读写控制方法的实现流程图;

    图2是本发明第一实施例提供的非易失性存储器数据的读写控制方法的实现流程图;

    图3是本发明第二实施例提供的非易失性存储器数据的读写控制方法的实现流程图;

    图4是本发明实施例提供的在数据区域的块的空闲页写入或读出数据块的实现流程图;

    图5是本发明实施例提供的非易失性存储器数据的读写控制方法的实现示意图;

    图6是本发明实施例提供的非易失性存储器数据的读写控制系统的结构框图;

    图7是本发明实施例提供的数据块读写模块的结构框图。

    【具体实施方式】

    为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

    在本发明实施例中,在非易失性存储器上以固定数量个有效块Block为一个数据区域进行划分,并确定其中一个区域为交换区域;建立每个块中逻辑页和物理页的对照表和生成块的逻辑页和物理页的对应关系表,将所述逻辑块和物理块的对应关系表及块的逻辑页和物理页的对应关系表存储到私有数据区;在所述数据区域块内写入或读出数据块。

    图2是本发明第一实施例提供的非易失性存储器数据的读写控制方法的实现流程,其具体的步骤如下所述:

    在步骤S101中,对非易失性存储器(NAND Flash)内的有效块进行区域划分,所述区域包括至少一个包含固定数量有效块的数据区域和一个包含至少两个有效块的交换区域。

    在本发明实施例中,划分的区域包括至少一个包含固定数量有效块的数据区域和一个包含至少两个有效块的交换区域。其中,每一个区域都存在一个对应的逻辑块和物理块的对应关系表,该对应关系表存储在区域的私有数据区,该逻辑块和物理块的对应关系表的建立可以随着区域的划分来动态建立,当使用完成之后,就释放内存,为建立下一个逻辑块和物理块的对应关系表提供内存空间。

    在本发明实施例中,数据区域内的有限块的个数由NAND Flash控制器的内存空间确定。数据区域包含固定数量的有效块,例如每个数据区域可以包含16个有效块;交换区域可以包含至少两个有效块,越大越有利于全局读写平衡,但是NAND FLASH的有效数据存储区会相对变小,其中,交换区域用于存放交换块和替换块,其逻辑结构是一个先进先出(First Input First Output,FIFO)队列。

    在步骤S102中,建立每个区域的逻辑块和物理块的对应关系表。

    在步骤S103中,根据块内页的冗余区信息生成所述块的逻辑页和物理页的对应关系表,将所述逻辑块和物理块的对应关系表及块的逻辑页和物理页的对应关系表存储到私有数据区。

    在本发明实施例中,在对数据区域的块进行读写操作时,根据块内页的冗余区信息生成所述块的逻辑页和物理页的对应关系表。

    当然,在该实施例中,上述块的逻辑页和物理页的对应关系表可以预先建立保存在块的某个特定位置,也可以根据对数据区域的块的读写操作时,动态生成,在此不用以限制本发明。

    在本发明实施例中,逻辑页和物理页的对应关系表的建立可以通过遍历数据区域的每一块中每一页的冗余区信息,可以约定页冗余区的第一个字节用于保存其所对应的逻辑页地址,以此建表,如果遇到相同的逻辑页地址,则以其中逻辑地址最大的地址中所存的物理地址为有效地址。

    在步骤S104中,在所述数据区域块内的空闲页顺序写入数据块,或从数据区域的有效页读出数据块。

    在本发明实施例中,通过在块内的空闲页顺序写入数据块,或从数据区域的有效页读出数据块,提高了数据读写效率和速度。

    图3示出了本发明第二实施例提供的非易失性存储器数据的读写控制方法的实现流程,其具体的步骤如下所述:

    在步骤S201中,对NAND Flash内的有效块(Block)进行区域划分。

    在本发明实施例中,该对NAND Flash内的有效块(Block)的区域划分,包括数据区域和交换区域的划分,也包括上述逻辑块和物理块的对应关系表及块的逻辑页和物理页的对应关系表的建立,上述有详细的描述,在此不再赘述,但不用以限制本发明。

    在步骤S202中,在所述数据区域的块的空闲页顺序写入数据块。

    在本发明实施例中,在数据区域的空闲页按照空闲页的先后顺序进行写数据块,其操作过程类似,下述有详细的步骤描述,在此不再赘述,但不用以限制本发明。

    在步骤S203中,在所述数据区域的第N块写入新数据块时,判断所述第N块是否写满,是则执行步骤S204,否则继续执行步骤S202。

    在本发明实施例中,上述数据区域的第N块,不是特指某个数据区域中的第N个有效块,是泛指,可以是第一块,也可以是第N块,,其中,N为大于等于1的整数,在此不用以限制本发明。

    在步骤S204中,当第N块已写满时,则在所述交换区域申请一个空块,将所述新数据块暂时存储在所述交换区域的所述空块上。

    在本发明实施例中,当上述某个数据区域的第N块写满时,则在所述交换区域申请一个空块,其中,该空块是根据交换区域的先进先出的原则来申请的。将需要写入上述某个数据区域的第N块的新数据块暂时写入所述申请的交换区域的空块,交换区域的空块做暂时存储数据块的作用。

    在本发明实施例中,作为暂时存储数据块的交换区域的空块,需要更新该空块的逻辑页和物理页的对应关系表,并且通过标识符来区别该逻辑页所对应的物理页是在所述第N块还是原本空块的。

    在本发明实施例中,上述将所述新数据块暂时存储在所述交换区域的空块上的过程实际就是在所述空块的空闲页写入新数据块的过程,在此不再赘述,但不用以限制本发明。

    在步骤S205中,判断所述交换区域的空块是否写满,是则执行步骤S206,否则继续执行步骤S204。

    在步骤S206中,当所述交换区域的所述空块也写满时,则向所述交换区域申请一个替换块。

    在本发明实施例中,当上述交换区域的空块也写满时,可以继续向交换区域申请第二个空块,将写入所述第N块的新数据存储到第二个空块,其具体的实现流程,类似于上述步骤,在此不再赘述。

    当所述交换区域的空块也写满时,向交换区域申请一个替换块,所述替换块也是空的。

    在步骤S207中,将所述第N块和第N块所对应的交换块中的有效数据块拷贝搬移到所述替换块。

    在本发明实施例中,申请到替换块之后,将上述某个数据区域第N块的数据块按照该第N块的逻辑页和物理页的对应关系表,按照逻辑页的顺序,把第N块和第N块所对应的交换块中的有效数据块拷贝搬移到所述替换块,同时更新所述第N块和第N块所对应的交换块中的有效数据块的逻辑页和物理页的对应关系表。

    当拷贝搬移结束后,更新所述第N块和第N块所对应的交换块中的有效数据块所在数据区域的逻辑块和物理块的对应关系表,将第N块和第N块所对应的交换块中的有效数据块的逻辑指针指向替换块,同时擦除所述第N块和交换区域的交换块上的数据块。

    在步骤S208中,将已擦空的所述第N块和所述交换区域的交换块添加到所述交换区域的先进先出队列。

    作为本发明的一个实施例,图4示出了本发明实施例提供的在所述数据区域的空闲块写入或读出数据块的实现流程,其具体步骤如下所述:

    在步骤S301中,根据所述数据块的偏移地址计算所述数据块所在的区域。

    在步骤S302中,在私有数据区读取所述区域的逻辑块和物理块的对应关系表。

    在步骤S303中,查询所述逻辑块和物理块的对应关系表,确定所述数据块写入或读出的物理块。

    在步骤S304中,根据所述物理块,在所述物理块的空闲页顺序写入数据块。

    在步骤S305中,从确定的物理块的有效页读出数据块。

    在本发明实施例中,当将数据块从数据区域的块中写入或读出时,要对块的逻辑页和物理页的对应关系表进行更新。

    作为本发明的另一个具体实施例,图5示出了本发明实施例提供的将所述第N块的数据块拷贝搬移到所述替换块的具体实现示意图,其具体为:在NANDFlash上以每16个有效块Block为一个数据区域Zone进行划分;交换区域Zone中的有效块Block数为大于等于2的任何数,越大越有利于全局读写平衡,但是NAND FLASH的有效数据存储区会相对变小。

    以下述区域为例进行说明,Zone 0,Zone 1,...为数据区域Zone,Zoneexchange为交换区域Zone。

    假设,现有位于Zone 0的Block 0待操作,因为Zone exchange中的Block为一个FIFO对列,所以,Block 4623作为交换Block,Block 4622作为替换Block,执行拷贝搬移操作之后,Block 4622替换Block 0成为Zone 0中的新的有效数据Block,Block 4623、Block 0擦除后进入Zone exchange的FIFO对列;

    第二次交换针对Zone 1中的Block 35,交换替换之后,Block 4618替换Block 35进入Zone 1成为新的有效数据Block,Block 4620、Block 35擦除后进入Zone exchange的FIFO对列;

    当有数据块读取时,根据数据块的起始偏移地址可以计算出该数据块所在的Zone,根据该逻辑Block所在Zone的逻辑Block和物理Block的对照表可以得到物理Block的地址,然后读取每一个Page的冗余区信息,建立逻辑Page和物理Page的对照表,然后查表就可以确定数据块所在的物理Page地址。

    如果Block中的逻辑Page和物理Page的对照表已经保存在某个固定的位置,可以直接读取,不需要重新建立。

    当多次执行交换、替换操作以后,各个数据Zone中的物理Block已经形成了离散分布,而且会随着读写次数的增加而离散的更加均匀。以此实现了一种简单有效的NAND Flash读写全局平衡磨损。

    在本发明实施例中,在不考虑外部传输和内部运算的时间损耗下,现有技术中拷贝S个数据长度为N个Page的文件所消耗的时间为T1:

    T1=(TR(M-N)+TW(M-N)+TWN+TD)×S

    本发明方法改进后所消耗的时间T2为:

    T2=TWNS+TP

    其中M为Block的总Page数,N为数据块A的Page数,TR为读取一个Page到RAM的时间,TW为RAM到Page的编程时间(写入时间),TD为擦除一个Block所耗的时间,TP表示当原Block和交换Block都写满时,需要进行拷贝搬移时所需要的时间,这个值可以近似认为是(TRA+TWA+2TD)*(SN/2M),A为Block中有效Page的总数。

    由于TR比TW小1个数量级以上,所以可以近似的认为:

    T1=(TWM-TWN+TWN+TD)S=TWMS+TDS

    对比T2可以看出,文件越小,N越小,T2的数据搬移时间也越小,效率也就越高。相比较,T1与N值相关性不大。

    而且采用本方法管理NAND Flash,在更新数据时,不需要频繁的更新系统文件FAT、FDT数据区,减少了更新这些系统文件的搬移和擦除时间,大大提高了系统访问小文件的速度,所以在拷贝大量小文件的时候,本发明实施例提供的技术方案有很大优势。

    在拷贝大文件的时候,由于地址是连续的,所以不需要做拷贝搬移,所以TP的值几乎为零,这时T2和T1基本相同。由于文件系统的特性,在拷贝大文件时也需要频繁修改FAT,FDT数据区,这种修改都是以写小文件方式进行的,所以本发明实施例提供的技术方案在读写大文件时相对于现有技术也有一定的效率优势。

    图6示出了本发明实施例提供的非易失性存储器数据的读写控制系统的结构框图,为了便于说明,图中仅给出了与本发明实施例相关的部分。

    区域划分模块11对NAND Flash内的有效块进行区域划分,所述区域包括至少一个包含固定数量有效块的数据区域和一个包含至少两个有效块的交换区域;第一对应关系表建立模块12建立每个区域的逻辑块和物理块的对应关系表;第二对应关系表生成模块13根据块内页的冗余区信息生成所述块的逻辑页和物理页的对应关系表;存储模块14将所述第一对应关系表建立模块12建立的每个区域的逻辑块和物理块的对应关系表及所述第二对应关系表生成模块13生成的块的逻辑页和物理页的对应关系表存储到私有数据区,数据块读写模块15在所述数据区域的块的空闲页顺序写入数据块,或从数据区域的有效页读出数据块。

    在本发明实施例中,数据区域内的有限块的个数由NAND Flash控制器的内存空间确定。

    在本发明实施例中,在所述数据区域的第N块写入新数据块时,当所述第N块已写满时,数据块暂时存储模块16在所述交换区域申请一个空块,将所述新数据块暂时存储在所述交换区域的所述空块上;当所述交换区域的所述空块也写满时,数据块拷贝搬移模块17向所述交换区域申请一个替换块,并将所述第N块和第N块所对应的交换块中的有效数据块拷贝搬移到所述替换块。

    在本发明实施例中,当有新的数据块写入块的空闲页或有数据块的拷贝搬移操作时,更新模块18更新所述区域的逻辑块和物理块的对应关系表或块的逻辑页和物理页的对应关系表。

    在本发明实施例中,当数据块拷贝搬移模块17向所述交换区域申请一个替换块,并将所述第N块的数据块拷贝搬移到所述替换块之后,队列添加模块19将已擦空的所述第N块和所述交换区域的空块添加到所述交换区域的先进先出队列。

    作为本发明的一个实施例,如图7所示,计算模块151根据所述数据块的偏移地址计算所述数据块所在的区域;第一对应关系表读取模块152在私有数据区读取所述区域的逻辑块和物理块的对应关系表;确定模块153查询所述逻辑块和物理块的对应关系表,确定所述数据块写入或读出的物理块,写数据块模块154在确定的物理块的空闲页顺序写入数据块;读数据块模块155从确定的物理块的有效页读出数据块。

    在本发明实施例中,在NAND Flash上以固定数量个有效块Block为一个数据区域进行划分,并确定其中一个区域为交换区域;建立每个块中逻辑页和物理页的对照表和生成块的逻辑页和物理页的对应关系表,将所述逻辑块和物理块的对应关系表及块的逻辑页和物理页的对应关系表存储到私有数据区;在所述数据区域块内的空闲页写入或读出数据块;当写满某个数据区域的第一个块时,申请一个交换区域的空块进行数据写入,当交换区域的空块也写满时,再申请一个交换区域的替换块进行数据的拷贝搬移;在有限的内存空间下,提高NAND Flash数据的读写速度和效率,同时,通过建立交换区域的FIFO(先进先出队列),实现在数据读写过程中和各个数据区域不断交换块,实现全局平衡磨损。

    以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

一种非易失性存储器数据的读写控制方法及系统.pdf_第1页
第1页 / 共17页
一种非易失性存储器数据的读写控制方法及系统.pdf_第2页
第2页 / 共17页
一种非易失性存储器数据的读写控制方法及系统.pdf_第3页
第3页 / 共17页
点击查看更多>>
资源描述

《一种非易失性存储器数据的读写控制方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种非易失性存储器数据的读写控制方法及系统.pdf(17页珍藏版)》请在专利查询网上搜索。

本发明适用于数据存储技术领域,提供了一种非易失性存储器数据的读写控制方法及系统,所述方法包括下述步骤:对非易失性存储器内的有效块进行区域划分,所述区域包括至少一个包含固定数量有效块的数据区域和一个包含至少两个有效块的交换区域;建立每个区域的逻辑块和物理块的对应关系表和生成块的逻辑页和物理页的对应关系表,将所述逻辑块和物理块的对应关系表及块的逻辑页和物理页的对应关系表存储到私有数据区;在所述数据区域。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1