CN103425602B - 一种闪存存储设备数据读写的方法、装置及主机系统 - Google Patents

一种闪存存储设备数据读写的方法、装置及主机系统 Download PDF

Info

Publication number
CN103425602B
CN103425602B CN201310356729.8A CN201310356729A CN103425602B CN 103425602 B CN103425602 B CN 103425602B CN 201310356729 A CN201310356729 A CN 201310356729A CN 103425602 B CN103425602 B CN 103425602B
Authority
CN
China
Prior art keywords
read
write
data
address
write cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310356729.8A
Other languages
English (en)
Other versions
CN103425602A (zh
Inventor
豆威
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Netcom Electronics Co Ltd
Original Assignee
Shenzhen Netcom Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Netcom Electronics Co Ltd filed Critical Shenzhen Netcom Electronics Co Ltd
Priority to CN201310356729.8A priority Critical patent/CN103425602B/zh
Publication of CN103425602A publication Critical patent/CN103425602A/zh
Application granted granted Critical
Publication of CN103425602B publication Critical patent/CN103425602B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明适用于数据存储技术领域,提供了一种闪存存储设备数据读写的方法、装置及主机系统,所述方法包括:在主机系统的缓存中申请多个大小为第一固定值的读写缓存,所述第一固定值为闪存存储设备中闪存页大小的整数倍;在写数据时,将待写入数据中写入地址与读写缓存不对齐的数据和/或小文件数据和/或写入地址为写热地址的数据写入所述读写缓存;当空的读写缓存的个数小于或等于预先设置的第四固定值和/或主机系统处于空闲状态和/或满足预设条件时,将读写缓存中的数据写入闪存存储设备。通过本发明能够大大减少因为地址不对齐或者写小文件数据等原因造成的在写入过程中不断进行数据拷贝、搬移问题,提高闪存存储设备数据的读写效率。

Description

一种闪存存储设备数据读写的方法、装置及主机系统
技术领域
本发明属于数据存储技术领域,尤其涉及一种闪存存储设备数据读写的方法、装置及主机系统。
背景技术
闪存存储设备数据的读写速度,是衡量闪存存储设备性能的一个重要方面。然而,现有闪存存储设备在写入地址不对齐(指所述地址不是机器字长的整数倍)的数据时,需要不断的进行数据的拷贝、搬移操作,在一定程度上限制了闪存存储设备读写速度的进一步提高。虽然现有技术可通过加上页偏移的方式使地址对齐,但这种方式需要事先计算出闪存存储设备页的偏移量,操作较复杂,效率较低。而且由于不同闪存存储设备的情况不一样,需要针对不同型号的闪存存储设备分别计算,不具有适用性。
发明内容
本发明实施例的目的在于提供一种闪存存储设备数据读写的方法,以解决现有闪存存储设备因地址不对齐导致的数据读写效率不高的问题。
本发明实施例是这样实现的,一种闪存存储设备数据读写的方法,所述方法包括:
在主机系统的缓存中申请多个大小为第一固定值的读写缓存,所述第一固定值为闪存存储设备中闪存页大小的整数倍;
在写数据时,将待写入数据中写入地址与读写缓存不对齐的数据和/或小文件数据和/或写入地址为写热地址的数据写入所述读写缓存,所述小文件数据是指数据大小小于预先设置的第二固定值的数据,所述写热地址是指在预定时间内写次数大于或等于预先设置的第三固定值的地址;
当空的读写缓存的个数小于或等于预先设置的第四固定值和/或主机系统处于空闲状态或满足预设条件时,将读写缓存中的数据写入闪存存储设备。
一种闪存存储设备数据读写的方法,所述方法包括:
在主机系统的缓存中申请多个大小为第一固定值的读写缓存,所述第一固定值为闪存存储设备中闪存页大小的整数倍;
将读出地址为读热地址的数据或者与当前读出地址连续的地址上的数据预先从闪存存储设备中读出到所述读写缓存中;
在读数据时,如果所述读出地址上的数据已经存在所述读写缓存中,则直接从所述读写缓存中读出数据,否则从所述闪存存储设备中读出数据;
当空的读写缓存的个数小于或等于预先设置的第四固定值和/或主机系统处于空闲状态时,将读写缓存中的数据写入闪存存储设备;
其中,所述读热地址为当前有数据读出的地址。
本发明实施例的另一目的在于提供一种闪存存储设备数据读写的装置,所述装置包括:
读写缓存划分单元,用于在主机系统的缓存中申请多个大小为第一固定值的读写缓存,所述第一固定值为闪存存储设备中闪存页大小的整数倍;
第一写入单元,用于在写数据时,将待写入数据中写入地址与读写缓存不对齐的数据和/或小文件数据和/或写入地址为写热地址的数据写入所述读写缓存,所述小文件数据是指数据大小小于预先设置的第二固定值的数据,所述写热地址是指在预定时间内写次数大于或等于预先设置的第三固定值的地址;
第二写入单元,用于当空的读写缓存的个数小于或等于预先设置的第四固定值和/或主机系统处于空闲状态或满足预设条件时,将读写缓存中的数据写入闪存存储设备。
一种闪存存储设备数据读写的装置,所述装置包括:
读写缓存划分单元,用于在主机系统的缓存中申请多个大小为第一固定值的读写缓存,所述第一固定值为闪存存储设备中闪存页大小的整数倍;
第一读出单元,用于将读出地址为读热地址的数据或者与当前读出地址连续的地址上的数据预先从闪存存储设备中读出到所述读写缓存中,其中,所述读热地址为当前有数据读出的地址;
第二读出单元,用于在读数据时,如果所述读出地址上的数据已经存在所述读写缓存中,则直接从所述读写缓存中读出数据,否则从所述闪存存储设备中读出数据;
写入单元,用于当空的读写缓存的个数小于或等于预先设置的第四固定值和/或主机系统处于空闲状态或满足预设条件时,将读写缓存中的数据写入闪存存储设备。
本发明实施例的再一目的在于提供一种主机系统,所述主机系统包括所述闪存存储设备数据读写的装置。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例通过将写入地址与读写缓存不对齐的数据和/或小文件数据和/或写入地址为写热地址的数据写入主机系统预先申请的读写缓存中,待主机系统处于空闲状态或满足其他预设条件时再将读写缓存中的数据写入闪存存储设备,能够大大减少因为地址不对齐或者写小文件数据等原因造成的在写入过程中不断的进行数据的拷贝、搬移问题,提高闪存存储设备数据的读写效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的闪存存储设备数据读写方法所适用的系统场景示意图;
图2是本发明实施例二提供的闪存存储设备数据读写方法的实现流程图;
图3至图11是本发明实施例二提供的闪存存储设备数据读写的示例图;
图12是本发明实施例三提供的闪存存储设备数据读写方法的实现流程图;
图13和图14是本发明实施例三提供的闪存存储设备数据读写的示例图;
图15是本发明实施例四提供的闪存存储设备数据读写装置的组成结构图;
图16是本发明实施例五提供的闪存存储设备数据读写装置的组成结构图;
图17是本发明实施例六提供的主机系统的组成结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
图1示出了本发明实施例一提供的闪存存储设备数据读写方法所适用的系统场景,为了便于说明,仅示出了与本实施例相关的部分。
如图1所示,该系统包括主机系统1以及闪存存储设备2。
其中,所述主机系统1包括微处理器11、缓存12、数据传输接口13以及输入或输出装置14。
所述主机系统1通过所述数据传输接口13与所述闪存存储设备2连接。用户通过输入/输出装置14发出写指令给所述微处理器11,所述微处理器11通过数据传输接口13将所述写指令发送所述闪存存储设备2,所述写指令中包含所述缓存12中的数据以及所述数据写入闪存存储设备2的地址。
在本实施例中,在主机系统1的缓存中申请多个大小为第一固定值的读写缓存,所述第一固定值为闪存存储设备2中闪存页大小的整数倍。在向闪存存储设备2写入数据时,将待写入数据中写入地址与读写缓存不对齐的数据和/或小文件数据和/或写入地址为写热地址的数据写入所述读写缓存,所述小文件数据是指数据大小小于预先设置的第二固定值的数据,所述写热地址是指在预定时间内写次数大于或等于预先设置的第三固定值的地址。当空的读写缓存的个数小于或等于预先设置的第四固定值和/或主机系统1处于空闲状态或满足预设条件时,将读写缓存中的数据写入闪存存储设备2。
进一步的,主机系统1在将写入地址与读写缓存不对齐的数据写入所述读写缓存时,还包括:
判断待写入数据的写入地址是否对齐;
若是,将所述待写入数据直接写入闪存存储设备2;
若否,将所述待写入数据拆分成写入地址与读写缓存不对齐的数据和写入地址与读写缓存对齐的数据,将写入地址与读写缓存对齐的数据写入闪存存储设备中,写入地址与读写缓存不对齐的数据写入所述读写缓存中;
其中,所述写入地址与读写缓存对齐指的是数据写入的起始地址与读写缓存的起始地址对齐,且数据写入的结束地址与读写缓存的结束地址对齐;所述写入地址与读写缓存不对齐指的是数据写入的起始地址与读写缓存的的起始地址不对齐和/或数据写入的结束地址与读写缓存的结束地址不对齐。
进一步的,所述判断待写入数据的写入地址是否对齐包括:
将所述待写入数据写入的起始地址对所述第一固定值取余,如果有余数,则判定为不对齐;如果没有余数,继续判断所述待写入数据的写入长度是否是所述第一固定值的整数倍,如果是整数倍,判定为对齐;如果不是整数倍,判定为不对齐。
进一步的,所述当满足预设条件时,主机系统1将读写缓存中的所述数据写入闪存存储设备2包括:
当写入所述读写缓存中连续地址上的小文件数据的大小达到预先设置的第五固定值之后,将所述小文件数据写入闪存存储设备2。
进一步的,主机系统1将写入地址与读写缓存不对齐的数据和/或小文件数据和/或写入地址为写热地址的数据写入所述读写缓存包括:
当当前写入地址与读写缓存不对齐的数据和/或小文件数据和/或写入地址为写热地址的数据的写入地址与之前写入所述读写缓存中的地址位于同一个读写缓存,则在同一个读写缓存中以与所述之前写入所述读写缓存中起始地址相同的偏移量写入数据,并在地址重叠部分,以新的写入数据覆盖;
当当前写入地址与读写缓存不对齐的数据和/或小文件数据和/或写入地址为写热地址的数据的写入地址与之前写入所述读写缓存中的地址不属于同一个读写缓存,则申请空的读写缓存以与所述之前写入所述读写缓存中起始地址的偏移量写入数据;
其中,所述空的读写缓存为没有写入数据的读写缓存,所述偏移量为所述起始地址对所述第一固定值取余之后的余数。
进一步的,本实施例还包括:
当主机系统1中某个读写缓存写满后,主机系统1将该读写缓存中的数据写入闪存存储设备2。
进一步的,本实施例还包括:
主机系统1将读出地址为读热地址的数据或者与当前读出地址连续的地址上的数据预先从闪存存储设备2中读出到主机系统1的读写缓存中;
在读数据时,如果所述读出地址上的数据已经存在所述读写缓存中,则直接从所述读写缓存中读出数据,否则从所述闪存存储设备2中读出数据;
其中,所述读热地址为当前有数据读出的地址。
更进一步的是,所述将与当前读出地址连续的地址上的数据预先从闪存存储设备中读出到所述读写缓存中包括:
主机系统1申请空的读写缓存,将与当前读出地址连续的地址上的固定长度的数据读出到读写缓存中。
进一步的,主机系统1具体用于建立一个读写缓存的权重队列,并记录各读写缓存的权重值,当空的读写缓存的个数小于或等于预先设置的第四固定值和/或主机系统处于空闲状态时,将读写缓存中的所述数据按权重值由低到高依次写入闪存存储设备中。
其中,所述记录各读写缓存的权重值包括:
初始时,所有读写缓存的权重值相同,为一个预先确定的低值m;
当对某个读写缓存进行操作后,该读写缓存的权重值变为一个预先确定的高值n,n>m;其他未进行操作的读写缓存的权重值为原有权重值减去一个固定值k,k>0。
在本实施例中,所述主机系统为可存储数据的任意系统,例如电脑系统、数码相机、摄影机、通信装置、音讯播放器、视讯播发器等系统。
需要说明的是,本实施例提供的系统场景只用于解释本发明,并不限定本发明的保护范围。
实施例二:
图2示出了本发明实施例二提供的闪存存储设备数据读写方法的实现流程,该方法过程详述如下:
在步骤S201中,在主机系统的缓存中申请多个大小为第一固定值的读写缓存,所述第一固定值为闪存存储设备中闪存页大小的整数倍。
在本实施例中,将主机系统的缓存按预先设置的第一固定值划分成多个读写缓存。可选的是,还可以从所述多个读写缓存中选取部分(按预设比例,如50%)划分好的读写缓存用于缓存写入闪存存储设备和/或从闪存存储设备中读出的数据;另外,也可以先选取主机系统的部分缓存,再将选取的所述部分缓存按所述第一固定值划分。
其中,所述第一固定值为闪存存储设备中闪存页大小的整数倍,如闪存页大小为8个扇区,则所述第一固定值可以是8个扇区或者16个扇区或者32个扇区等。优选的是所述第一固定值为现有闪存存储设备中最大闪存页大小的整数倍。如现有闪存存储设备中闪存页的大小最大为32个扇区,则所述第一固定值优选为32个扇区或者64个扇区或者128个扇区等。另外,为了便于管理,还可以申请的所述读写缓存进行编号,所述读写缓存的编号可以是阿拉伯数字顺序编号或者是其他方法编号,如读写缓存1、读写缓存2等,或者读写缓存A、读写缓存B等,在此不用以限制本发明。
在步骤S202中,在写数据时,将待写入数据中写入地址与读写缓存不对齐的数据和/或小文件数据和/或写入地址为写热地址的数据写入所述读写缓存,所述小文件数据是指数据大小小于预先设置的第二固定值的数据,所述写热地址是指在预定时间内写次数大于或等于预先设置的第三固定值的地址。
在本实施例中,在待写入数据中写入地址与读写缓存不对齐的数据和/或小文件数据和/或写入地址为写热地址的数据写入所述读写缓存后,还包括:
向所述主机系统反馈已写完信息,并将所述待写入数据中的其他数据直接写入所述闪存存储设备中。其中所述其他数据是指所述待写入数据中除写入地址与读写缓存不对齐的数据和/或小文件数据和/或写入地址为写热地址的数据之外的数据。
进一步的是,本实施例所述将写入地址与读写缓存不对齐的数据写入所述读写缓存包括:
判断待写入数据的写入地址是否对齐;
若是,将所述待写入数据直接写入闪存存储设备;
若否,将所述待写入数据拆分成写入地址与读写缓存不对齐的数据和写入地址与读写缓存对齐的数据,将写入地址与读写缓存对齐的数据写入闪存存储设备中,写入地址与读写缓存不对齐的数据写入所述读写缓存中;
其中,所述写入地址与读写缓存对齐指的是数据写入的起始地址与读写缓存的起始地址对齐,且数据写入的结束地址与读写缓存的结束地址对齐;所述写入地址与读写缓存不对齐指的是数据写入的起始地址与读写缓存的的起始地址不对齐和/或数据写入的结束地址与读写缓存的结束地址不对齐。
优选的,判断待写入数据的写入地址是否对齐包括:将所述待写入数据写入的起始地址对所述第一固定值取余,如果有余数,则判定为不对齐;如果没有余数,继续判断所述待写入数据的写入长度是否是所述第一固定值的整数倍,如果是,判定为对齐;如果否,判定为不对齐。
在本实施例中,由于读写缓存的大小为闪存页大小的整数倍,因此写入地址与读写缓存对齐的话,则也一定与闪存页对齐,通过将写入地址与读写缓存不对齐的数据写入读写缓存中,写入地址与读写缓存对齐的数据写入闪存存储设备中,能够大大减少因写入地址与闪存页不对齐而造成的旧数据的拷贝、搬移问题,从而提高数据的写入速度。
进一步的,所述将小文件数据写入所述读写缓存包括:
预先定义一个第二固定值,当待写入数据的大小小于所述第二固定值时,判定所述待写入数据为小文件数据,将所述待写入数据写入所述读写缓存中。其中,所述第二固定值可以是一个闪存页的大小,也可以是其他大小,在此不用以限制本发明。
进一步的,所述将写入地址为写热地址的数据写入所述读写缓存中包括:在单位时间内对地址的写入次数进行计数,当所述地址的写入次数达到预先设置的第三固定值时,判断该地址为写热地址。当下次往该地址写入数据时,将写入该地址的数据写入所述读写缓存中。例如,预先设置的第三固定值为5,当对某一个地址的写入次数达到5次时,如写入地址LBA128-143的写入次数已经达到5次,当第6次往地址LBA128-143写入数据时,则将写入地址LBA128-143的数据写入所述读写缓存中。
由于缓存的特性,将数据写入所述读写缓存的速度大大高于写入闪存存储设备的速度,因此通过将写入热地址的数据,即频繁更新的数据,如FAT表、目录区数据等写入所述读写缓存中能够大大提高闪存存储设备的读写速度,同时能够减少闪存存储设备搬移、擦除数据的次数,提高闪存存储设备的使用寿命。
进一步的,所述将写入地址与读写缓存不对齐的数据和/或小文件数据和/或写入地址为写热地址的数据写入所述读写缓存包括:
当当前写入地址与读写缓存不对齐的数据和/或小文件数据和/或写入地址为写热地址的数据的写入地址与之前写入所述读写缓存中的地址位于同一个读写缓存,则在同一个读写缓存中以与所述之前写入所述读写缓存中起始地址相同的偏移量写入数据,并在地址重叠部分,以新的写入数据覆盖;
当当前写入地址与读写缓存不对齐的数据和/或小文件数据和/或写入地址为写热地址的数据的写入地址与之前写入所述读写缓存中的地址不属于同一个读写缓存,则申请空的读写缓存以与所述之前写入所述读写缓存中起始地址的偏移量写入数据;
其中,所述空的读写缓存为没有写入数据的读写缓存,所述偏移量为所述起始地址对所述第一固定值取余之后的余数。
在步骤S203中,当空的读写缓存的个数小于或等于预先设置的第四固定值和/或主机系统处于空闲状态和/或满足预设条件时,将读写缓存中的数据写入闪存存储设备。
在本实施例中,所述空闲状态是指主机系统当前对闪存存储设备未进行读写操作的状态。
进一步的,所述当满足预设条件时,将读写缓存中的所述数据写入闪存存储设备包括:
当写入所述读写缓存中连续地址上的小文件数据的大小达到预先设置的第五固定值之后,将所述小文件数据写入闪存存储设备。
其中,所述第五固定值可以是一个闪存页大小,也可以是其他大小,在此不用以限制本发明。
由于每一次的数据写入,都需要更新文件系统的目录区以及FAT表等,通过将小文件写入读写缓存,相应的文件系统的目录区以及FAT表等也在读写缓存中更新,从而能够提高小文件的数据写入速度。而且同一目录下多个小文件的数据写入闪存存储设备的地址基本上是连续的,先把这些小文件的数据写入读写缓存中,等条件满足时再写入闪存存储设备能够大大提高闪存存储设备的数据写入速度。
进一步的,所述当满足预设条件时,将读写缓存中的所述数据写入闪存存储设备还包括:
当某个读写缓存写满后,将该读写缓存中的数据写入闪存存储设备。
通过本实施例,能够大大减少因读写缓存的存储空间不足而造成的不得不将所述读写缓存中的数据写入闪存存储设备的情况发生,从而进一步提高闪存存储设备的数据写入速度。
进一步的,所述当空的读写缓存的个数小于或等于预先设置的第四固定值和/或主机系统处于空闲状态时,将读写缓存中的数据写入闪存存储设备包括:
建立一个读写缓存的权重队列,并记录各读写缓存的权重值,当空的读写缓存的个数小于或等于预先设置的第四固定值和/或主机系统处于空闲状态时,将读写缓存中的所述数据按权重值由低到高依次写入闪存存储设备中。
其中,所述读写缓存的权重值可以采用如下方式(不局限于此)确定:初始时,所有读写缓存的权重值相同,为一个预先确定的低值m,如m=0,即初始时,所有的读写缓存的权重值为0;当对某个读写缓存进行操作后,该读写缓存的权重值变为一个预先确定的高值n,n>m,如高值n为所有读写缓存的个数;其他读写缓存的权重值为原有权重值减去一个固定值k,k>0,如,所述固定值k为1。
以下通过举例来详细说明,以主机系统为闪存存储设备分配10个读写缓存,每个读写缓存的大小为16个扇区,m=0,n=10,k=1为例,当闪存存储设备初始连接到主机系统时,所有读写缓存的权重值都为0,如表1所示:
表1
第一次对读写缓存1进行写操作,写入完成后,读写缓存1的权重值变为10,其他读写缓存的权重值为原有权重值减1,权重值变为-1,如表2所示:
表2
第二次对读写缓存2进行写操作,写入完成后,读写缓存2的权重值变为10;读写缓存1的权重值为10-1,变为9;其他读写缓存的权重值为原有权重值减1,变为-2,如表3所示:
表3
通过以上方式能够使各读写缓存的权重值依据时间实时更新,使最新操作的读写缓存的权重值最高。
当对所述闪存存储设备进行读写操作一段时间之后,假设所述读写缓存的权重值如表4所示:
表4
如果此时对读写缓存10进行读操作,则操作完成后,读写缓存10的权重值变为10,其他读写缓存的权重值减1,如表5所示:
表5
当空的读写缓存的个数小于或等于预先设置的第四固定值和/或主机系统处于空闲状态,需要将读写缓存中的数据写入到闪存存储设备中时,则先将读写缓存9中的数据写入闪存存储设备,再写读写缓存5、读写缓存8、读写缓存7…。
需要说明的是,以上举例只是为了便于说明本发明,并不是说n的实际取值为10,读写缓存编号以及其对应的权重值的记录方式也不是一定采用上述形式。
为了便于理解本发明实施例,下面举例说明:以闪存存储设备中每个闪存页包括16个扇区,第一固定值、第二固定值、第五固定值均为16个扇区,读写缓存采用读写缓存1、读写缓存2…到读写缓存n(n为大于等于2的正整数)进行编号为例,本发明实施例以该闪存存储设备为例,但不用以限制本发明。例如:如图3所示,第一次数据的写入地址为LBA36-133(LBA:指逻辑扇区地址),通过判断,该写入地址不对齐,则对所述数据进行拆分,写入地址LBA36-47以及LBA128-133的数据为写入地址与读写缓存不对齐的数据,将该数据写入所述读写缓存中。写入地址为LBA48-LBA127的数据为写入地址与读写缓存对齐的数据,将该数据直接写入闪存存储设备中。具体实现如下:LBA36对读写缓存的偏移量为4个扇区,LBA128对读写缓存的偏移量为0个扇区,且LBA36-47、LBA128-133之前没有在读写缓存中写入,因此申请一个空的读写缓存1,将写入地址为LBA36-LBA47的数据以4个扇区的偏移量写入读写缓存1,写入地址为LBA48-LBA127的数据直接写入闪存存储设备中,再申请一个空的读写缓存2,将写入地址为LBA128-133的数据写入读写缓存2中。如图4所示,第二次数据的写入地址为LBA40-57,写入地址不对齐,由于LBA40-57跨越了两个读写缓存,因此拆分成LBA40-47、LBA48-LBA57两段写入地址与读写缓存不对齐的数据。LBA40-47与之前写入的LBA36-47位于同一个读写缓存,且LBA40-47的地址在之前已写入数据,因此则将写入地址为LBA40-47的数据替换之前在读写缓存1中写入的数据,LBA48-LBA57之前没有在读写缓存中写入,因此申请一个空的读写缓存3并将写入LBA48-LBA57的数据写入所述读写缓存3中。
如图5所示,第三次数据的写入地址为LBA134-149,与之前写入读写缓存2中的数据的地址连续,位于同一个读写缓存2,因此,写入地址为LBA134-143的数据接着连续的地址写入读写缓存2中,读写缓存2写满后,申请一个空的读写缓存4,将写入LBA144-149的数据写入到读写缓存4中。为了减少因读写缓存的存储空间不足而造成的不得不将读写缓存中的数据写入闪存存储设备的情况发生,在写入完成后,由于读写缓存2已经写满,可以将读写缓存2中地址LBA128-143上的数据写入到闪存存储设备中,写入完成后,如图6所示。
如图7所示,第四次数据的写入地址为LBA20-35,则申请一个空的读写缓存2将写入地址为LBA20-31的数据以4个扇区的偏移量写入空的读写缓存2中,LBA32-35的数据与之前写入的LBA36-47位于同一个读写缓存,因此写入读写缓存1中。在写入完成后,由于读写缓存1已经写满,可以将读写缓存1中地址LBA32-47上的数据写入到闪存存储设备中,写入完成后,如图8所示。
如图9所示,第五次数据的写入地址为LBA1024-1031,写入数据的大小为8个扇区,小于16个扇区,判断为小文件数据,申请一个空的读写缓存1,将写入LBA1024-1031的数据写入读写缓存1中,如图10所示,第六次数据的写入地址为LBA1032-1039,与之前的写入地址连续位于同一个读写缓存,继续写入读写缓存1中,写入读写缓存1后,连续地址上的小文件数据达到一个页的大小,因此将读写缓存1中的数据写入闪存存储设备中的实际地址LBA1024-1039,写入完成后如图11所示。
需要说明的是,为了进一步提高数据的写入速度,本实施例还可以在写数据时,将待写入数据全部写入所述读写缓存,在写完后向主机系统反馈已写完信息。等到所述闪存存储设备处于空闲状态时,再将读写缓存中的所述数据写入到闪存存储设备中。在闪存存储设备处于空闲状态时写入数据不会影响闪存存储设备的数据写入速度。
本发明实施例通过将写入地址与读写缓存不对齐的数据和/或小文件数据和/或写入地址为写热地址的数据写入主机系统预先申请的读写缓存中,待主机系统处于空闲状态或满足其他预设条件时再将读写缓存中的所述数据写入闪存存储设备,能够大大减少因为地址不对齐或者写小文件数据等原因造成的在写入过程中不断的进行数据的拷贝、搬移问题,提高闪存存储设备数据的写入效率。
进一步的,本实施例还包括:
将读出地址为读热地址的数据或者与当前读出地址连续的地址上的数据预先从闪存存储设备中读出到所述读写缓存中;
在读数据时,如果所述读出地址上的数据已经存在所述读写缓存中,则直接从所述读写缓存中读出数据,否则从所述闪存存储设备中读出数据;
其中,所述读热地址为当前有数据读出的地址。
进一步的,所述将读出地址为读热地址的数据预先从闪存存储设备中读出到所述读写缓存中包括:
将当前有数据读出的地址判定为读热地址,数据读取完成后,将数据保存到读写缓存中。
进一步的,所述将与当前读出地址连续的地址上的数据预先从闪存存储设备中读出到所述读写缓存中包括:
申请空的读写缓存,将与当前读出地址连续的地址上的固定长度的数据读出到读写缓存中。
本发明实施例中,可以预先读出与当前读出地址连续的一个闪存页大小的数据到所述读写缓存中,当然也可以读出其他大小的数据到所述读写缓存中,具体大小根据读写缓存的总容量大小确定,在此不用以限制本发明。
由于同一文件在闪存存储设备中的存储位置一般都是连续的,通过预先读取连续地址上的数据到读写缓存中,能够极大的提高闪存存储设备数据的读取速度。
实施例三:
图12示出了本发明实施例三提供的闪存存储设备数据读写方法的实现流程,该方法过程详述如下:
在步骤S1201中,在主机系统的缓存中申请多个大小为第一固定值的读写缓存,所述第一固定值为闪存存储设备中闪存页大小的整数倍。
该步骤与实施例二中的步骤S201相同,具体实施过程如实施例二中的步骤S201所述,在此不再赘述。
在步骤S1202中,将读出地址为读热地址的数据或者与当前读出地址连续的地址上的数据预先从闪存存储设备中读出到所述读写缓存中,其中所述读热地址为当前有数据读出的地址;
在步骤S1203中,在读数据时,如果所述读出地址上的数据已经存在所述读写缓存中,则直接从所述读写缓存中读出数据,否则从所述闪存存储设备中读出数据;
在步骤S1204中,当空的读写缓存的个数小于或等于预先设置的第四固定值和/或主机系统处于空闲状态和/或满足预设条件时,将读写缓存中的数据写入闪存存储设备。
该步骤与实施例二中的步骤S203相同,具体实施过程如实施例二中的步骤S203所述,在此不再赘述。
进一步的,所述将读出地址为读热地址的数据预先从闪存存储设备中读出到所述读写缓存中包括:
将当前有数据读出的地址判定为读热地址,数据读取完成后,将数据保存到读写缓存中。
进一步的,所述将与当前读出地址连续的地址上的数据预先从闪存存储设备中读出到所述读写缓存中包括:
申请空的读写缓存,将与当前读出地址连续的地址上的固定长度的数据读出到读写缓存中。
本发明实施例中,可以预先读出与当前读出地址连续的一个闪存页大小的数据到所述读写缓存中,当然也可以读出其他大小的数据到所述读写缓存中,具体大小根据读写缓存的总容量大小确定,在此不用以限制本发明。
由于同一文件在闪存存储设备中的存储位置一般都是连续的,通过预先读取连续地址上的数据到读写缓存中,能够极大的提高闪存存储设备数据的读取速度。
为了便于理解本发明,以下举例说明,例如,如图13所示,第一次读出的地址为LBA160-167,该地址上的数据不在所述读写缓存中,直接从闪存存储设备中读出数据,读出数据后,将地址LBA160-167判定为读热地址,在所述读写缓存中申请一个空的读写缓存1,将存储在地址LBA160-167上的数据读出到读写缓存1中。
如图14所示,第二次读出的地址为LBA512-527,LBA512-527地址上的数据读出后,申请一个空的读写缓存5,将LBA512-527地址上的数据保存到读写缓存5,并申请一个空的读写缓存6,预先读出与LBA512-527地址连续的一个闪存页大小的数据到读写缓存6中,即将地址LBA528-543上的数据读出到读写缓存6中,当数据的读出地址为LBA528-543,则直接从读写缓存6中读出数据。
本发明实施例通过上述技术方案,可有效提高闪存存储设备数据的读写效率,具有较强的实用性。
实施例四:
图15示出了本发明实施例四提供的闪存存储设备数据读写装置的组成结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该闪存存储设备数据读写装置可以应用于图1所示的主机系统中,可以是运行于主机系统的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到主机系统中或者运行于主机系统的应用系统中。
该闪存存储设备数据读写装置包括读写缓存划分单元101、第一写入单元102以及第二写入单元103,其中:
读写缓存划分单元101,用于在主机系统的缓存中申请多个大小为第一固定值的读写缓存,所述第一固定值为闪存存储设备中闪存页大小的整数倍;
第一写入单元102,用于在写数据时,将待写入数据中写入地址与读写缓存不对齐的数据和/或小文件数据和/或写入地址为写热地址的数据写入所述读写缓存,所述小文件数据是指数据大小小于预先设置的第二固定值的数据,所述写热地址是指在预定时间内写次数大于或等于预先设置的第三固定值的地址;
第二写入单元103,用于当空的读写缓存的个数小于或等于预先设置的第四固定值和/或主机系统处于空闲状态或满足预设条件时,将读写缓存中的数据写入闪存存储设备。
进一步的,所述第一写入单元102包括:
判断模块1021,用于判断待写入数据的写入地址是否对齐;
第一写入模块1022,用于在所述判断模块判断结果为是时,将所述待写入数据直接写入闪存存储设备;
第二写入模块1023,用于在所述判断模块判断结果为否时,将所述待写入数据拆分成写入地址与读写缓存不对齐的数据和写入地址与读写缓存对齐的数据,将写入地址与读写缓存对齐的数据写入闪存存储设备中,写入地址与读写缓存不对齐的数据写入所述读写缓存中;
其中,所述写入地址与读写缓存对齐指的是数据写入的起始地址与读写缓存的起始地址对齐,且数据写入的结束地址与读写缓存的结束地址对齐;所述写入地址与读写缓存不对齐指的是数据写入的起始地址与读写缓存的的起始地址不对齐和/或数据写入的结束地址与读写缓存的结束地址不对齐。
进一步的,所述判断模块1031具体用于:
将所述待写入数据写入的起始地址对所述第一固定值取余,如果有余数,则判定为不对齐;如果没有余数,继续判断所述待写入数据的写入长度是否是所述第一固定值的整数倍,如果是整数倍,判定为对齐;如果不是整数倍,判定为不对齐。
进一步的,所述第二写入单元103还用于:
当写入所述读写缓存中连续地址上的小文件数据的大小达到预先设置的第五固定值之后,将所述小文件数据写入闪存存储设备。
进一步的,所述第一写入单元102具体用于:
当当前写入地址与读写缓存不对齐的数据和/或小文件数据和/或写入地址为写热地址的数据的写入地址与之前写入所述读写缓存中的地址位于同一个读写缓存,则在同一个读写缓存中以与所述之前写入所述读写缓存中起始地址相同的偏移量写入数据,并在地址重叠部分,以新的写入数据覆盖;
当当前写入地址与读写缓存不对齐的数据和/或小文件数据和/或写入地址为写热地址的数据的写入地址与之前写入所述读写缓存中的地址不属于同一个读写缓存,则申请空的读写缓存以与所述之前写入所述读写缓存中起始地址的偏移量写入数据;
其中,所述空的读写缓存为没有写入数据的读写缓存,所述偏移量为所述起始地址对所述第一固定值取余之后的余数。
进一步的,所述第二写入单元102还用于:
当某个读写缓存写满后,将该读写缓存中的数据写入闪存存储设备。
进一步的,所述装置还包括:
数据读出单元104,用于将读出地址为读热地址的数据或者与当前读出地址连续的地址上的数据预先从闪存存储设备中读出到所述读写缓存中,在读数据时,如果所述读出地址上的数据已经存在所述读写缓存中,则直接从所述读写缓存中读出数据,否则从所述闪存存储设备中读出数据;其中,所述读热地址为当前有数据读出的地址。
进一步的,所述数据读出单元104用于:
申请空的读写缓存,将与当前读出地址连续的地址上的固定长度的数据读出到读写缓存中。
进一步的,所述第二写入单元103具体用于:
建立一个读写缓存的权重队列,并记录各读写缓存的权重值,当所述读写缓存的剩余空间小于预先设置的第四固定值和/或主机系统处于空闲状态时,将读写缓存中的所述数据按权重值由低到高依次写入闪存存储设备中。
进一步的,所述第二写入单元103具体用于:
初始时,所有读写缓存的权重值相同,为一个预先确定的低值m;
当对某个读写缓存进行操作后,该读写缓存的权重值变为一个预先确定的高值n,n>m;其他未进行操作的读写缓存的权重值为原有权重值减去一个固定值k,k>0。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元或模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例二中的对应过程,在此不再赘述。
实施例五:
图16示出了本发明实施例五提供的闪存存储设备数据读写装置的组成结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该闪存存储设备数据读写装置可以应用于图1所示的主机系统中,可以是运行于主机系统的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到主机系统中或者运行于主机系统的应用系统中。
该闪存存储设备数据读写装置包括读写缓存划分单元1601、第一读出单元1602、第二读出单元1603以及写入单元1604,其中:
读写缓存划分单元1601,用于在主机系统的缓存中申请多个大小为第一固定值的读写缓存,所述第一固定值为闪存存储设备中闪存页大小的整数倍;
第一读出单元1602,用于将读出地址为读热地址的数据或者与当前读出地址连续的地址上的数据预先从闪存存储设备中读出到所述读写缓存中,其中,所述读热地址为当前有数据读出的地址;
第二读出单元1603,用于在读数据时,如果所述读出地址上的数据已经存在所述读写缓存中,则直接从所述读写缓存中读出数据,否则从所述闪存存储设备中读出数据;
写入单元1604,用于当空的读写缓存的个数小于或等于预先设置的第四固定值和/或主机系统处于空闲状态和/或满足预设条件时,将读写缓存中的数据写入闪存存储设备。
进一步的,所述第一读出单元1602具体用于:
申请空的读写缓存,将与当前读出地址连续的地址上的固定长度的数据读出到读写缓存中。
进一步的,所述写入单元1604具体用于:
建立一个读写缓存的权重队列,并记录各读写缓存的权重值,当空的读写缓存的个数小于或等于预先设置的第四固定值和/或主机系统处于空闲状态时,将读写缓存中的所述数据按权重值由低到高依次写入闪存存储设备中。
进一步的,所述写入单元1604具体用于:
初始时,所有读写缓存的权重值相同,为一个预先确定的低值m;
当对某个读写缓存进行操作后,该读写缓存的权重值变为一个预先确定的高值n,n>m;其他未进行操作的读写缓存的权重值为原有权重值减去一个固定值k,k>0。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元或模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例三中的对应过程,在此不再赘述。
实施例六:
图17示出了本发明实施例六提供的主机系统的组成结构,为了便于说明,仅示出了与本发明实施例相关的部分。
如图17所示,该主机系统1包括微处理器11、缓存12、数据传输接口13、输入或输出装置14以及存储器15。其中所述存储器15用于存储软件程序以及模块,如分区驱动装置、磁盘驱动装置以及上述实施例二和/或三中闪存存储设备数据读写方法/实施例四和/或五中闪存存储设备数据读写装置对应的程序指令/模块,微处理器11通过运行存储在存储器15内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述实施例所述的闪存存储设备数据读写的功能。存储器15可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。
其中,所述磁盘驱动装置用于读写物理磁盘,执行IRP_MJ_READ,IRP_MJ_WRITE派遣例程,并转换为物理磁盘的IRP_MJ_SCSI命令,传递给下层驱动装置;所述分区驱动装置用于根据磁盘的分区表对磁盘进行分区;所述闪存存储设备数据读写装置的具体实施例过程如实施例四和五所述,在此不再赘述。
在本实施例中,微处理器11是主机系统1的控制中心,利用各种接口和线路连接整个主机系统1的各个部分,通过运行或执行存储在存储器15内的软件程序和/或模块,以及调用存储在存储器15内的数据,执行主机系统1的各种功能和处理数据,从而对主机系统1进行整体监控。可选的,微处理器11可包括一个或多个处理核心。所述微处理器11分别与所述缓存12、数据传输接口13、输入或输出装置14以及存储器15连接。
综上所述,本发明实施例通过将写入地址与读写缓存不对齐的数据和/或小文件数据和/或写入地址为写热地址的数据写入主机系统预先划分的读写缓存中,待主机系统处于空闲状态或满足其他预设条件时再将读写缓存中的所述数据写入闪存存储设备,能够大大减少因为地址不对齐或者写小文件数据等原因造成的在写入过程中不断的进行数据的拷贝、搬移问题,提高闪存存储设备数据的读写效率,具有较强的实用性。
本领域普通技术人员还可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,包括ROM/RAM、磁盘、光盘等。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明由所提交的权利要求书确定的专利保护范围。

Claims (11)

1.一种闪存存储设备数据读写的方法,其特征在于,所述方法包括:
在主机系统的缓存中申请多个大小为第一固定值的读写缓存,所述第一固定值为闪存存储设备中闪存页大小的整数倍;
在写数据时,将待写入数据中写入地址与读写缓存不对齐的数据写入所述读写缓存;
当空的读写缓存的个数小于或等于预先设置的第四固定值和/或主机系统处于空闲状态时,将读写缓存中的数据写入闪存存储设备;
所述将待写入数据中写入地址与读写缓存不对齐的数据写入所述读写缓存包括:
判断待写入数据的写入地址是否对齐;
若是,将所述待写入数据直接写入闪存存储设备;
若否,将所述待写入数据拆分成写入地址与读写缓存不对齐的数据和写入地址与读写缓存对齐的数据,将写入地址与读写缓存对齐的数据写入闪存存储设备中,写入地址与读写缓存不对齐的数据写入所述读写缓存中;
所述写入地址与读写缓存对齐指的是数据写入的起始地址与读写缓存的起始地址对齐,且数据写入的结束地址与读写缓存的结束地址对齐;所述写入地址与读写缓存不对齐指的是数据写入的起始地址与读写缓存的的起始地址不对齐和/或数据写入的结束地址与读写缓存的结束地址不对齐;
所述当空的读写缓存的个数小于或等于预先设置的第四固定值和/或主机系统处于空闲状态时,将读写缓存中的所述数据写入闪存存储设备包括:
建立一个读写缓存的权重队列,并记录各读写缓存的权重值,当空的读写缓存的个数小于或等于预先设置的第四固定值和/或主机系统处于空闲状态时,将读写缓存中的所述数据按权重值由低到高依次写入闪存存储设备中;
所述记录各读写缓存的权重值包括:
初始时,所有读写缓存的权重值相同,为一个预先确定的低值m;
当对某个读写缓存进行操作后,该读写缓存的权重值变为一个预先确定的高值n,n>m;其他未进行操作的读写缓存的权重值为原有权重值减去一个固定值k,k>0。
2.如权利要求1所述的方法,其特征在于,所述判断待写入数据的写入地址是否对齐包括:
将所述待写入数据写入的起始地址对所述第一固定值取余,如果有余数,则判定为不对齐;如果没有余数,继续判断所述待写入数据的写入长度是否是所述第一固定值的整数倍,如果是整数倍,判定为对齐;如果不是整数倍,判定为不对齐。
3.如权利要求1所述的方法,其特征在于,所述将待写入数据中写入地址与读写缓存不对齐的数据写入所述读写缓存包括:
当当前写入地址与读写缓存不对齐的数据的写入地址与之前写入所述读写缓存中的地址位于同一个读写缓存,则在同一个读写缓存中以与所述之前写入所述读写缓存中起始地址相同的偏移量写入数据,并在地址重叠部分,以新的写入数据覆盖;
当当前写入地址与读写缓存不对齐的数据的写入地址与之前写入所述读写缓存中的地址不属于同一个读写缓存,则申请空的读写缓存以与所述之前写入所述读写缓存中起始地址的偏移量写入数据;
其中,所述空的读写缓存为没有写入数据的读写缓存,所述偏移量为所述起始地址对所述第一固定值取余之后的余数。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
将读出地址为读热地址的数据或者与当前读出地址连续的地址上的数据预先从闪存存储设备中读出到所述读写缓存中;
在读数据时,如果所述读出地址上的数据已经存在所述读写缓存中,则直接从所述读写缓存中读出数据,否则从所述闪存存储设备中读出数据;
其中,所述读热地址为当前有数据读出的地址。
5.如权利要求4所述的方法,其特征在于,所述将与当前读出地址连续的地址上的数据预先从闪存存储设备中读出到所述读写缓存中包括:
申请空的读写缓存,将与当前读出地址连续的地址上的固定长度的数据读出到读写缓存中。
6.一种闪存存储设备数据读写的装置,其特征在于,所述装置包括:
读写缓存划分单元,用于在主机系统的缓存中申请多个大小为第一固定值的读写缓存,所述第一固定值为闪存存储设备中闪存页大小的整数倍;
第一写入单元,用于在写数据时,将待写入数据中写入地址与读写缓存不对齐的数据写入所述读写缓存;
第二写入单元,用于当空的读写缓存的个数小于或等于预先设置的第四固定值和/或主机系统处于空闲状态时,将读写缓存中的数据写入闪存存储设备;
所述第一写入单元包括:
判断模块,用于判断待写入数据的写入地址是否对齐;
第一写入模块,用于在所述判断模块判断结果为是时,将所述待写入数据直接写入闪存存储设备;
第二写入模块,用于在所述判断模块判断结果为否时,将所述待写入数据拆分成写入地址与读写缓存不对齐的数据和写入地址与读写缓存对齐的数据,将写入地址与读写缓存对齐的数据写入闪存存储设备中,写入地址与读写缓存不对齐的数据写入所述读写缓存中;
其中,所述写入地址与读写缓存对齐指的是数据写入的起始地址与读写缓存的起始地址对齐,且数据写入的结束地址与读写缓存的结束地址对齐;所述写入地址与读写缓存不对齐指的是数据写入的起始地址与读写缓存的的起始地址不对齐和/或数据写入的结束地址与读写缓存的结束地址不对齐;
所述第二写入单元具体用于:
建立一个读写缓存的权重队列,并记录各读写缓存的权重值,当空的读写缓存的个数小于或等于预先设置的第四固定值和/或主机系统处于空闲状态时,将读写缓存中的所述数据按权重值由低到高依次写入闪存存储设备中;
初始时,所有读写缓存的权重值相同,为一个预先确定的低值m;
当对某个读写缓存进行操作后,该读写缓存的权重值变为一个预先确定的高值n,n>m;其他未进行操作的读写缓存的权重值为原有权重值减去一个固定值k,k>0。
7.如权利要求6所述的装置,其特征在于,所述判断模块具体用于:
将所述待写入数据写入的起始地址对所述第一固定值取余,如果有余数,则判定为不对齐;如果没有余数,继续判断所述待写入数据的写入长度是否是所述第一固定值的整数倍,如果是整数倍,判定为对齐;如果不是整数倍,判定为不对齐。
8.如权利要求6所述的装置,其特征在于,所述第一写入单元具体用于:
当当前写入地址与读写缓存不对齐的数据的写入地址与之前写入所述读写缓存中的地址位于同一个读写缓存,则在同一个读写缓存中以与所述之前写入所述读写缓存中起始地址相同的偏移量写入数据,并在地址重叠部分,以新的写入数据覆盖;
当当前写入地址与读写缓存不对齐的数据的写入地址与之前写入所述读写缓存中的地址不属于同一个读写缓存,则申请空的读写缓存以与所述之前写入所述读写缓存中起始地址的偏移量写入数据;
其中,所述空的读写缓存为没有写入数据的读写缓存,所述偏移量为所述起始地址对所述第一固定值取余之后的余数。
9.如权利要求6所述的装置,其特征在于,所述装置还包括:
数据读出单元,用于将读出地址为读热地址的数据或者与当前读出地址连续的地址上的数据预先从闪存存储设备中读出到所述读写缓存中,在读数据时,如果所述读出地址上的数据已经存在所述读写缓存中,则直接从所述读写缓存中读出数据,否则从所述闪存存储设备中读出数据;其中,所述读热地址为当前有数据读出的地址。
10.如权利要求9所述的装置,其特征在于,所述数据读出单元还用于:
申请空的读写缓存,将与当前读出地址连续的地址上的固定长度的数据读出到读写缓存中。
11.一种主机系统,其特征在于,所述主机系统包括如权利要求6至10任一项所述的闪存存储设备数据读写的装置。
CN201310356729.8A 2013-08-15 2013-08-15 一种闪存存储设备数据读写的方法、装置及主机系统 Active CN103425602B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310356729.8A CN103425602B (zh) 2013-08-15 2013-08-15 一种闪存存储设备数据读写的方法、装置及主机系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310356729.8A CN103425602B (zh) 2013-08-15 2013-08-15 一种闪存存储设备数据读写的方法、装置及主机系统

Publications (2)

Publication Number Publication Date
CN103425602A CN103425602A (zh) 2013-12-04
CN103425602B true CN103425602B (zh) 2017-09-08

Family

ID=49650374

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310356729.8A Active CN103425602B (zh) 2013-08-15 2013-08-15 一种闪存存储设备数据读写的方法、装置及主机系统

Country Status (1)

Country Link
CN (1) CN103425602B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866428B (zh) 2014-02-21 2018-08-31 联想(北京)有限公司 数据存取方法和数据存取装置
CN105393228B (zh) * 2014-06-25 2019-09-03 华为技术有限公司 读写闪存中数据的方法、装置及用户设备
CN105373338A (zh) * 2014-08-20 2016-03-02 深圳市中兴微电子技术有限公司 一种flash的控制方法和控制器
CN105575425A (zh) * 2014-10-09 2016-05-11 宏碁股份有限公司 存储器晶片、其资料读取方法以及资料储存系统
CN104407880A (zh) * 2014-10-27 2015-03-11 杭州中天微系统有限公司 支持硬件非对齐存储访问的risc处理器加载/存储单元
CN104461925B (zh) * 2014-11-14 2017-10-13 浪潮(北京)电子信息产业有限公司 一种存储设备地址对齐的自动纠正方法和装置
CN104461754B (zh) * 2014-12-10 2018-06-19 福州瑞芯微电子股份有限公司 一种监控eMMC的方法和装置
CN105389124B (zh) * 2015-10-16 2018-11-09 联想(北京)有限公司 一种信息处理方法及电子设备
CN105487824A (zh) * 2015-12-07 2016-04-13 联想(北京)有限公司 信息处理方法、存储装置及电子设备
US9880744B1 (en) * 2015-12-22 2018-01-30 Veritas Technologies Llc Method for flash-friendly caching for CDM workloads
CN105824580B (zh) * 2016-03-18 2018-11-02 福州瑞芯微电子股份有限公司 录像文件写方法和录制设备
EP3358456A4 (en) * 2016-12-05 2018-08-08 Huawei Technologies Co., Ltd. Control method, storage device and system for data read/write command in nvme over fabric architecture
CN110658978B (zh) * 2018-06-28 2022-11-01 杭州海康威视系统技术有限公司 数据处理方法、装置、电子设备及可读存储介质
CN109521970B (zh) * 2018-11-20 2022-03-08 深圳芯邦科技股份有限公司 一种数据处理方法及相关设备
CN111813722B (zh) * 2019-04-10 2022-04-15 北京灵汐科技有限公司 基于共享内存的数据读写方法,系统及可读存储介质
CN110347334B (zh) * 2019-05-29 2023-03-14 深圳市金泰克半导体有限公司 一种固态硬盘工作方法、系统、电子设备和存储介质
CN111045604B (zh) * 2019-12-11 2022-11-01 苏州浪潮智能科技有限公司 一种基于nvram的小文件读写加速方法和设备
CN112527209A (zh) * 2020-12-21 2021-03-19 江苏国科微电子有限公司 一种数据写入方法、装置、电子设备及存储介质
CN112506442A (zh) * 2020-12-22 2021-03-16 深圳市时创意电子有限公司 一种闪存芯片数据处理方法、装置、电子设备及存储介质
CN113485640A (zh) * 2021-06-23 2021-10-08 至誉科技(武汉)有限公司 数据写入方法、装置、设备及可读存储介质
CN113377296B (zh) * 2021-08-16 2021-11-16 深圳市有为信息技术发展有限公司 车载终端NAND Flash的存储管理方法和系统、车载终端、车辆
CN113849194B (zh) * 2021-08-20 2022-10-14 荣耀终端有限公司 烧录方法和终端设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101316240A (zh) * 2008-07-28 2008-12-03 华为技术有限公司 一种数据读写的方法和装置
CN102799392A (zh) * 2012-06-16 2012-11-28 北京忆恒创源科技有限公司 存储设备及其中断控制方法
CN103198021A (zh) * 2013-04-18 2013-07-10 北京理工大学 一种提高固态硬盘数据传输效率的方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100395750C (zh) * 2005-12-30 2008-06-18 华为技术有限公司 一种缓存管理方法
CN103049394A (zh) * 2012-11-30 2013-04-17 记忆科技(深圳)有限公司 固态硬盘数据缓存的方法及其系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101316240A (zh) * 2008-07-28 2008-12-03 华为技术有限公司 一种数据读写的方法和装置
CN102799392A (zh) * 2012-06-16 2012-11-28 北京忆恒创源科技有限公司 存储设备及其中断控制方法
CN103198021A (zh) * 2013-04-18 2013-07-10 北京理工大学 一种提高固态硬盘数据传输效率的方法

Also Published As

Publication number Publication date
CN103425602A (zh) 2013-12-04

Similar Documents

Publication Publication Date Title
CN103425602B (zh) 一种闪存存储设备数据读写的方法、装置及主机系统
US11573701B2 (en) Memory device and host device
US10126964B2 (en) Hardware based map acceleration using forward and reverse cache tables
JP3347015B2 (ja) 頻繁にアクセスされ、ランダムにアドレス指定されるデータの適応局所化方法及び装置
US8386698B2 (en) Data accessing method for flash memory and storage system and controller using the same
US9053019B2 (en) Non-volatile memory device, a data processing device using the same, and a swapping method used by the data processing and non-volatile memory devices
US9507719B2 (en) Garbage collection in hybrid memory system
US20080147994A1 (en) Command scheduling method and apparatus of virtual file system embodied in nonvolatile data storage device
TWI473116B (zh) 多通道記憶體儲存裝置及其控制方法
US20050021904A1 (en) Mass memory device based on a flash memory with multiple buffers
WO2012126317A1 (zh) 文件存储方法和装置
JP2019020788A (ja) メモリシステムおよび制御方法
JPWO2006051780A1 (ja) 不揮発性メモリ装置および不揮発性メモリ装置のアクセス方法
JP2008016003A (ja) メモリー格納装置及びその読み書き方法
US11385831B2 (en) Memory controller and storage device including the same
JPWO2015076354A1 (ja) ストレージ装置と方法並びにプログラム
CN109388590A (zh) 提升多通道dma访问性能的动态缓存块管理方法和装置
CN107678685B (zh) 基于闪存的存储路径优化的键值存储管理方法
CN109164976A (zh) 利用写缓存优化存储设备性能
CN113986773A (zh) 基于固态硬盘的写放大优化方法、装置及计算机设备
JPH1063551A (ja) 情報処理装置
WO2012149815A1 (zh) 磁盘缓存的管理方法及装置
US10628045B2 (en) Internal data transfer management in a hybrid data storage device
CN104516827B (zh) 一种读缓存的方法及装置
JP6254986B2 (ja) 情報処理装置、アクセスコントローラ、および情報処理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 518057 A, B, C, D, E, F1, 8 Building, Financial Services Technology Innovation Base, No. 8 Kefa Road, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: Shenzhen jiangbolong electronic Limited by Share Ltd

Address before: 518057 A, B, C, D, E, F1, 8 Building, Financial Services Technology Innovation Base, No. 8 Kefa Road, Nanshan District, Shenzhen City, Guangdong Province

Patentee before: Shenzhen jiangbolong Electronic Co., Ltd.

CP01 Change in the name or title of a patent holder