闪存存储设备的数据写入方法和闪存存储设备的制作方法

文档序号:6370504阅读:94来源:国知局
专利名称:闪存存储设备的数据写入方法和闪存存储设备的制作方法
技术领域
本发明涉及存储技术领域,特别是涉及ー种闪存存储设备的数据写入方法和闪存存储设备。
背景技术
闪存存储设备在日常生活中应用越来越普遍。闪存存储设备的写入速度成为衡量闪存存储设备 性能的重要指标,提高闪存存储设备的写入速度将大大提高数据处理效率,有利于扩展闪存存储设备的应用。闪存存储设备的物理构成为每个封装片内包含一个或多个晶粒;每个晶粒中包含多个块;每个块中包含多个页;每个页被用户划分成ー个或多个扇区。物理上,闪存存储设备是以页为単位管理的,而逻辑上则是以扇区为单位管理,ー个页以ー个或多个扇区为一組,分组存放在闪存存储设备芯片中。传统的文件管理系统(如FAT文件系统)对闪存存储设备写入数据的过程是先写目录区、FAT区等隐藏区,再写数据区。而闪存存储设备是以页为最小单位进行管理的,要写入的数据往往并非从闪存存储设备的页开头开始,而是从某页的中部开始写,又在某页的中间结束。由于闪存存储设备的特性,对某页写数据如果不是从该页的开头开始写,就要把该页以及该页所在的块上保存的原有数据搬移到ー个临时块,把要写的数据也写到该临时块对应的页,再把该页所在的块擦除,然后将原有数据和新写数据一起写入该块,整个过程非常耗时,影响了数据的写入效率,还增加了闪存块的磨损。

发明内容
基于此,有必要提供一种能提闻与入效率的闪存存储设备的数据与入方法。一种闪存存储设备的数据写入方法,包括以下步骤获取写命令;将所述写命令中的逻辑地址加上预先动态统计写命令中包含的逻辑地址的起始位置而得到的页偏移量作为所述写命令的实际逻辑地址;按照所述实际逻辑地址执行所述写命令。在其中一个实施例中,在所述获取写命令的步骤之前,还包括步骤预先动态统计写命令中包含的逻辑地址的起始位置,并根据所述逻辑地址的起始位置确定所述页偏移量。在其中一个实施例中,所述预先动态统计写命令中包含的逻辑地址的起始位置,并根据所述起始位置确定页偏移量的步骤具体为对写命令中包含的逻辑地址的起始位置进行采样;将采样的逻辑地址的起始位置与每页包含的扇区数取余;统计取得的余数,将数量最多的余数作为所述页偏移量。在其中一个实施例中,在所述预先动态统计写命令中包含的逻辑地址的起始位置,并根据所述起始位置确定页偏移量的步骤之后,还包括步骤将所述页偏移量存储在闪存存储设备的预设的特定存储区域。在其中一个实施例中,在所述获取写命令的步骤之后,还包括步骤判断所述写命令中包含的逻辑地址的起始地址是否位于页的起始位置,若是,则按照所述写命令中包含的逻辑地址执行所述写命令,若否,则执行将所述写命令中的逻辑地址加上预先动态统计写命令中包含的逻辑地址的起始位置而得到的页偏移量作为所述写命令的实际逻辑地址执行所述写命令的步骤。此外,还有必要提供一种能提闻与入效率的闪存存储设备。一种闪存存储设备,包括控制模块和闪存芯片,所述控制模块包括接口单元,用于获取写命令; 处理单元,用于将所述写命令中的逻辑地址加上预先动态统计写命令中包含的逻辑地址的起始位置而得到的页偏移量作为所述写命令的实际逻辑地址;执行单元,用于按照所述实际逻辑地址执行所述写命令。在其中一个实施例中,所述控制模块还包括统计单元,还用于预先动态统计写命令中包含的逻辑地址的起始位置,并根据所述逻辑地址的起始位置确定所述页偏移量。在其中一个实施例中,所述统计单元包括采样子单元,用于对写命令中包含的逻辑地址的起始位置进行采样;取余子单元,用于将采样的逻辑地址的起始位置与每页包含的扇区数取余;页偏移量确定子单元,用于统计取得的余数,将数量最多的余数作为所述页偏移量。在其中一个实施例中,所述闪存芯片设有特定存储区域,所述特定存储区域用于存储所述页偏移量;所述处理单元还用于从所述特定存储区域读取所述页偏移量。在其中一个实施例中,所述控制模块还包括判断单元,用于判断所述写命令中包含的逻辑地址的起始地址是否位于页的起始位置;所述执行单元还用于在所述写命令中包含的逻辑地址的起始地址是位于页的起始位置时,按照所述写命令中包含的逻辑地址执行所述写命令;所述处理单元还用于在所述写命令中包含的逻辑地址的起始地址不是位于页的起始位置,将所述写命令中的逻辑地址加上预先动态统计写命令中包含的逻辑地址的起始位置而得到的页偏移量作为所述写命令的实际逻辑地址。上述闪存存储设备的数据写入方法和闪存存储设备,当执行写命令时,将写命令中的逻辑地址加上预先动态统计分析得到的页偏移量作为实际逻辑地址,按照实际逻辑地址执行写命令,如此可保证对闪存存储设备的每次数据写入操作,其写入的逻辑地址的起始位置都与闪存存储设备的页的起始位置对齐,从而大大提高了闪存存储设备的写入速度,且减少了闪存存储设备的块的磨损,提高了闪存存储设备的性能。


图I为ー个实施例中闪存存储设备的数据写入方法的流程示意图;图2为预先动态统计写命令中包含的逻辑地址的起始位置,井根据该逻辑地址的起始位置确定页偏移量的步骤的具体流程示意图;图3为另ー个实施例中闪存存储设备的数据写入方法的流程示意图;图4为ー个实施例中闪存存储设备的内部结构示意图;图5为ー个实施例中控制模块的内部结构示意图;图6为另ー个实施例中控制模块的内部结构示意图;图7为另ー个实施例中控制模块的内部结构示意图。
具体实施例方式下面结合具体的实施例及附图对闪存存储设备的数据写入方法和闪存存储设备的技术方案进行详细的描述,以使其更加清楚。如图I所示,在一个实施例中,一种闪存存储设备的数据写入方法,包括以下步骤步骤SI 10,获取写命令。具体的,闪存存储设备接收到主机对其发送的写命令。步骤S120,将该写命令中的逻辑地址加上预先动态统计写命令中包含的逻辑地址的起始位置而得到的页偏移量作为该写命令的实际逻辑地址。例如,写命令中的逻辑地址为564扇区,预先对闪存存储设备的写命令中包含的逻辑地址的起始位置动态统计而得到的页偏移量为4个扇区,则加上页偏移量后,写命令的逻辑地址为568扇区,将568扇区作为执行该写命令的实际逻辑地址。步骤S130,按照实际逻辑地址执行该写命令。具体的,按照加上页偏移量得到的实际逻辑地址开始进行写命令的操作。在一个实施例中,在步骤SllO之前,还包括步骤预先动态统计写命令中包含的逻辑地址的起始位置,井根据该逻辑地址的起始位置确定页偏移量。具体的,动态统计写命令中包含的逻辑地址的起始位置是指统计某次写命令之前的历史写命令中包含的逻辑地址的起始位置,记录逻辑地址的起始位置的页偏移量,将统计得到的出现次数最多的页偏移量作为该次写命令的页偏移量。例如,接收到第100次写命令时,动态统计前99次写命令中包含的逻辑地址的起始位置的页偏移量,如页偏移量3出现最多,则将3作为第100次写命令的页偏移量。在一个实施例中,如图2所示,预先动态统计写命令中包含的逻辑地址的起始位置,井根据该逻辑地址的起始位置确定页偏移量的步骤具体为步骤S210,对写命令中包含的逻辑地址的起始位置进行采样。具体的,对主机发送的写命令中包含的逻辑地址的起始位置采样,采样数量可为100或200等,采样数量越多,确定的页偏移量越准确。步骤S220,将采样的逻辑地址的起始位置与每页包含的扇区数取余。具体的,将采样的每个逻辑地址的起始位置与每页包含的扇区数取余。例如,采样的5个逻辑地址的起始位置为542、564、583、604、628,每页包含的扇区数为8,则分别取余为6、4、7、4、4。采样数量越多,取余得到的余数可能出现O至7。
步骤S230,统计取得的余数,将数量最多的余数作为所述页偏移量。具体的,取余后,统计出现次数最多的余数,例如余数4的数量最多,则将4作为页
偏移量。上述确定页偏移量的方式仅为此处描述的较为具体的实现方式,也可采用其他方式确定页偏移量。在一个实施例中,在预先动态统计写命令中包含的逻辑地址的起始位置,并根据该逻辑地址的起始位置确定页偏移量的步骤之后,还包括步骤将该页偏移量存储在闪存存储设备的预设的特定存储区域。具体的,闪存存储设备中预设一特定存储区域,该特定存储区域是指不被数据操 作所使用的存储区域。如图3所示,在一个实施例中,一种闪存存储设备的数据写入方法,包括以下步骤步骤S310,获取写命令。步骤S320,判断该写命令中包含的逻辑地址的起始地址是否位于页的起始位置,若是,则执行步骤S330,若否,则执行步骤S340。步骤S330,按照该写命令中包含的逻辑地址执行该写命令。具体的,该写命令中包含的逻辑地址是位于页的起始位置,则直接执行写命令。步骤S340,将该写命令中的逻辑地址加上预先动态统计对存储设备的写命令中包含的逻辑地址的起始位置而确定的页偏移量作为所述写命令的实际逻辑地址。具体确定页偏移量的方式如图2中描述的方式,在此不再赘述。步骤S350,按照实际逻辑地址执行该写命令。具体的,按照加上页偏移量得到的实际逻辑地址开始进行写命令的操作。此外,因闪存存储设备的文件系统一旦确定,针对数据区的写命令,写命令中包含的逻辑地址的起始地址的页偏移量都是相同的。但针对隐藏区的写命令,其页偏移量是没有规律的,因数据区占整个闪存存储设备提供的存储空间的90%以上,故可以忽略隐藏区的影响,而采用图2中描述的方式确定页偏移量,即将出现次数最多的余数作为页偏移量。进一步的,为了避免出现隐藏区的写命令中逻辑地址加上页偏移量得到的实际逻辑地址不对齐页的起始位置而影响写入速度的情况,采用判断写命令中包含的逻辑地址的起始位置是否位于页的起始位置,从而提高了针对隐藏区的写命令的写入速度。当闪存存储设备上电被格式化后,其文件系统被改变了,则需要重新确定闪存存储设备的页偏移量。因随着文件系统的改变,隐藏区域的大小发生改变,数据区的大小也改变,因此页偏移量也会发生改变。如图4所示,在一个实施例中,一种闪存存储设备,包括控制模块10和闪存芯片
20。控制模块10包括接口单元110、处理单元120和执行单元130。其中接口单元110用于获取写命令。具体的,闪存存储设备的接口单元110接收到主机对闪存存储设备发送的写命令。处理单元120用于将该写命令中的逻辑地址加上预先动态统计写命令中包含的逻辑地址的起始位置而得到的页偏移量作为该写命令的实际逻辑地址。具体的,写命令中的逻辑地址为564扇区,预先对闪存存储设备的写命令中包含的逻辑地址的起始位置动态统计而得到的页偏移量为4个扇区,则加上页偏移量后,写命令的逻辑地址为568扇区,将568扇区作为执行该写命令的实际逻辑地址。执行单元130用于根据该实际逻辑地址执行所述写命令。具体的,执行单元130按照加上页偏移量得到的实际逻辑地址开始进行写命令的操作。闪存芯片20与控制模块10电连接。闪存芯片20设有特定存储区域。该特定存储区域用于存储动态统计得到的页偏移量。控制模块10的处理单元120还用于从特定存储区域读取该页偏移量。在一个实施例中,如图5所示,控制模块10除了包括接ロ单元110、处理单元120和执行单元130,还包括统计单元140。其中统计单元140还用于预先动态统计写命令中包含的逻辑地址的起始位置,并根据该逻辑地址的起始位置确定该页偏移量。具体的,动态统计写命令中包含的逻辑地址的起 始位置是指统计某次写命令之前的历史写命令中包含的逻辑地址的起始位置,记录逻辑地址的起始位置的偏移量,将统计得到的出现次数最多的偏移量作为该次写命令的页偏移量。例如,接收到第100次写命令时,动态统计前99次写命令中包含的逻辑地址的起始位置的页偏移量,如页偏移量3出现最多,则将3作为第100次写命令的页偏移量。进ー步的,在一个实施例中,如图6所示,统计单元140包括采样子单元141、取余子单兀143和页偏移量确定子单兀145。其中采样子単元141用于对写命令中包含的逻辑地址的起始位置进行采样。具体的,对主机发送的写命令中包含的逻辑地址的起始位置采样,采样数量可为100或200等,采样数量越多,确定的页偏移量越准确。取余子単元143用于将采样的逻辑地址的起始位置与每页包含的扇区数取余。具体的,将采样的每个逻辑地址的起始位置与每页包含的扇区数取余。例如,采样的5个逻辑地址的起始位置为542、564、583、604、628,每页包含的扇区数为8,则分别取余为6、4、7、4、
4。采样数量越多,取余得到的余数可能出现O至7。页偏移量确定子単元145用于统计取得的余数,将数量最多的余数作为所述页偏移量。具体的,取余后,统计出现次数最多的余数,例如余数4的数量最多,则将4作为页偏移量。如图7所示,在一个实施例中,控制模块10除了包括接ロ单元110、处理单元120、执行单元130和统计单元140,还包括判断単元150。其中判断単元150用于判断该写命令中包含的逻辑地址的起始地址是否位于页的起始位置。执行单元130还用于在该写命令中包含的逻辑地址的起始地址是位于页的起始位置吋,按照该写命令中包含的逻辑地址执行该写命令。处理单元120还用于在该写命令中包含的逻辑地址的起始地址不是位于页的起始位置时,将该写命令中的逻辑地址加上预先动态统计写命令中包含的逻辑地址的起始位置而确定的页偏移量作为该写命令的实际逻辑地址。在其他实施例中,控制模块10可仅包括接ロ単元110、处理单元120、执行单元130和判断单元150。上述闪存存储设备的数据写入方法和闪存存储设备,当执行写命令时,将写命令中的逻辑地址加上预先动态统计分析得到的页偏移量作为实际逻辑地址,按照实际逻辑地址执行写命令,如此可保证对闪存存储设备的每次数据写入操作,其写入的逻辑地址的起始位置都与闪存存 储设备的页的起始位置对齐,从而大大提高了闪存存储设备的写入速度,且减少了闪存存储设备的块的磨损,提高了闪存存储设备的性能。另外,尤其对于隐藏区的写命令中逻辑地址的起始位置的页偏移量是杂乱无章的,通过判断写命令中包含的逻辑地址的起始位置是否位于页的起始位置,可避免隐藏区的写命令的逻辑地址的起始位置是位于页的起始位置时,加上动态统计分析得到的页偏移量反而影响写入速度的情况,更能保证每次数据写入操作,其写入的逻辑地址的起始位置都与页的起始位置对齐;采用采样写命令的逻辑地址的起始位置,且将其与每页包含的扇区数取余,统计数量最多的余数作为页偏移量,提高了确定的页偏移量的准确性。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
权利要求
1.一种闪存存储设备的数据写入方法,包括以下步骤 获取与命令; 将所述写命令中的逻辑地址加上预先动态统计写命令中包含的逻辑地址的起始位置而得到的页偏移量作为所述写命令的实际逻辑地址; 按照所述实际逻辑地址执行所述写命令。
2.根据权利要求I所述的闪存存储设备的数据写入方法,其特征在于,在所述获取写命令的步骤之前,还包括步骤 预先动态统计写命令中包含的逻辑地址的起始位置,并根据所述逻辑地址的起始位置确定所述页偏移量。
3.根据权利要求2所述的闪存存储设备的数据写入方法,其特征在于,所述预先动态统计写命令中包含的逻辑地址的起始位置,并根据所述起始位置确定页偏移量的步骤具体为 对写命令中包含的逻辑地址的起始位置进行采样; 将采样的逻辑地址的起始位置与每页包含的扇区数取余; 统计取得的余数,将数量最多的余数作为所述页偏移量。
4.根据权利要求2或3所述的闪存存储设备的数据写入方法,其特征在于,在所述预先动态统计写命令中包含的逻辑地址的起始位置,并根据所述起始位置确定页偏移量的步骤之后,还包括步骤 将所述页偏移量存储在闪存存储设备的预设的特定存储区域。
5.根据权利要求I至3中任一项所述的闪存存储设备的数据写入方法,其特征在于,在所述获取写命令的步骤之后,还包括步骤 判断所述写命令中包含的逻辑地址的起始地址是否位于页的起始位置,若是,则按照所述写命令中包含的逻辑地址执行所述写命令,若否,则执行将所述写命令中的逻辑地址加上预先动态统计写命令中包含的逻辑地址的起始位置而得到的页偏移量作为所述写命令的实际逻辑地址执行所述写命令的步骤。
6.一种闪存存储设备,包括控制模块和闪存芯片,其特征在于,所述控制模块包括 接口单元,用于获取写命令; 处理单元,用于将所述写命令中的逻辑地址加上预先动态统计写命令中包含的逻辑地址的起始位置而得到的页偏移量作为所述写命令的实际逻辑地址; 执行单元,用于按照所述实际逻辑地址执行所述写命令。
7.根据权利要求6所述的闪存存储设备,其特征在于,所述控制模块还包括 统计单元,还用于预先动态统计写命令中包含的逻辑地址的起始位置,并根据所述逻辑地址的起始位置确定所述页偏移量。
8.根据权利要求7所述的闪存存储设备,其特征在于,所述统计单元包括 采样子单元,用于对写命令中包含的逻辑地址的起始位置进行采样; 取余子单元,用于将采样的逻辑地址的起始位置与每页包含的扇区数取余; 页偏移量确定子单元,用于统计取得的余数,将数量最多的余数作为所述页偏移量。
9.根据权利要求7或8所述的闪存存储设备,其特征在于,所述闪存芯片设有特定存储区域,所述特定存储区域用于存储所述页偏移量;所述处理単元还用于从所述特定存储区域读取所述页偏移量。
10.根据权利要求6至8中任一项所述的闪存存储设备,其特征在于,所述控制模块还包括 判断単元,用于判断所述写命令的逻辑地址的起始地址是否位于页的起始位置; 所述执行単元还用于在所述写命令中包含的逻辑地址的起始地址是位于页的起始位置时,按照所述写命令中包含的逻辑地址执行所述写命令; 所述处理単元还用于在所述写命令中包含的逻辑地址的起始地址不是位于页的起始位置吋,将所述写命令中的逻辑地址加上预先动态统计写命令中包含的逻辑地址的起始位置而得到的页偏移量作为所述写命令的实际逻辑地址。
全文摘要
本发明提供一种闪存存储设备的数据写入方法和闪存存储设备。所述闪存存储设备的数据写入方法包括以下步骤获取写命令;将所述写命令中的逻辑地址加上预先动态统计写命令中包含的逻辑地址的起始位置而得到的页偏移量作为所述写命令的实际逻辑地址;按照所述实际逻辑地址执行所述写命令。上述闪存存储设备的数据写入方法和闪存存储设备,按照实际逻辑地址执行写命令,可保证对闪存存储设备的每次数据写入操作,其写入的逻辑地址的起始位置都与闪存存储设备的页的起始位置对齐,从而大大提高了闪存存储设备的写入速度,且减少了闪存存储设备的块的磨损,提高了闪存存储设备的性能。
文档编号G06F13/16GK102722456SQ20121017358
公开日2012年10月10日 申请日期2012年5月30日 优先权日2012年5月30日
发明者李志雄, 邓恩华 申请人:深圳市江波龙电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1