一种数据处理方法、存储设备及电子设备
技术领域
本发明涉及数据处理技术领域,更具体的说是涉及一种数据处理方法、存储设备及电子设备。
背景技术
现有的硬盘一般分为机械硬盘(Hard Disk Drive,HDD)和固态硬盘(Solid StateDrive,SSD),随着趋势的发展,越来越多的电子设备采用SSD。其中,SSD一般使用Flash来存储数据,在具体的存储过程中,由于Flash本身的特性,如Nand Flash,其写入通路需要经由第一存储器进行数据的缓存,即由第一存储器提供数据的缓存空间。
在具体实现过程中,当硬盘控制器的接口模块将主机内存中的数据写入到存储器后,硬盘控制器中的Flash控制器并不能保证及时读取第一存储器中的数据,这是由于Flash控制器其本身的局限性,如写操作的乱序执行、执行时间长度不定等原因导致的。因此,这会导致第一存储器中所存储的数据逐渐增多,从而使得第一存储器的缓存空间逐渐减小。
而当第一存储器的缓存空间减小时,相应的,其访问性能也会明显下降,因此,如何节约第一存储器的缓存空间以保证其访问性能成为本领域技术人员亟待解决的技术问题。
发明内容
有鉴于此,本发明提供一种数据处理方法、硬盘控制器及电子设备,用以解决现有技术中在进行数据写入时第一存储器的访问性能下降的问题,其技术方案如下:
一种数据处理方法,应用于一存储设备,所述数据处理方法包括:
通信接口在检测到主机发送的写入命令时,将所述写入命令发送给处理器;
所述处理器基于所述写入命令向存储控制器发送写入指令,以使所述存储控制器利用第一类存储介质将存储内容写入第二类存储介质,其中,所述第一类存储介质和第二类存储介质为不同类别的存储介质。
其中,所述处理器基于所述写入命令向存储控制器发送写入指令,包括:
所述处理器基于所述写入命令生成与所述存储控制器匹配的写入指令;
所述处理器向所述存储控制器发送所述写入指令。
在所述处理器基于所述写入命令向存储控制器发送写入指令之后,所述方法还包括:
所述存储控制器向读取组件发送读取指令;
所述读取组件基于所述读取指令利用所述通信接口从所述主机的存储器中读取所述存储内容,并将所述存储内容存储至所述第一类存储介质,以便于所述存储控制器利用所述第一类存储介质将所述存储内容写入所述第二类存储介质。
所述方法还包括:
所述存储控制器从所述第一类存储介质中读取所述存储内容,并将所述存储内容写入所述第二类存储介质。
在将所述存储内容写入所述第二类存储介质之后,所述方法还包括:
所述存储控制器向所述处理器发送反馈信息;
所述处理器基于所述反馈信息控制所述第一类存储介质释放存储所述存储内容的存储空间。
一种存储设备,所述存储设备至少包括:通信接口和处理器;
所述通信接口,用于在检测到主机发送的写入命令时,将所述写入命令发送给所述处理器;
所述处理器,用于基于所述写入命令向存储控制器发送写入指令,以使所述存储控制器利用第一类存储介质将存储内容写入第二类存储介质,其中,所述第一类存储介质和第二类存储介质为不同类别的存储介质。
其中,所述处理器,具体用于基于所述写入命令生成与所述存储控制器匹配的写入指令,并将向所述存储控制器发送所述写入指令。
所述存储设备还包括:存储控制器和读取部件;
所述存储控制器,用于在接收到来自所述处理器的所述写入指令之后,向所述读取组件发送读取指令;
所述读取组件,用于基于所述读取指令利用所述通信接口从所述主机的存储器中读取所述存储内容,并将所述存储内容存储至所述第一类存储介质,以便于所述存储控制器利用第一类存储介质将存储内容写入第二类存储介质。
所述存储控制器,还用于从所述第一类存储介质中读取所述存储内容,并将所述存储内容写入所述第二类存储介质。
所述存储控制器,还用于在将所述存储内容写入所述第二类存储介质之后,向所述处理器发送反馈信息;
所述处理器,还用于基于所述反馈信息控制所述第一类存储介质释放存储所述存储内容的存储空间。
一种电子设备,所述的存储设备。
上述技术方案具有如下有益效果:
现有技术中,当接收到主机发送的到写入指令时,先将存储内容数据存储到第一类存储介质,然后处理器才会通知存储控制器从第一类存储介质中读取数据写入第二类存储介质,而本发明提供的数据处理方法,在通信接口检测到主机发送的写入命令时,并不从主机读取存储内容,而是先将写入命令发送给处理器,接着处理器基于写入命令向存储控制器发送写入指令,存储控制器在接收到写指令之后才会利用第一类存储介质将存储内容写入第二类存储介质,即存储控制器在写入指令可以执行时,才会控制将主机中的存储内容存储至第一类存储介质,进而将第一类存储介质中的存储内容写入到第二类存储介质。由此可见,本发明提供的数据处理方法使得存储控制器能够及时从第一存储器读取存储内容,进而使第一存储器的存储空间得以及时释放,从而保证了第一类存储介质的访问性能不会下降,用户体验较好。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的数据处理方法的一流程示意图;
图2为本发明实施例提供的数据处理方法的另一流程示意图;
图3为本发明实施例提供的数据处理方法的一具体实例的示意图;
图4为本发明实施例提供的存储设备的一结构示意图;
图5为本发明实施例提供的存储设备的另一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种数据处理方法,应用于一存储设备,该存储设备可以为固态硬盘SSD,请参阅图1,示出了该数据处理方法的流程示意图,该方法可以包括:
步骤S101:通信接口在检测到主机发送的写入命令时,将写入命令发送给处理器。
步骤S102:处理器基于写入命令向存储控制器发送写入指令,以使存储控制器利用第一类存储介质将存储内容写入第二类存储介质。
在一种可能的实现方式中,处理器基于写入命令向存储控制器发送写入指令具体为:处理器首先基于写入命令生成与存储控制器匹配的写入指令,然后将生成的写入指令发送往存储控制器,以使存储控制器利用第一类存储介质将存储内容写入第二类存储介质。
本实施例在将存储内容写入第二类存储介质的过程中,将第一类存储介质作为缓存。
在本实施例中,第一类存储介质和第二类存储介质为不同类别的存储介质。示例性的,第一类存储介质可以为DDR或SDRAM,第二类存储介质可以为Nand Flash,即存储控制器利用DDR或SDRAM作为缓存将存储内容写入Nand Flash。
现有技术中,当接收到主机发送的到写入指令时,先将存储内容数据存储到第一类存储介质,然后处理器才会通知存储控制器从第一类存储介质中读取数据写入第二类存储介质,而本发明实施例提供的数据处理方法,在通信接口检测到主机发送的写入命令时,并不从主机读取存储内容,而是先将写入命令发送给处理器,接着处理器基于写入命令向存储控制器发送写入指令,存储控制器在接收到写入指令之后才会利用第一类存储介质将存储内容写入第二类存储介质,即存储控制器在写入指令可以执行时,才会控制将主机中的存储内容存储至第一类存储介质,进而将第一类存储介质中的存储内容写入到第二类存储介质。由此可见,本发明实施例提供的数据处理方法使得存储控制器能够及时从第一存储器读取存储内容,进而使第一存储器的存储空间得以及时释放,从而保证了第一类存储介质的访问性能不会下降,用户体验较好。
请参阅图2,示出了本发明实施例提供的数据处理方法的另一流程示意图,可以包括:
步骤S201:通信接口在检测到主机发送的写入命令时,将写入命令发送给处理器。
步骤S202:处理器基于写入命令向存储控制器发送写入指令。
处理器基于写入命令向存储控制器发送写入指令的过程可以包括:处理器首先基于写入命令生成与存储控制器匹配的写入指令,然后将生成的写入指令发送往存储控制器,以使存储控制器利用第一类存储介质将存储内容写入第二类存储介质。
步骤S203:存储控制器向读取组件发送读取指令。
其中,读取指令用于控制读取组件从主机的存储器中读取存储内容。
步骤S204:读取组件基于读取指令利用通信接口从主机的存储器中读取存储内容,并将存储内容存储至第一类存储介质。
在本实施例中,存储控制器向读取组件发送的读取指令中包括存储内容在主机的存储器中的存储地址,当读取组件接收到读取指令时,从读取指令中获得存储内容的存储地址,然后基于该存储地址利用通信接口从主机的存储器中读取存储内容,并将存储内容存储至第一类存储介质。
步骤S205:存储控制器从第一类存储介质中读取存储内容,并将存储内容写入第二类存储介质。
在一种优选的实现方式中,读取组件将从主机的存储器中读取的存储内容存储至第一类存储介质之后,向存储控制器发送读取完成的指示信息,当存储控制器接收到读取完成的指示信息时,从第一类存储介质中读取存储内容,并将存储内容写入第二类存储介质。
步骤S206:存储控制器向处理器发送反馈信息。
其中,反馈信息用于向处理器指示第一类存储介质中的存储内容已完全写入第二类存储介质中。
步骤S207:处理器基于反馈信息控制第一类存储介质释放存储所述存储内容的存储空间。
本发明实施例提供的数据处理方法,在通信接口检测到主机发送的写入命令时,并不从主机读取存储内容,而是先将写入命令发送给处理器,接着处理器基于写入命令向存储控制器发送写入指令,存储控制器在接收到写如指令之后,向读取组件发送读取指令,使读取组件从主机读取存储内容并将存储内容存储至第一类存储介质,读取组件将存储内容存储至第一类存储介质之后,存储控制器从第一类存储介质中读取存储内容,并将存储内容写入第二类存储介质,考虑到第一类存储介质的存储空间有限,为了保证第一类存储介质的访问性能,在数据写入完成后,存储控制器向处理器发送反馈信息,以使处理器控制第一类存储介质释放存储该存储内容的存储空间。由此可见,本发明实施例提供的数据处理方法使得存储控制器能够及时从第一类存储介质读取存储内容,进而使第一类存储介质的存储空间得以及时释放,从而保证了第一存储器的访问性能不会下降,用户体验较好。
在上述本发明实施例的基础上,现结合附图3通过一具体实例对本发明实施例提供的方法进行说明:
从图3示出的实例可以看出,存储设备为SSD,SSD中包括两个存储介质,分别为SRAM和Nand Flash,SSD还包括CPU、Nand Flash、通信接口和读取组件,将主机内存中的存储内容写入SSD的Nand Flash的具体流程为:
(1)主机向SSD发送写入命令,SSD的通信接口接收写入命令;
(2)SSD的通信接口在接收到写入指令之后,将写入命令发送往CPU;
(3)CPU在接收到写入命令后,基于写入命令生成与Flash控制器匹配的写入指令,然后将写入指令发送往Flash控制器;
(4)当Flash控制器执行到写入指令时,向读取组件发送读取指令;
(5)读取组件接收到读取指令之后,从主机内存中读取存储内容;
(6)读取组件将读取的存储内容写入SRAM;
(7)读取组件在将存储内容完全写入SRAM之后,向Flash控制器发送通知消息;
(8)Flash控制器在接收到通信消息之后,从SRAM中读取存储内容;
(9)Flash控制器将从SRAM中读取的存储内容写入Nand Flash中;
(10)Flash控制器将存储内容完全写入NandFlash之后,向CPU发送反馈消息;
(11)CPU在接收到Flash控制器的反馈消息之后,释放SRAM中存储该存储内容的存储空间。
由上述过程可以看出,在数据写入的过程中,当主机的写入命令到来时,读取组件并不读取存储内容,而是在Nand Flash的写入指令可以执行时,再由Flash控制器向读取组件发出读取指令,此时,读取组件从主机读取存储内容并将存储内容存到SRAM中,在Flash控制器得知存储内容已存储至SRAM中时,立即执行对存储内容的写入,并在写操作执行完后,释放SRAM中的对应存储空间。该实例使用SRAM作为NandFlash写入数据的缓存,并且使SRAM具有较高的利用率,很难出现缓存被占满的情况,从而保证了SRAM的访问性能不会下降。
与上述方法相对应,本发明实施例还提供了一种存储设备,请参阅图4,示出了该存储设备的结构示意图,该存储设备至少包括:通信接口401和处理器402。其中:
通信接口401,用于在检测到主机发送的写入命令时,将写入命令发送给处理器402。
处理器402,用于基于通信接口401接收的写入命令向存储控制器发送写入指令,以使存储控制器利用第一类存储介质将存储内容写入第二类存储介质。其中,第一类存储介质和第二类存储介质为不同类别的存储介质。
在一种可能的实现方式中,处理器402,具体用于基于通信接口401接收的写入命令生成与存储控制器匹配的写入指令,并向存储控制器发送生成的写入指令。
本发明实施例提供的存储设备,在通信接口检测到主机发送的写入命令时,并不从主机读取存储内容,而是先将写入命令发送给处理器,接着处理器基于写入命令向存储控制器发送写入指令,存储控制器在接收到写入指令之后才会利用第一类存储介质将存储内容写入第二类存储介质,即存储控制器在写入指令可以执行时,才会控制将主机中的存储内容存储至第一类存储介质,进而将第一类存储介质中的存储内容写入到第二类存储介质。由此可见,本发明实施例提供的存储设备使得存储控制器能够及时从第一存储器读取存储内容,进而使第一存储器的存储空间得以及时释放,第一存储器的访问性能提高,用户体验较好。
请参阅图5,示出了本发明实施例提供的存储设备的另一结构示意图,该存储设备可以包括:通信接口501、处理器502、存储控制器503、读取组件504、第一类存储介质505和第二类存储介质506。其中:
通信接口501,用于在检测到主机发送的写入命令时,将写入命令发送给处理器502。
处理器502,用于基于通信接口501接收的写入命令向存储控制器503发送写入指令,以使存储控制器503利用第一类存储介质505将存储内容写入第二类存储介质506。其中,第一类存储介质505和第二类存储介质506为不同类别的存储介质。
在一种可能的实现方式中,处理器502,具体用于基于通信接口501接收的写入命令生成与存储控制器匹配的写入指令,并向存储控制器发送生成的写入指令。
存储控制器503,用于在接收到处理器502发送的写入指令之后,向读取组件504发送读取指令。
读取组件504,用于基于读取指令利用通信接口501从主机的存储器中读取存储内容,并将存储内容存储至第一类存储介质505,以便于存储控制器503利用第一类存储介质505将存储内容写入第二类存储介质506。
存储控制器503,还用于从第一类存储介质505中读取存储内容,并将存储内容写入第二类存储介质506。
存储控制器503,还用于在将存储内容写入第二类存储介质506之后,向处理器502发送反馈信息。
处理器502,还用于基于存储控制器503发送的反馈信息控制第一类存储介质505释放存储内容的存储空间。
本发明实施例提供的存储设备,在通信接口检测到主机发送的写入命令时,并不从主机读取存储内容,而是先将写入命令发送给处理器,接着处理器基于写入命令向存储控制器发送写入指令,存储控制器在接收到写入指令之后,向读取组件发送读取指令,使读取组件从主机读取存储内容并将存储内容存储至第一类存储介质,读取组件将存储内容存储至第一类存储介质之后,存储控制器从第一类存储介质中读取存储内容,并将存储内容写入第二类存储介质,考虑到第一类存储介质的存储空间有限,为了保证第一类存储介质的访问性能,在数据写入完成后,存储控制器向处理器发送反馈信息,以使处理器控制第一类存储介质释放存储该存储内容的存储空间。由此可见,本发明实施例提供的存储设备使得存储控制器能够及时从第一类存储介质读取存储内容,进而使第一类存储介质的存储空间得以及时释放,第一存储器的访问性能提高,用户体验较好。
本发明实施例还提供了一种电子设备,该电子设备可以包括上述任一实施例提供的存储设备,存储设备的结构可参见上述实施例,在此不作赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。