CN105117180B - 一种数据存储方法和装置以及固态硬盘 - Google Patents

一种数据存储方法和装置以及固态硬盘 Download PDF

Info

Publication number
CN105117180B
CN105117180B CN201510627623.6A CN201510627623A CN105117180B CN 105117180 B CN105117180 B CN 105117180B CN 201510627623 A CN201510627623 A CN 201510627623A CN 105117180 B CN105117180 B CN 105117180B
Authority
CN
China
Prior art keywords
caching
data
target data
target
type
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
CN201510627623.6A
Other languages
English (en)
Other versions
CN105117180A (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 Union Memory Information System Co Ltd
Original Assignee
Beijing Legend Core Technology 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 Beijing Legend Core Technology Co Ltd filed Critical Beijing Legend Core Technology Co Ltd
Priority to CN201510627623.6A priority Critical patent/CN105117180B/zh
Publication of CN105117180A publication Critical patent/CN105117180A/zh
Priority to US14/974,885 priority patent/US10514848B2/en
Priority to DE102016101311.0A priority patent/DE102016101311A1/de
Application granted granted Critical
Publication of CN105117180B publication Critical patent/CN105117180B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请实施例提供了一种数据存储方法和装置以及固态硬盘,该方法包括:固态硬盘获取当前待写入的目标数据;如果确定出目标数据为需要缓存的数据,则从第一缓存和第二缓存中,确定用于存储目标数据的目标缓存,其中,第一缓存为所述主机内存中预设的缓存区,第二缓存为SSD中的固有缓存;将目标数据缓存至目标缓存。该方法和装置可以提高SSD的存储性能。

Description

一种数据存储方法和装置以及固态硬盘
技术领域
本申请涉及电子信息技术领域,更具体的说是涉及一种数据存储方法和装置以及固态硬盘。
背景技术
固态硬盘(SSD,Solid State Disk)因具有读写的速度快、功耗低等特点,而被广泛应用于笔记本和台式计算机等电子设备中。
现有的SSD可以包括:控制器、闪存和缓存。其中,该SSD中的内存可以用于数据的缓存以及对算法所用到的映射表的存储。通过使用该SSD的缓存进行数据缓存可以提高SSD的整体性能和寿命。然而SSD的缓存容量一般有限且容量较小,无法满足SSD的处理存储要求,影响了数据访问的命中率。
发明内容
有鉴于此,本申请提供了一种数据存储方法和装置以及固态硬盘,以提高SSD的存储性能。
为实现上述目的,本申请提供如下技术方案:一种数据存储方法,应用于固态硬盘SSD,所述方法包括:
获取当前待写入的目标数据;
如果确定出所述目标数据为需要缓存的数据,则从第一缓存和第二缓存中,确定用于存储所述目标数据的目标缓存,其中,所述第一缓存为主机内存中预设的缓存区,所述第二缓存为所述SSD中的固有缓存;
将所述目标数据缓存至所述目标缓存。
优选的,所述从第一缓存和第二缓存中,确定用于存储所述目标数据的目标缓存,包括:
确定所述目标数据所属的数据类型,所述数据类型包括第一类型数据和第二类型数据,所述第一类型数据的预估访问频率大于所述第二类型数据的预估访问频率;
当所述目标数据为第一类型数据时,将所述第一缓存确定为目标缓存;
当所述目标数据为第二类型数据时,将所述第二缓存确定为目标缓存。
优选的,将所述目标数据缓存至所述目标缓存之后,还包括:
统计所述目标数据的访问频率;
当基于所述目标数据的访问频率确定出所述目标数据所属的数据类型发生变化时,更新所述目标数据所属的数据类型。
优选的,当基于所述目标数据的访问频率确定出所述目标数据所属的数据类型发生变化之后,还包括:
基于所述目标数据当前所属的目标数据类型,将所述目标数据转移至与所述目标数据类型对应的缓存中。
优选的,还包括:
分别监测所述第一缓存和第二缓存中当前剩余空间是否小于预设值;
如果所述第一缓存中当前剩余空间小于预设值,则从所述第一缓存区中选取至少部分数据迁移至所述第二缓存;
如果所述第二缓存中当前剩余空间小于预设值,则从所述第二缓存区中选取至少部分数据迁移至所述第一缓存。
优选的,还包括:
基于所述第一缓存和第二缓存的数据读取频率,确定所述第一缓存的第一调整量和第二缓存区的第二调整量;
依据所述第一调整量,调整所述第一缓存的缓存空间大小;
依据所述第二调整量,调整所述第二缓存的缓存空间大小。
另一方面,本申请还提供了一种数据存储装置,应用于固态硬盘SSD,所述装置包括:
数据获取单元,用于获取当前待写入的目标数据;
缓存确定单元,用于如果确定出所述目标数据为需要缓存的数据,则从第一缓存和第二缓存中,确定用于存储所述目标数据的目标缓存,其中,所述第一缓存为主机内存中预设的缓存区,所述第二缓存为所述SSD中的固有缓存;
数据写入单元,用于将所述目标数据缓存至所述目标缓存。
优选的,所述缓存确定单元,包括:
类型确定子单元,用于确定所述目标数据所属的数据类型,所述数据类型包括第一类型数据和第二类型数据,所述第一类型数据的预估访问频率大于所述第二类型数据的预估访问频率;
第一缓存子单元,用于当所述目标数据为第一类型数据时,将所述第一缓存确定为目标缓存;
第二缓存子单元,用于当所述目标数据为第二类型数据时,将所述第二缓存确定为目标缓存。
优选的,还包括:
频率统计单元,用于在所述数据写入单元将所述目标数据缓存至所述目标缓存之后,统计所述目标数据的访问频率;
类型变更单元,用于当基于所述目标数据的访问频率确定出所述目标数据所属的数据类型发生变化时,更新所述目标数据所属的数据类型。
优选的,还包括:
数据转移单元,用于在所述类型变更单元确定出所述目标数据所属的数据类型发生变化之后,基于所述目标数据当前所属的目标数据类型,将所述目标数据转移至与所述目标数据类型对应的缓存中。
优选的,还包括:
空间监测单元,用于分别监测所述第一缓存和第二缓存中当前剩余空间是否小于预设值;
第一迁移单元,用于如果所述第一缓存中当前剩余空间小于预设值,则从所述第一缓存区中选取至少部分数据迁移至所述第二缓存;
第二迁移单元,用于如果所述第二缓存中当前剩余空间小于预设值,则从所述第二缓存区中选取至少部分数据迁移至所述第一缓存。
优选的,还包括:
调整量确定单元,用于基于所述第一缓存和第二缓存的数据读取频率,确定所述第一缓存的第一调整量和第二缓存区的第二调整量;
第一调整单元,用于依据所述第一调整量,调整所述第一缓存的缓存空间大小;
第二调整单元,用于依据所述第二调整量,调整所述第二缓存的缓存空间大小。
另一方面,本申请还提供了一种固态硬盘,包括:
控制器和第二缓存;
其中,所述控制器,用于获取当前待写入的目标数据;如果确定出所述目标数据为需要缓存的数据,则从第一缓存和所述第二缓存中,确定用于存储所述目标数据的目标缓存;将所述目标数据缓存至所述目标缓存;其中,所述第一缓存为主机内存中预设的缓存区。
优选的,所述控制器从第一缓存和第二缓存中,确定用于存储所述目标数据的目标缓存,具体为:
所述控制器确定所述目标数据所属的数据类型,所述数据类型包括第一类型数据和第二类型数据,所述第一类型数据的预估访问频率大于所述第二类型数据的预估访问频率;当所述目标数据为第一类型数据时,将所述第一缓存确定为目标缓存;当所述目标数据为第二类型数据时,将所述第二缓存确定为目标缓存。
优选的,所述控制器还用于:在将所述目标数据缓存至所述目标缓存之后,统计所述目标数据的访问频率;当基于所述目标数据的访问频率确定出所述目标数据所属的数据类型发生变化时,更新所述目标数据所属的数据类型。
优选的,所述控制器还用于:当基于所述目标数据的访问频率确定出所述目标数据所属的数据类型发生变化之后,基于所述目标数据当前所属的目标数据类型,将所述目标数据转移至与所述目标数据类型对应的缓存中。
优选的,所述控制器还用于:分别监测所述第一缓存和第二缓存中当前剩余空间是否小于预设值;如果所述第一缓存中当前剩余空间小于预设值,则从所述第一缓存区中选取至少部分数据迁移至所述第二缓存;如果所述第二缓存中当前剩余空间小于预设值,则从所述第二缓存区中选取至少部分数据迁移至所述第一缓存。
优选的,所述控制器还用于:基于所述第一缓存和第二缓存的数据读取频率,确定所述第一缓存的第一调整量和第二缓存区的第二调整量;依据所述第一调整量,调整所述第一缓存的缓存空间大小;依据所述第二调整量,调整所述第二缓存的缓存空间大小。
经由上述的技术方案可知,获取到当前待写入的目标数据为待缓存数据时,则从第一缓存和第二缓存中确定目标缓存,并将该目标数据缓存至该目标缓存,由于第一缓存为主机内存中预设的缓存区,而第二缓存为该SSD内固有的缓存,因此,目标数据可以根据需要存储到主机内存中预设的缓存区或者是该SSD内固有的缓存区,从而利用主机内存中的缓存区,实现对SSD用于缓存数据的缓存空间的扩展,增大了SSD可用的缓存空间,从而有利于提高SSD的存储性能。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了本申请一种数据存储方法一个实施例的流程示意图;
图2示出了本申请一种数据存储方法另一个实施例的流程示意图;
图3示出了本申请一种数据存储方法另一个实施例的流程示意图;
图4示出了本申请一种数据存储方法另一个实施例的流程示意图;
图5示出了本申请一种数据存储装置一个实施例的结构示意图;
图6示出了本申请一种数据存储装置另一个实施例的结构示意图;
图7示出了本申请一种固态硬盘一个实施例的结构示意图。
具体实施方式
本申请实施例提供了一种数据存储方法和装置,以将主机中的部分内存作为SSD的缓存,以扩展SSD的缓存空间,提高SSD的存储性能。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先对本申请的一种数据存储方法进行介绍。
参见图1,其示出了本申请一种数据存储方法一个实施例的流程示意图,本实施例的方法可以应用于固态硬盘SSD,该方法可以包括:
101,获取当前待写入的目标数据。
其中,SSD获取当前待写入的目标数据的过程可以与现有的方式相似,如SSD获取处理器传输的待写入的目标数据。
102,如果确定出该目标数据为需要缓存的数据,则从第一缓存和第二缓存中,确定用于存储该目标数据的目标缓存。
其中,该第一缓存为主机内存中预设的缓存区,该第二缓存为该SSD中的固有缓存。
与现有不同的是,在本实施例中,该SSD所能够操作或者说访问的缓存空间实际上有两部分,一个缓存是该SSD中固有的缓存空间,即,该缓存为目前SSD缓存数据所用,且位于该SSD内部的缓存空间;另一个缓存是主机内存中预设的缓存区,该缓存区为该主机内存的一部分空间。为了便于区分,本申请实施例中,将SSD可访问的该主机内存中的预设缓存区称为第一缓存,而将该SSD中固有缓存称为第二缓存。
本申请实施例中将主机内存的一部分缓存扩展为该SSD可用的缓存,从而有利于提高SSD的缓存性能。
在实际应用中,SSD获取到待缓存的目标数据后,可以从第一缓存和第二缓存,确定一个当前用于存储该目标数据的缓存,以便将该目标数据存储至确定出的缓存内。为了便于区分,将第一缓存和第二缓存中用于对该目标数据进行存储的缓存称为目标缓存。
可以理解的是,获取到待确定的目标数据之后,确定该目标数据是否需要缓存的方式同样可以与现有的方式相似,如目标数据根据访问频率的不同,或者目标数据的用途不同,则针对该目标数据的存储方式可能会有所不同,如,对于处理器运行所必须的数据则可能需要被缓存,而一些不经常使用的数据则无需缓存。
103,将该目标数据缓存至该目标缓存。
在本申请实施例中,获取到当前待写入的目标数据为待缓存数据时,则从第一缓存和第二缓存中确定目标缓存,并将该目标数据缓存至该目标缓存,由于第一缓存为主机内存中预设的缓存区,而第二缓存为该SSD内固有的缓存,因此,目标数据可以根据需要存储到主机内存中预设的缓存区或者是该SSD内固有的缓存区,从而利用主机内存中的缓存区,实现对SSD用于缓存数据的缓存空间的扩展,增大了SSD可用的缓存空间,从而有利于提高SSD的存储性能。
需要说明的是,在本申请任意一个实施例中,该主机内存中预设的缓存区可以理解为该主机内存中预留出的能够被该SSD访问的空间,该部分预留出的空间不能够再被主机作用内存。具体的,可以在开启主机的过程中,由主机的BIOS程序将内存中指定区域上报给所述主机,该指定区域不包含该预设的缓存区,则主机启动后,可以仅仅使用该内存中的指定区域,而不会使用到内存中的该预设的缓存区。
可以理解的是,从第一缓存和第二缓存中确定用于存储该目标数据的目标缓存的方式可以有多种。
在一种可能的实现方式中,SSD可以随机确定目标缓存。
在另一种可能的实现方式中,SSD可以是根据该第一缓存和第二缓存当前剩余的可用缓存空间的大小,确定当前用于存储该目标数据的目标缓存。如,基于负载均衡的原理,从第一缓存和第二缓存中选取剩余的可用缓存空间较大者,作为该目标缓存。
当然,还可以有其他确定目标缓存的方式,同样适用于本申请。
下面以一种确定目标缓存的方式为例,进行详细介绍。参见图2,其示出了本申请一种数据存储方法另一个实施例的流程示意图,本实施例的方法可以应用于固态硬盘SSD,该方法可以包括:
201,获取当前待写入的目标数据。
202,如果确定出该目标数据为需要缓存的数据,确定该目标数据所属的数据类型。
其中,数据类型可以表征该数据被访问的频率,该数据类型可以包括第一类型数据和第二类型数据。第一类型数据的预估访问频率大于该第二类型数据的预估访问频率。
对于SSD而言,有些数据是经常需要被读取的,而有些数据则可能并不会经常被读取,而对于经常调取的数据而言,如果对该类数据的读取速度过慢,也会影响到电子设备的数据处理性能。因此,在本申请实施例中,将待存储的目标数据进行分类,以根据数据类型确定该目标存储所需存储到目标缓存。
203,当该目标数据为第一类型数据时,将第一缓存确定为目标缓存。
204,当该目标数据为第二类型数据时,将该第二缓存确定为目标缓存。
其中,该第一缓存为主机内存中预设的缓存区,该第二缓存为该SSD中的固有缓存。
可以理解的是,主机内存中的缓存区的数据读写性能要高于该SSD中固有缓存的数据读写性能,因此,如果目标数据为访问频率较高的数据,则说明该类数据对读写性能要求较高,此时可以将该目标数据存储至该第一缓存中;而对于其他类数据则可以直接存储到该SSD的第二缓存中。
其中,在本申请实施例中可以依据存储的数据访问频率记录以及预设的数据类型所对应的访问频率,确定出该目标数据所属的数据类型;也可以是预先设定不同数据所属的数据类型。
205,将该目标数据缓存至该目标缓存。
确定出目标缓存后,可以直接将数据存储到该目标缓存中即可。
可选的,由于第一缓存读写性能高于第二缓存的读写性能,因此,当该目标数据为第一类型数据时,可以基于第一数据写入速率将目标数据写入至该第一缓存中;而当该目标数据为第二类型数据时,可以基于第二数据写入速率将该目标数据写入至第二缓存中,其中,该第一数据写入速率大于该第二数据写入速率。
可选的,在图2所示实施例的基础上,在将该目标数据缓存至该目标缓存之后,还可以包括:统计所述目标数据的访问频率。则当基于该目标数据的访问频率确定出该目标数据所属的数据类型发生变化时,更新该目标数据所属的数据类型。
在存储了目标数据之后对数据的访问频率进行统计,以确定出目标数据的数据类型的变更,有利于后续准确确定待存储数据的数据类型,并从第一缓存和第二缓存中,合理的确定存储该目标数据的缓存区。
进一步的,当基于目标数据的访问频率确定出该目标数据所属的数据类型发生变化之后,还可以包括:
基于该目标数据当前所属的目标数据类型,将该目标数据转移至与该目标数据类型对应的缓存中。
根据目标数据的数据类型的变化,动态调整存储该目标数据的目标缓存,实现了动态使用主机内存中预设缓存区和该SSD中的固定缓存,有利于更为合理的分配SSD内部固有内存和主机内存的使用。
可以理解的是,在以上任意一个实施例中,将目标数据存储至第一缓存具体可以借用主机的直接内存存取(DMA,Direct Memory Access)操作进行数据搬移即可,而无需经过主机接口模块。
而将该目标数据存储至第二缓存可以为:通过主机接口模块将目标数据存储至第二缓存。。
参见图3,其示出了本申请一种数据存储方法另一个实施例的流程示意图,本实施例的方法可以应用于固态硬盘SSD,该方法可以包括:
301,获取当前待写入的目标数据。
302,如果确定出该目标数据为需要缓存的数据,则从第一缓存和第二缓存中,确定用于存储该目标数据的目标缓存。
其中,该第一缓存为主机内存中预设的缓存区,该第二缓存为该SSD中的固有缓存。
303,将该目标数据缓存至该目标缓存。
以上步骤301至303可以参见前面任意一个实施例的相关介绍,在此不再赘述。
304,基于第一缓存和第二缓存的数据读取频率,确定该第一缓存的第一调整量和第二缓存区的第二调整量。
在本实施例中根据第一缓存的数据读取频率,来判断该第一缓存当前的存储空间是否能够满足第一缓存对应的数据读取频率,如果第一缓存的数据读取频率较高,则说明对第一缓存的使用频率较高,第一缓存存储着大量经常被访问的数据。为了适应数据读取需求,则可以适当增大该第一缓存的空间容量,则该第二调整量可以为第一缓存需要增加的存储空间;相应的,如果第一缓存的读取频率较低,则可以适当减少该第一缓存的存储空间大小。
对于第二缓存类似,可以根据其数据读取频率,来确定是否需要增加或减少该第二缓存的容量。
305,依据该第一调整量,调整该第一缓存的缓存空间大小。
基于第一调整量对该第一缓存进行调整,可以是将第一调整量以及对该第一缓存的缓存空间大小进行调整的请求发送给主机,以便主机的BIOS程序在检测到主机启动后,重新配置该第一缓存的容量。
306,依据该第二调整量,调整该第二缓存的缓存空间大小。
对于该第二缓存的调整,则可以重新配置第二缓存的大小,如增加第二缓存的容量,则会相应减少SSD中其他存储空间的大小;相应而,如减少第二缓存的容量,则可以相应增加SSD中其他存储空间的大小。
本实施例实现了对第一缓存和第二缓存的空间大小的动态修改,有利于适应数据存取需求。
参见图4,其示出了本申请一种数据存储方法另一个实施例的流程示意图,本实施例的方法可以应用于固态硬盘SSD,该方法可以包括:
401,获取当前待写入的目标数据。
402,如果确定出该目标数据为需要缓存的数据,则从第一缓存和第二缓存中,确定用于存储该目标数据的目标缓存。
其中,该第一缓存为主机内存中预设的缓存区,该第二缓存为该SSD中的固有缓存。
403,将该目标数据缓存至该目标缓存。
以上步骤401至403可以参见前面任意一个实施例的相关介绍,在此不再赘述。
404,分别监测第一缓存和第二缓存中当前剩余空间是否小于预设值。
其中,该预设值可以根据需要设定,且第一缓存和第二缓存所对应的预设值可以相同也可以不同。
通过本步骤的监测,可以降低由于第一缓存和第二缓存剩余空间不足而导致数据存储异常的情况。
405,如果该第一缓存中当前剩余空间小于预设值,则从该第一缓存区中选取至少部分数据迁移至该第二缓存。
406,如果该第二缓存中当前剩余空间小于预设值,则从该第二缓存区中选取至少部分数据迁移至该第一缓存。
如果第一缓存或第二缓存中当前剩余空间小于预设值,则可以将其中一个缓存内存储的数据迁移到另一个缓存中。
对于任意一个缓存中的数据迁移,可以根据该缓存中数据的访问频率,确定是否将该数据迁移至另外一个缓存中。
如,对于将第一缓存中的数据迁移至第二缓存的情况,当检测到第一缓存的剩余存储空间小于预设值时,确定当前时刻第一缓存中缓存的已存储数据的预估访问频率;根据目标数据存储区域内存储的目标数据的预估访问频率从高到低的顺序,将排序靠后的指定数量的目标数据转移至第二缓存中。
又如,对于将第二缓存中的数据迁移至第一缓存的情况,当检测到第二缓存的剩余存储空间小于预设值时,确定当前时刻第二缓存中缓存的已存储数据的预估访问频率;根据目标数据存储区域内存储的目标数据的预估访问频率从高到低的顺序,将排序靠前的指定数量的目标数据转移至该第一缓存中。
对应本申请的一种数据存储方法,本申请实施例还提供了一种数据处理装置。
参见图5,其示出了本申请一种数据存储装置一个实施例的结构示意图,本实施例的装置应用于固态硬盘SSD,所述装置可以包括:
数据获取单元501,用于获取当前待写入的目标数据;
缓存确定单元502,用于如果确定出所述目标数据为需要缓存的数据,则从第一缓存和第二缓存中,确定用于存储所述目标数据的目标缓存,其中,所述第一缓存为所述主机内存中预设的缓存区,所述第二缓存为所述SSD中的固有缓存;
数据写入单元503,用于将所述目标数据缓存至所述目标缓存。
在本申请实施例中,获取到当前待写入的目标数据为待缓存数据时,则从第一缓存和第二缓存中确定目标缓存,并将该目标数据缓存至该目标缓存,由于第一缓存为主机内存中预设的缓存区,而第二缓存为该SSD内固有的缓存,因此,目标数据可以根据需要存储到主机内存中预设的缓存区或者是该SSD内固有的缓存区,从而利用主机内存中的缓存区,实现对SSD用于缓存数据的缓存空间的扩展,增大了SSD可用的缓存空间,从而有利于提高SSD的存储性能。
参见图6,其示出了本申请一种数据存储装置另一个实施例的结构示意图,本实施例的装置与前面装置实施例的不同之处在于:
该缓存确定单元502,包括:
类型确定子单元5021,用于确定所述目标数据所属的数据类型,所述数据类型包括第一类型数据和第二类型数据,所述第一类型数据的预估访问频率大于所述第二类型数据的预估访问频率;
第一缓存子单元5022,用于当所述目标数据为第一类型数据时,将所述第一缓存确定为目标缓存;
第二缓存子单元5023,用于当所述目标数据为第二类型数据时,将所述第二缓存确定为目标缓存。
可选的,本实施例还可以包括:
频率统计单元,用于在所述数据写入单元将所述目标数据缓存至所述目标缓存之后,统计所述目标数据的访问频率;
类型变更单元,用于当基于所述目标数据的访问频率确定出所述目标数据所属的数据类型发生变化时,更新所述目标数据所属的数据类型。
进一步的,本实施例的装置还可以包括:
数据转移单元,用于在所述类型变更单元确定出所述目标数据所属的数据类型发生变化之后,基于所述目标数据当前所属的目标数据类型,将所述目标数据转移至与所述目标数据类型对应的缓存中。
可选的,在以上任意一个装置的实施例中,该装置还可以包括:
空间监测单元,用于分别监测所述第一缓存和第二缓存中当前剩余空间是否小于预设值;
第一迁移单元,用于如果所述第一缓存中当前剩余空间小于预设值,则从所述第一缓存区中选取至少部分数据迁移至所述第二缓存;
第二迁移单元,用于如果所述第二缓存中当前剩余空间小于预设值,则从所述第二缓存区中选取至少部分数据迁移至所述第一缓存。
可选的,在以上任意一个装置的实施例中,该装置还可以包括:
调整量确定单元,用于基于所述第一缓存和第二缓存的数据读取频率,确定所述第一缓存的第一调整量和第二缓存区的第二调整量;
第一调整单元,用于依据所述第一调整量,调整所述第一缓存的缓存空间大小;
第二调整单元,用于依据所述第二调整量,调整所述第二缓存的缓存空间大小。
另一方面,本申请还提供了一种固态硬盘。
参见图7,其示出了本申请一种固态硬盘一个实施例的结构示意图,本实施例的固态硬盘70可以包括:
控制器701和第二缓存702;
其中,所述控制器701,用于获取当前待写入的目标数据;如果确定出所述目标数据为需要缓存的数据,则从第一缓存801和所述第二缓存702中,确定用于存储所述目标数据的目标缓存;将所述目标数据缓存至所述目标缓存;其中,所述第一缓存为主机内存中预设的缓存区。
可以理解的是,该固态硬盘还可以包括存储介质,该存储介质可以为闪存。
其中,该固态硬盘的控制器与该主机内存的第一缓存可以通过主机接口模块相连、
可选的,所述控制器从第一缓存和第二缓存中,确定用于存储所述目标数据的目标缓存,具体为:
所述控制器确定所述目标数据所属的数据类型,所述数据类型包括第一类型数据和第二类型数据,所述第一类型数据的预估访问频率大于所述第二类型数据的预估访问频率;当所述目标数据为第一类型数据时,将所述第一缓存确定为目标缓存;当所述目标数据为第二类型数据时,将所述第二缓存确定为目标缓存。
可选的,所述控制器还用于:在将所述目标数据缓存至所述目标缓存之后,统计所述目标数据的访问频率;当基于所述目标数据的访问频率确定出所述目标数据所属的数据类型发生变化时,更新所述目标数据所属的数据类型。
进一步的,所述控制器还可以用于:当基于所述目标数据的访问频率确定出所述目标数据所属的数据类型发生变化之后,基于所述目标数据当前所属的目标数据类型,将所述目标数据转移至与所述目标数据类型对应的缓存中。
可选的,所述控制器还用于:分别监测所述第一缓存和第二缓存中当前剩余空间是否小于预设值;如果所述第一缓存中当前剩余空间小于预设值,则从所述第一缓存区中选取至少部分数据迁移至所述第二缓存;如果所述第二缓存中当前剩余空间小于预设值,则从所述第二缓存区中选取至少部分数据迁移至所述第一缓存。
可选的,所述控制器还用于:基于所述第一缓存和第二缓存的数据读取频率,确定所述第一缓存的第一调整量和第二缓存区的第二调整量;依据所述第一调整量,调整所述第一缓存的缓存空间大小;依据所述第二调整量,调整所述第二缓存的缓存空间大小。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (15)

1.一种数据存储方法,其特征在于,应用于固态硬盘SSD,所述方法包括:
获取当前待写入的目标数据;
如果确定出所述目标数据为需要缓存的数据,则从第一缓存和第二缓存中,确定用于存储所述目标数据的目标缓存,其中,所述第一缓存为主机内存中预设的缓存区,所述缓存区为主机内存中预留出的能够被该SSD访问的空间,所述预留出的空间不能被主机作为内存使用;所述第二缓存为所述SSD中的固有缓存;
将所述目标数据缓存至所述目标缓存;
其中,所述从第一缓存和第二缓存中,确定用于存储所述目标数据的目标缓存,包括:
确定所述目标数据所属的数据类型,所述数据类型包括第一类型数据和第二类型数据,所述第一类型数据的预估访问频率大于所述第二类型数据的预估访问频率;
当所述目标数据为第一类型数据时,将所述第一缓存确定为目标缓存;
当所述目标数据为第二类型数据时,将所述第二缓存确定为目标缓存。
2.根据权利要求1所述的方法,其特征在于,在所述将所述目标数据缓存至所述目标缓存之后,还包括:
统计所述目标数据的访问频率;
当基于所述目标数据的访问频率确定出所述目标数据所属的数据类型发生变化时,更新所述目标数据所属的数据类型。
3.根据权利要求2所述的方法,其特征在于,当基于所述目标数据的访问频率确定出所述目标数据所属的数据类型发生变化之后,还包括:
基于所述目标数据当前所属的目标数据类型,将所述目标数据转移至与所述目标数据类型对应的缓存中。
4.根据权利要求1所述的方法,其特征在于,还包括:
分别监测所述第一缓存和第二缓存中当前剩余空间是否小于预设值;
如果所述第一缓存中当前剩余空间小于预设值,则从所述第一缓存中选取至少部分数据迁移至所述第二缓存;
如果所述第二缓存中当前剩余空间小于预设值,则从所述第二缓存中选取至少部分数据迁移至所述第一缓存。
5.根据权利要求1所述的方法,其特征在于,还包括:
基于所述第一缓存和第二缓存的数据读取频率,确定所述第一缓存的第一调整量和第二缓存的第二调整量;
依据所述第一调整量,调整所述第一缓存的缓存空间大小;
依据所述第二调整量,调整所述第二缓存的缓存空间大小。
6.一种数据存储装置,其特征在于,应用于固态硬盘SSD,所述装置包括:
数据获取单元,用于获取当前待写入的目标数据;
缓存确定单元,用于如果确定出所述目标数据为需要缓存的数据,则从第一缓存和第二缓存中,确定用于存储所述目标数据的目标缓存,其中,所述第一缓存为主机内存中预设的缓存区,所述缓存区为主机内存中预留出的能够被该SSD访问的空间,所述预留出的空间不能被主机作为内存使用;所述第二缓存为所述SSD中的固有缓存;
数据写入单元,用于将所述目标数据缓存至所述目标缓存;
其中,所述缓存确定单元,包括:
类型确定子单元,用于确定所述目标数据所属的数据类型,所述数据类型包括第一类型数据和第二类型数据,所述第一类型数据的预估访问频率大于所述第二类型数据的预估访问频率;
第一缓存子单元,用于当所述目标数据为第一类型数据时,将所述第一缓存确定为目标缓存;
第二缓存子单元,用于当所述目标数据为第二类型数据时,将所述第二缓存确定为目标缓存。
7.根据权利要求6所述的装置,其特征在于,还包括:
频率统计单元,用于在所述数据写入单元将所述目标数据缓存至所述目标缓存之后,统计所述目标数据的访问频率;
类型变更单元,用于当基于所述目标数据的访问频率确定出所述目标数据所属的数据类型发生变化时,更新所述目标数据所属的数据类型。
8.根据权利要求7所述的装置,其特征在于,还包括:
数据转移单元,用于在所述类型变更单元确定出所述目标数据所属的数据类型发生变化之后,基于所述目标数据当前所属的目标数据类型,将所述目标数据转移至与所述目标数据类型对应的缓存中。
9.根据权利要求6所述的装置,其特征在于,还包括:
空间监测单元,用于分别监测所述第一缓存和第二缓存中当前剩余空间是否小于预设值;
第一迁移单元,用于如果所述第一缓存中当前剩余空间小于预设值,则从所述第一缓存中选取至少部分数据迁移至所述第二缓存;
第二迁移单元,用于如果所述第二缓存中当前剩余空间小于预设值,则从所述第二缓存中选取至少部分数据迁移至所述第一缓存。
10.根据权利要求6所述的装置,其特征在于,还包括:
调整量确定单元,用于基于所述第一缓存和第二缓存的数据读取频率,确定所述第一缓存的第一调整量和第二缓存的第二调整量;
第一调整单元,用于依据所述第一调整量,调整所述第一缓存的缓存空间大小;
第二调整单元,用于依据所述第二调整量,调整所述第二缓存的缓存空间大小。
11.一种固态硬盘,其特征在于,包括:
控制器和第二缓存;
其中,所述控制器,用于获取当前待写入的目标数据;如果确定出所述目标数据为需要缓存的数据,则从第一缓存和所述第二缓存中,确定用于存储所述目标数据的目标缓存;将所述目标数据缓存至所述目标缓存;其中,所述第一缓存为主机内存中预设的缓存区,所述缓存区为主机内存中预留出的能够被该固态硬盘访问的空间,所述预留出的空间不能被主机作为内存使用;
其中,所述控制器从第一缓存和第二缓存中,确定用于存储所述目标数据的目标缓存,具体为:
所述控制器确定所述目标数据所属的数据类型,所述数据类型包括第一类型数据和第二类型数据,所述第一类型数据的预估访问频率大于所述第二类型数据的预估访问频率;当所述目标数据为第一类型数据时,将所述第一缓存确定为目标缓存;当所述目标数据为第二类型数据时,将所述第二缓存确定为目标缓存。
12.根据权利要求11所述的固态硬盘,其特征在于,所述控制器还用于:在将所述目标数据缓存至所述目标缓存之后,统计所述目标数据的访问频率;当基于所述目标数据的访问频率确定出所述目标数据所属的数据类型发生变化时,更新所述目标数据所属的数据类型。
13.根据权利要求12所述的固态硬盘,其特征在于,所述控制器还用于:当基于所述目标数据的访问频率确定出所述目标数据所属的数据类型发生变化之后,基于所述目标数据当前所属的目标数据类型,将所述目标数据转移至与所述目标数据类型对应的缓存中。
14.根据权利要求11所述的固态硬盘,其特征在于,所述控制器还用于:分别监测所述第一缓存和第二缓存中当前剩余空间是否小于预设值;如果所述第一缓存中当前剩余空间小于预设值,则从所述第一缓存中选取至少部分数据迁移至所述第二缓存;如果所述第二缓存中当前剩余空间小于预设值,则从所述第二缓存中选取至少部分数据迁移至所述第一缓存。
15.根据权利要求11所述的固态硬盘,其特征在于,所述控制器还用于:基于所述第一缓存和第二缓存的数据读取频率,确定所述第一缓存的第一调整量和第二缓存的第二调整量;依据所述第一调整量,调整所述第一缓存的缓存空间大小;依据所述第二调整量,调整所述第二缓存的缓存空间大小。
CN201510627623.6A 2015-09-28 2015-09-28 一种数据存储方法和装置以及固态硬盘 Active CN105117180B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201510627623.6A CN105117180B (zh) 2015-09-28 2015-09-28 一种数据存储方法和装置以及固态硬盘
US14/974,885 US10514848B2 (en) 2015-09-28 2015-12-18 Data storage method for selectively storing data in a buffer preset in a memory of an electronic device or an inherent buffer in an SSD
DE102016101311.0A DE102016101311A1 (de) 2015-09-28 2016-01-26 Datenspeicherverfahren, Datenspeichervorrichtung und Solid State Disk

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510627623.6A CN105117180B (zh) 2015-09-28 2015-09-28 一种数据存储方法和装置以及固态硬盘

Publications (2)

Publication Number Publication Date
CN105117180A CN105117180A (zh) 2015-12-02
CN105117180B true CN105117180B (zh) 2018-08-17

Family

ID=54665183

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510627623.6A Active CN105117180B (zh) 2015-09-28 2015-09-28 一种数据存储方法和装置以及固态硬盘

Country Status (1)

Country Link
CN (1) CN105117180B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105760199B (zh) * 2016-02-23 2019-07-16 腾讯科技(深圳)有限公司 一种应用资源加载方法及其设备
CN106708444A (zh) * 2017-01-17 2017-05-24 北京联想核芯科技有限公司 数据存储方法和硬盘控制器
CN108319654B (zh) * 2017-12-29 2021-12-21 ***股份有限公司 计算***、冷热数据分离方法及装置、计算机可读存储介质
CN109324761A (zh) * 2018-10-09 2019-02-12 郑州云海信息技术有限公司 一种数据缓存方法、装置、设备及存储介质
CN109634875A (zh) * 2018-12-12 2019-04-16 深圳忆联信息***有限公司 命令数据缓存处理方法、装置、计算机设备和存储介质
CN109697037A (zh) * 2019-01-22 2019-04-30 深圳忆联信息***有限公司 节省本地dram的方法、装置、计算机设备及存储介质
CN110716885B (zh) * 2019-10-23 2022-02-18 北京字节跳动网络技术有限公司 数据管理方法、装置、电子设备和存储介质
CN111125583A (zh) * 2019-12-20 2020-05-08 ***通信集团江苏有限公司 一种数据访问方法、装置、设备及计算机存储介质
CN113010116B (zh) * 2021-03-23 2024-07-12 深圳市元征科技股份有限公司 一种数据处理方法、装置、终端设备及可读存储介质
CN113127515A (zh) * 2021-04-12 2021-07-16 中国电力科学研究院有限公司 面向电网的调控数据高速缓存方法、装置、计算机设备和存储介质
CN113867641B (zh) * 2021-09-29 2023-06-02 杭州海康存储科技有限公司 主机内存缓冲管理方法、装置、以及固态硬盘
CN115981548A (zh) * 2021-10-14 2023-04-18 华为技术有限公司 一种流控方法及装置
CN115686372B (zh) * 2022-11-07 2023-07-25 武汉麓谷科技有限公司 一种基于zns固态硬盘zrwa功能的数据管理的方法
CN115543221B (zh) * 2022-11-29 2023-03-14 苏州浪潮智能科技有限公司 固态硬盘的数据迁移方法、装置、电子设备及存储介质
CN116126231A (zh) * 2022-12-22 2023-05-16 深圳大普微电子科技有限公司 存储装置、存储***及存储装置的写入方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102117248A (zh) * 2011-03-09 2011-07-06 浪潮(北京)电子信息产业有限公司 一种缓存***和在缓存***中缓存数据的方法
CN103049394A (zh) * 2012-11-30 2013-04-17 记忆科技(深圳)有限公司 固态硬盘数据缓存的方法及其***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103377161A (zh) * 2012-04-24 2013-10-30 鸿富锦精密工业(深圳)有限公司 主板及应用于该主板的数据处理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102117248A (zh) * 2011-03-09 2011-07-06 浪潮(北京)电子信息产业有限公司 一种缓存***和在缓存***中缓存数据的方法
CN103049394A (zh) * 2012-11-30 2013-04-17 记忆科技(深圳)有限公司 固态硬盘数据缓存的方法及其***

Also Published As

Publication number Publication date
CN105117180A (zh) 2015-12-02

Similar Documents

Publication Publication Date Title
CN105117180B (zh) 一种数据存储方法和装置以及固态硬盘
US11698857B2 (en) Storage system for migrating data between tiers
TWI740110B (zh) 在固態儲存驅動器陣列中的工作量適應超容量快取
US9940024B1 (en) Techniques for determining workload skew
EP3210121B1 (en) Cache optimization technique for large working data sets
US9052830B1 (en) Techniques for automated evaluation and movement of data between storage tiers for thin devices
US10339455B1 (en) Techniques for determining workload skew
US10282107B1 (en) Controlling I/O response time to meet service levels
KR101726824B1 (ko) 캐시 아키텍처에서 하이브리드 미디어의 효율적인 사용
US8972694B1 (en) Dynamic storage allocation with virtually provisioned devices
US20180011799A1 (en) Adjusting active cache size based on cache usage
US20160217071A1 (en) Cache Allocation in a Computerized System
US9971698B2 (en) Using access-frequency hierarchy for selection of eviction destination
TW201432451A (zh) 用於改善輸入輸出效能之調節資料快取速率之方法
CN104794064A (zh) 一种基于区域热度的缓存管理方法
JP2013511081A (ja) デバイス・アダプタを介して、データをキャッシュから複数のストレージ・デバイスの各々にデステージするための方法、システム及びコンピュータ・プログラム
US9372810B2 (en) Collaborative caching
US10997080B1 (en) Method and system for address table cache management based on correlation metric of first logical address and second logical address, wherein the correlation metric is incremented and decremented based on receive order of the first logical address and the second logical address
JP6711121B2 (ja) 情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム
CN108710583A (zh) Ssd写缓存区的管理方法、装置、计算机设备及介质
JP2014164769A (ja) ホストのサービス品質インジケータに重みを割り当てるための装置および方法ならびに記憶媒体
KR20180086120A (ko) 테일 레이턴시를 인식하는 포어그라운드 가비지 컬렉션 알고리즘
US11144224B2 (en) Locality-aware, memory-efficient, time-efficient hot data identification using count-min-sketch for flash or streaming applications
CN102063386B (zh) 一种单载体多目标的缓存***的缓存管理方法
Sun et al. Co-active: A workload-aware collaborative cache management scheme for NVMe SSDs

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20170204

Address after: Section fourteen economic and Technological Development Zone of Beijing city 100176 Street No. 99 building 33 building D No. 2226

Applicant after: Beijing legend core technology Co., Ltd.

Address before: 100085 Beijing, Haidian District information industry base on the road No. 6

Applicant before: Lenovo (Beijing) Co., Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190808

Address after: 518067 Dongjiaotou Workshop D24/F-02, Houhai Avenue, Shekou Street, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: Shenzhen Yi Lian Information System Co., Ltd.

Address before: Section fourteen economic and Technological Development Zone of Beijing city 100176 Street No. 99 building 33 building D No. 2226

Patentee before: Beijing legend core technology Co., Ltd.