发明内容
本发明的主要目的在于提供一种NandFlash的数据处理方法,旨在提高NandFlash写入的数据量,减少NandFlash擦除的次数,延长NandFlash的使用寿命。
为了实现发明目的,本发明提供一种NandFlash的数据处理方法,该NandFlash的数据处理方法包括以下步骤:
获取外部存储设备中所存储的数据;
检测所述数据中是否存在能被压缩的数据包;
若是,则将能被压缩的数据包进行压缩,并将压缩后的数据和不能压缩的数据均存储至NandFlash当中;
若否,则将所述数据存储至NandFlash当中。
优选地,所述获取外部存储设备中所存储的数据具体为:通过直接内存访问的方式将所述数据传输至直接存储器的缓存中。
优选地,所述将能被压缩的数据包进行压缩,并将压缩后的数据和不能压缩的数据均存储至NandFlash当中步骤包括:
将能被压缩的数据包在压缩表格中添加一项对应的压缩数据项,并更新算法表格;
通过直接内存访问的方式将所述压缩表格、算法表格及直接存储器的缓存中的数据均存储至NandFlash当中。
优选地,所述NandFlash的数据处理方法还包括:
通过直接内存访问的方式读取算法表格和压缩表格,并将NandFlash中所存储的未被压缩的数据存储至直接存储器的缓存中;
根据所读取的算法表格将所述压缩表格中的被压缩的数据包解压,并将解压后的数据存储至直接存储器的缓存中;
通过直接内存访问的方式将所述直接存储器的缓存中的数据传输至外部存储设备当中。
本发明还提供一种NandFlash的数据处理装置,该NandFlash的数据处理装置包括获取模块、检测模块和处理模块,其中,
获取模块,用于获取外部存储设备中所存储的数据;
检测模块,用于检测所述数据中是否存在能被压缩的数据包;
若是,则由所述处理模块将能被压缩的数据包进行压缩,并将压缩后的数据和不能压缩的数据均存储至NandFlash当中;
若否,则由所述处理模块将所述数据存储至NandFlash当中。
优选地,所述获取模块用于通过直接内存访问的方式将所述数据传输至直接存储器的缓存中。
优选地,所述处理模块包括:
更新单元,用于将能被压缩的数据包在压缩表格中添加一项对应的压缩数据项,并更新算法表格;
存储单元,用于通过直接内存访问的方式将所述压缩表格、算法表格及直接存储器的缓存中的数据均存储至NandFlash当中。
优选地,所述NandFlash的数据处理装置还包括:
读取模块,用于通过直接内存访问的方式读取算法表格和压缩表格,并将NandFlash中所存储的未被压缩的数据存储至直接存储器的缓存中;
解压模块,用于根据所读取的算法表格将所述压缩表格中的被压缩的数据包解压,并将解压后的数据存储至直接存储器的缓存中;
传输模块,用于通过直接内存访问的方式将所述直接存储器的缓存中的数据传输至外部存储设备当中。
本发明通过检测外部存储设备中所存储的数据进行是否能被压缩,并将不能被压缩的数据包直接存储至NandFlash当中,将能被压缩的数据包进行压缩后再存储至NandFlash当中。由于压缩后的数据的减小了存储的空间量,因此提高了NandFlash写入的数据量,从而减少了NandFlash擦除的次数,进而延长了NandFlash使用寿命。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明NandFlash的数据处理方法一实施例的流程示意图。本实施例提供的NandFlash的数据处理方法包括以下步骤:
步骤S10,获取外部存储设备中所存储的数据;
本实施例中,外部存储设备为具有储存空间电子设备,如U盘等。具体地,可通过直接内存访问的方式(DMA)将外部存储设备中所存储的数据传输至直接存储器的缓存(DMABUFF)中。
步骤S20,检测数据中是否存在能被压缩的数据包;若是,则执行步骤S30,否则执行步骤S40;
步骤S30,将能被压缩的数据包进行压缩,并将压缩后的数据和不能压缩的数据均存储至NandFlash当中;
步骤S40,将数据存储至NandFlash当中。
本实施例中,外部存储设备中所存储的数据包括能被压缩的数据包和不能被压缩的数据包,在通过直接内存访问的方式将外部存储设备中所存储的数据传输至直接存储器的缓存中的传输过程中,可设置一检测模块,检测正在传输的数据包是否能够被压缩。在传输完成后,若存在能够被压缩的数据包,则将数据包压缩,然后将压缩后的数据和不能被压缩的数据一并传输至NandFlash中进行储存。若不存在能够被压缩的数据包,则将获取的数据传输至NandFlash中进行存储。
本发明通过检测外部存储设备中所存储的数据进行是否能被压缩,并将不能被压缩的数据包直接存储至NandFlash当中,将能被压缩的数据包进行压缩后再存储至NandFlash当中。由于压缩后的数据的减小了存储的空间量,因此提高了NandFlash写入的数据量,从而减少了NandFlash擦除的次数,进而延长了NandFlash使用寿命。
参照图2,图2为本发明NandFlash的数据处理方法一实施例中对存在能被压缩的数据包的数据处理的流程示意图。基于上述实施例,本实施例中上述步骤S30包括:
步骤S31,将能被压缩的数据包在压缩表格中添加一项对应的压缩数据项,并更新算法表格;
步骤S32,通过直接内存访问的方式将所述压缩表格、算法表格及直接存储器的缓存中的数据均存储至NandFlash当中。
参照图3,图3为本发明NandFlash的数据处理方法另一实施例的流程示意图。基于上述实施例,本实施例提供的NandFlash的数据处理方法还包括:
步骤S50,通过直接内存访问的方式读取算法表格和压缩表格,并将NandFlash中所存储的未被压缩的数据存储至直接存储器的缓存中;
步骤S60,根据所读取的算法表格将所述压缩表格中的被压缩的数据包解压,并将解压后的数据存储至直接存储器的缓存中;
步骤S70,通过直接内存访问的方式将所述直接存储器的缓存中的数据传输至外部存储设备当中。
当执行完上述步骤S30或步骤S40后,即完成了NandFlash对数据的写操作。本实施例中,将完成对NandFlash内数据的读取操作。具体地,首先通过启动DMA从NandFlash中读取算法表格和压缩表格,然后查找压缩数据项中的压缩地址,并根据算法表格中定义的算法将被压缩的数据包解压,将解压后的数据存储至直接存储器的缓存中。同时将NandFlash内未被压缩的数据通过直接内存访问的方式传输至直接存储器,并在直接存储器的缓存中进行暂存。最后通过启动DMA,将直接存储器的缓存中的数据传输至外部存储设备当中,从而完成对NandFlash内数据的读取操作。
本发明还提供一种NandFlash的数据处理装置,用于实现上述方法。参照图4,图4为本发明NandFlash的数据处理装置一实施例的结构示意图。本实施例提供的NandFlash的数据处理装置包括获取模块100、检测模块200和处理模块300,其中,
获取模块100,用于获取外部存储设备中所存储的数据;
本实施例中,外部存储设备为具有储存空间电子设备,如U盘等。具体地,获取模块100可通过直接内存访问的方式(DMA)将外部存储设备中所存储的数据传输至直接存储器的缓存(DMABUFF)中。
检测模块200,用于检测数据中是否存在能被压缩的数据包;
若是,则由处理模块300将能被压缩的数据包进行压缩,并将压缩后的数据和不能压缩的数据均存储至NandFlash当中;
若否,则由处理模块300将所述数据存储至NandFlash当中。
本实施例中,外部存储设备中所存储的数据包括能被压缩的数据包和不能被压缩的数据包,在通过直接内存访问的方式将外部存储设备中所存储的数据传输至直接存储器的缓存中的传输过程中,可设置一检测模块200,由该检测模块200检测正在传输的数据包是否能够被压缩。在传输完成后,若存在能够被压缩的数据包,则由处理模块300将数据包压缩,然后将压缩后的数据和不能被压缩的数据一并传输至NandFlash中进行储存。若不存在能够被压缩的数据包,则由处理模块300将获取的数据传输至NandFlash中进行存储。
本发明通过检测模块200检测外部存储设备中所存储的数据进行是否能被压缩,并由处理模块300将不能被压缩的数据包直接存储至NandFlash当中,将能被压缩的数据包进行压缩后再存储至NandFlash当中。由于压缩后的数据的减小了存储的空间量,因此提高了NandFlash写入的数据量,从而减少了NandFlash擦除的次数,进而延长了NandFlash使用寿命。
结合参照图5,图5为图4中处理模块的结构示意图。本实施例中,上述处理模块300包括:
更新单元301,用于将能被压缩的数据包在压缩表格中添加一项对应的压缩数据项,并更新算法表格;
存储单元302,用于通过直接内存访问的方式将所述压缩表格、算法表格及直接存储器的缓存中的数据均存储至NandFlash当中。
基于上述实施例,本实施例中,上述NandFlash的数据处理装置还包括:
读取模块400,用于通过直接内存访问的方式读取算法表格和压缩表格,并将NandFlash中所存储的未被压缩的数据存储至直接存储器的缓存中;
解压模块500,用于根据所读取的算法表格将所述压缩表格中的被压缩的数据包解压,并将解压后的数据存储至直接存储器的缓存中;
传输模块600,用于通过直接内存访问的方式将所述直接存储器的缓存中的数据传输至外部存储设备当中。
当上述处理模块300执行完将能被压缩的数据包进行压缩,并将压缩后的数据和不能压缩的数据均存储至NandFlash当中或将所述数据存储至NandFlash当中后,即完成了NandFlash对数据的写操作。本实施例中,将完成对NandFlash内数据的读取操作。具体地,首先由读取模块400通过启动DMA从NandFlash中读取算法表格和压缩表格,然后由解压模块500查找压缩数据项中的压缩地址,并根据算法表格中定义的算法将被压缩的数据包解压,将解压后的数据存储至直接存储器的缓存中。同时读取模块40还将NandFlash内未被压缩的数据通过直接内存访问的方式传输至直接存储器,并在直接存储器的缓存中进行暂存。最后由传输模块600通过启动DMA,将直接存储器的缓存中的数据传输至外部存储设备当中,从而完成对NandFlash内数据的读取操作。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。