发明内容
本发明实施例提供一种硬盘设备及信息处理方法,用于解决现有技术中的硬盘设备存在使用寿命低的技术问题,以实现提高硬盘设备的使用寿命的技术效果。
一种硬盘设备,包括:
控制器;
非易失存储器,与所述控制器连接;
硬盘主体,与所述控制器连接;
及内存,与所述控制器连接。
可选的,在所述硬盘设备处于通电状态且接收到由主机发送的写指令时,所述控制器具体用于:
将第一数据存储至所述硬盘主体的第一存储单元中;
在所述非易失存储器中的第一映射表中标记与所述第一存储单元对应的第一逻辑地址及用于表征所述第一数据是否为有效可读写数据的有效位信息,获得第二映射表;
标记所述第二映射表的数据信息与所述内存中第三映射表的数据信息不同,其中,所述第二映射表用于表征所述主机发送的逻辑地址与所述硬盘主体的物理地址之间的映射关系,所述主机为与所述硬盘设备相连接的电子设备。
可选的,在所述在非易失存储器中的第一映射表中标记与所述第一存储单元对应的第一逻辑地址及用于表征所述第一数据是否为有效可读写数据的有效位信息,获得第二映射表之后且在所述主机未检测到输入操作时,所述控制器还用于:
从所述非易失存储器中获取所述第二映射表;
将所述第二映射表写入到所述内存中,并标记所述第三映射表的数据信息与所述第二映射表的数据信息相同。
可选的,在所述在非易失存储器中的第一映射表中标记与所述第一存储单元对应的第一逻辑地址及用于表征所述第一数据是否为有效可读写数据的有效位信息,获得第二映射表之后,所述控制器还用于:
获取在一时间段内所述第二映射表中每个逻辑地址被访问的次数;
基于所述次数,确定所述次数大于第一预设值的逻辑地址为第一类逻辑地址;所述次数小于第二预设值的逻辑地址为第二类逻辑地址;所述次数大于所述第二预设值且小于所述第一预设值的逻辑地址为第三类逻辑地址;
将与所述第一类逻辑地址对应的映射表数据信息存储至所述非易失存储器中;将与所述第二类逻辑地址对应的映射表数据信息及与所述第三类逻辑地址对应的映射表数据信息存储至所述内存中。
可选的,在所述将与所述第三类逻辑地址对应的映射表数据信息存储至所述内存中之后且在所述主机未检测到输入操作时,所述控制器还用于:
从所述内存中获取所述与所述第三类逻辑地址对应的映射表数据信息;
将所述与所述第三类逻辑地址对应的映射表数据信息存储至所述硬盘主体中。
可选的,在所述硬盘设备处于通电状态且接收由所述主机发送的读指令时,所述控制器具体用于:
判断所述非易失存储器中存储的第四映射表是否与所述内存中存储的第五映射表相同,获得第一判断结果;
若所述第一判断结果为否,从所述非易失存储器中读取所述第四映射表;
基于所述第四映射表,确定与所述读指令和将读取第二数据的逻辑地址对应的物理地址;
基于所述物理地址,从所述硬盘主体中与所述物理地址对应的第二存储单元中读取所述第二数据。
另一方面,本申请实施例还提供一种信息处理方法,包括:
硬盘设备的控制器接收由与所述硬盘设备连接的主机发送的读或写指令;
基于所述读或写指令、所述硬盘设备的非易失存储器中的第一映射表及所述硬盘设备的内存中的第二映射表,向所述所述硬盘设备的硬盘主体的第一存储单元写入第一数据或从所述硬盘主体的第二存储单元中读取第二数据,其中,所述第一映射表和所述第二映射表用于表征所述主机发送的逻辑地址与所述硬盘主体的物理地址之间的映射关系。
可选的,在向所述硬盘设备的硬盘主体的第一存储单元写入第一数据之后,所述方法还包括:
在所述第一映射表中标记与所述第一存储单元对应的第一逻辑地址及用于表征所述第一数据是否为有效可读写数据的有效位信息,获得第三映射表;
标记所述第三映射表的数据信息与所述第二映射表的数据信息不同。
可选的,在所述主机未检测到输入操作时,在所述第一映射表中标记与所述第一存储单元对应的第一逻辑地址及用于表征所述第一数据是否为有效可读写数据的有效位信息,获得第三映射表之后,所述方法还包括:
从所述非易失存储器中获取所述第三映射表;
将所述第三映射表写入到所述内存中,并标记所述第二映射表的数据信息与所述第三映射表的数据信息相同。
可选的,在所述第一映射表中标记与所述第一存储单元对应的第一逻辑地址及用于表征所述第一数据是否为有效可读写数据的有效位信息,获得第三映射表之后,所述方法还包括:
获取在一时间段内所述第三映射表中每个逻辑地址被访问的次数;
基于所述次数,确定所述次数大于第一预设值的逻辑地址为第一类逻辑地址;所述次数小于第二预设值的逻辑地址为第二类逻辑地址;所述次数大于所述第二预设值且小于所述第一预设值的逻辑地址为第三类逻辑地址;
将与所述第一类逻辑地址对应的映射表数据信息存储至所述非易失存储器中;将与所述第二类逻辑地址对应的映射表数据信息及与所述第三类逻辑地址对应的映射表数据信息存储至所述内存中。
可选的,在所述主机未检测到输入操作时,在所述将与所述第三类逻辑地址对应的映射表数据信息存储至所述内存中之后,所述方法还包括:
从所述内存中获取所述与所述第三类逻辑地址对应的映射表数据信息;
将所述与所述第三类逻辑地址对应的映射表数据信息存储至所述硬盘主体中。
可选的所述从所述硬盘主体中读取第二数据,具体包括:
判断所述第一映射表是否与所述第二映射表相同,获得第一判断结果;
若所述第一判断结果为否,从所述非易失存储器中读取所述第一映射表;
基于所述第一映射表,确定与所述第二数据的第二逻辑地址对应的物理地址;
基于所述物理地址,从所述硬盘主体中与所述物理地址对应的第二存储单元中读取所述第二数据。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
一、由于本申请实施例中的技术方案是硬盘设备的控制器接收由与所述硬盘设备连接的主机发送的读或写指令;基于所述读或写指令、所述硬盘设备的非易失存储器中的第一映射表及所述硬盘设备的内存中的第二映射表,向所述所述硬盘设备的硬盘主体的第一存储单元写入第一数据或从所述硬盘主体的第二存储单元中读取第二数据,其中,所述第一映射表和所述第二映射表用于表征所述主机发送的逻辑地址与所述硬盘主体的物理地址之间的映射关系。即不会像现有中,将映射表存储在硬盘主体中,而由于映射表的频繁更新和硬盘主体无法就地更新的特性,因此,映射表所在的硬盘主体存储单元会频繁地更新到其它的存储单元,造成不必要的擦写,降低硬盘设备的使用寿命,而采用本方案,将映射表存储在非易失存储器中,可以避免对硬盘主体存储单元的擦写,所以,有效解决了现有技术中的硬盘设备存在使用寿命低的技术问题,达到了提高硬盘设备的使用寿命的技术效果。
二、由于本申请实施例中的技术方案是获取在一时间段内所述第三映射表中每个逻辑地址被访问的次数;基于所述次数,确定所述次数大于第一预设值的逻辑地址为第一类逻辑地址;所述次数小于第二预设值的逻辑地址为第二类逻辑地址;所述次数大于所述第二预设值且小于所述第一预设值的逻辑地址为第三类逻辑地址;将与所述第一类逻辑地址对应的映射表数据信息存储至所述非易失存储器中;将与所述第二类逻辑地址对应的映射表数据信息及与所述第三类逻辑地址对应的映射表数据信息存储至所述内存中,即对第三映射表中的数据进行分类,将偶尔发生变化或变化频率较低的映射表数据存储到内存中,则大大降低了把映射表数据写入到硬盘主体的频率,达到了降低功耗及进一步达到了提高硬盘设备的使用寿命的技术效果。
三、由于本申请实施例中的技术方案是从所述内存中获取所述与所述第三类逻辑地址对应的映射表数据信息;将所述与所述第三类逻辑地址对应的映射表数据信息存储至所述硬盘主体中。即不会像现有技术中,在有写操作发生时,就需要频繁往硬盘主体中写入映射表信息,而在在向硬盘主体中写入映射表时,往往会遇到读写操作,又由于将映射表从内存写入到硬盘主体中的速度比较慢,这时,需要在写映射表操作完成之后,才能响应读写操作,从而影响读写性能,而在本申请实施例中,是在主机***空闲时,才将映射表写入到硬盘主体中,进而达到了提高读写性能的技术效果。
实施例一
请参考图1,本申请实施例提供一种硬盘设备,包括:
控制器10;
非易失存储器11,与所述控制器10连接;
硬盘主体12,与所述控制器10连接;
及内存13,与所述控制器10连接。
在具体实现过程,非易失存储器可以是相变存储器、磁阻存储器、可变电阻式存储器、铁电随机存储器等,或是其它的非易失存储器等,在本申请实施例中不作具体限定。
非易失存储器的随机读写速度较快,相较于硬盘主体的读写速度要快一个数量级以上,具体的为硬盘主体读写速度的30-50倍,已经接近内存的读写速度,因此,这在一定程度上可以提高硬盘设备的随机读写速度,从而减小硬盘设备和内存间随机读写数据速度之间的差距。
另外,在相同工艺下嵌入式NOR存储器的单元面积为0.05μm2,而非易失相变存储器的单元面积为0.017μm2,那么在相同面积的芯片的条件下,非易失相变存储器的容量约为嵌入式NOR存储容量的3倍。
对于嵌入式NOR存储器来说,在写数据之前都需要进行擦除操作,而非易失存储器在写数据时可以直接而不用进行擦除操作。
在本申请实施例中硬盘主体具体可以是NAND型闪存芯片或是NOR型闪存芯片等;内存具体为动态随机存储器、同步动态随机存储器或是双倍率动态随机存储器等,或是其它的动态随机存储器,在本申请实施例中不作具体限定。
在具体实现过程中,硬盘设备通过主机接口与主机之间相连,在本申请实施例中,主机接口可以为PCI(Peripheral Component Interconnect,外设部件互联标准)、IDE(Integrated Drive Electronics)或SATA(Serial ATA,串行ATA)接口,或是其它的接口,在本申请实施例中不作具体限定。控制器与硬盘主体之间的接口可以为Toggle DDR或ONF接口等,且控制器用来执行硬盘设备上的操作程序、算法、固件等数据。
在本申请实施例中,在所述硬盘设备处于通电状态且接收到由主机发送的写指令时,所述控制器10具体用于:
将第一数据存储至所述硬盘主体的第一存储单元中;
在所述非易失存储器中的第一映射表中标记与所述第一存储单元对应的第一逻辑地址及用于表征所述第一数据是否为有效可读写数据的有效位信息,获得第二映射表;
标记所述第二映射表的数据信息与所述内存中第三映射表的数据信息不同,其中,所述第二映射表用于表征所述主机发送的逻辑地址与所述硬盘主体的物理地址之间的映射关系,所述主机为与所述硬盘设备相连接的电子设备。
在本申请实施例中,在所述在非易失存储器中的第一映射表中标记与所述第一存储单元对应的第一逻辑地址及用于表征所述第一数据是否为有效可读写数据的有效位信息,获得第二映射表之后且在所述主机未检测到输入操作时,所述控制器10还用于:
从所述非易失存储器中获取所述第二映射表;
将所述第二映射表写入到所述内存中,并标记所述第三映射表的数据信息与所述第二映射表的数据信息相同。
在本申请实施例中,在所述在非易失存储器中的第一映射表中标记与所述第一存储单元对应的第一逻辑地址及用于表征所述第一数据是否为有效可读写数据的有效位信息,获得第二映射表之后,所述控制器10还用于:
获取在一时间段内所述第二映射表中每个逻辑地址被访问的次数;
基于所述次数,确定所述次数大于第一预设值的逻辑地址为第一类逻辑地址;所述次数小于第二预设值的逻辑地址为第二类逻辑地址;所述次数大于所述第二预设值且小于所述第一预设值的逻辑地址为第三类逻辑地址;
将与所述第一类逻辑地址对应的映射表数据信息存储至所述非易失存储器中;将与所述第二类逻辑地址对应的映射表数据信息及与所述第三类逻辑地址对应的映射表数据信息存储至所述内存中。
在本申请实施例中,在所述将与所述第三类逻辑地址对应的映射表数据信息存储至所述内存中之后且在所述主机未检测到输入操作时,所述控制器10还用于:
从所述内存中获取所述与所述第三类逻辑地址对应的映射表数据信息;
将所述与所述第三类逻辑地址对应的映射表数据信息存储至所述硬盘主体中。
在本申请实施例中,在所述硬盘设备处于通电状态且接收由所述主机发送的读指令时,所述控制器10具体用于:
判断所述非易失存储器中存储的第四映射表是否与所述内存中存储的第五映射表相同,获得第一判断结果;
若所述第一判断结果为否,从所述非易失存储器中读取所述第四映射表;
基于所述第四映射表,确定与所述读指令和将读取第二数据的逻辑地址对应的物理地址;
基于所述物理地址,从所述硬盘主体中与所述物理地址对应的第二存储单元中读取所述第二数据。
实施例二
本申请实施例还提供一种信息处理方法,请参考图2,包括:
S101:硬盘设备的控制器接收由与所述硬盘设备连接的主机发送的读或写指令;
S102:基于所述读或写指令、所述硬盘设备的非易失存储器中的第一映射表及所述硬盘设备的内存中的第二映射表,向所述所述硬盘设备的硬盘主体的第一存储单元写入第一数据或从所述硬盘主体的第二存储单元中读取第二数据,其中,所述第一映射表和所述第二映射表用于表征所述主机发送的逻辑地址与所述硬盘主体的物理地址之间的映射关系。
在本申请实施例中,一种信息处理方法可以应用于一硬盘设备,其中,硬盘设备包括:控制器;非易失存储器,与所述控制器连接;硬盘主体,与所述控制器连接;及内存,与所述控制器连接。
在具体实现过程,非易失存储器可以是相变存储器、磁阻存储器、可变电阻式存储器、铁电随机存储器等,或是其它的非易失存储器等,在本申请实施例中不作具体限定。
非易失存储器的随机读写速度较快,相较于硬盘主体的读写速度要快一个数量级以上,具体的为硬盘主体读写速度的30-50倍,已经接近内存的读写速递,因此,这在一定程度上可以提高硬盘设备的随机读写速度,从而减小硬盘设备和内存间随机读写数据速度之间的差距。
另外,在相同工艺下嵌入式NOR存储器的单元面积为0.05μm2,而非易失相变存储器的单元面积为0.017μm2,在相同面积的芯片,非易失相变存储器的容量约为嵌入式NOR存储容量的3倍。
对于嵌入式NOR存储器来说,在写数据之前都需要进行擦除操作,而非易失存储器在写数据时可以直接而不用进行擦除操作。
在本申请实施例中硬盘主体具体可以是NAND型闪存芯片或是NOR型闪存芯片等;内存具体为动态随机存储器、同步动态随机存储器或是双倍率动态随机存储器等,或是其它的动态随机存储器,在本申请实施例中不作具体限定。
在具体实现过程中,硬盘设备通过主机接口与主机之间相连,在本申请实施例中,主机接口可以为PCI、IDE或SATA接口,或是其它的接口,在本申请实施例中不作具体限定。控制器与硬盘主体之间的接口可以为Toggle DDR或ONF接口等,且控制器用来执行硬盘设备上的操作程序、算法、固件等数据。
在本申请实施例中,首先执行步骤S101:硬盘设备的控制器接收由与所述硬盘设备连接的主机发送的读或写指令。
在具体实现过程中,在用户需要对硬盘设备的硬盘主体中的数据进行读写操作时,硬盘设备的控制器则会接收到由与硬盘设备相连的主机发送的读指令或是写指令。
在接收到由主机发送的读写指令后,则执行步骤S102:基于所述读或写指令、所述硬盘设备的非易失存储器中的第一映射表及所述硬盘设备的内存中的第二映射表,向所述所述硬盘设备的硬盘主体的第一存储单元写入第一数据或从所述硬盘主体的第二存储单元中读取第二数据,其中,所述第一映射表和所述第二映射表用于表征所述主机发送的逻辑地址与所述硬盘主体的物理地址之间的映射关系。
在具体实现过程中,在接收到由主机发送的读写指令和读写数据的逻辑地址之后,控制器根据读写指令和数据的逻辑地址及非易失存储器中存储的第一映射表和内存中存储的第二映射表将逻辑地址转化为物理地址,然后根据物理地址,直接从硬盘主体中读写数据。
在本申请实施例中,在执行完步骤:向所述所述硬盘设备的硬盘主体的第一存储单元之后,请参考图3,所述方法还包括:
S201:在所述第一映射表中标记与所述第一存储单元对应的第一逻辑地址及用于表征所述第一数据是否为有效可读写数据的有效位信息,获得第三映射表;
S202:标记所述第三映射表的数据信息与所述第二映射表的数据信息不同。
在具体实现过程中,在接收到由主机发送的写指令及写数据的逻辑地址之后,控制器根据写指令及写数据的逻辑地址,如1、2或3等,根据非易失存储器中存储的第一映射表,在第一映射表中寻找一新的物理地址,如1000,然后根据物理地址1000,将第一数据A写入到第一存储单元1000中。
在将第一数据写入到第一存储单元中后,需要及时更新第一映射表,即在第一映射表中添加与逻辑地址1对应的物理地址1000以及第一数据是否可以有效读写,比如有效位可取“0”或“1”,当有效位为“1”时表示数据可以读写,当有效位为“0”时,表示数据不可以读写,具体在,在将数据A存储到硬盘主体的第一存储单元中后,硬盘主体中这些数据的读写有效位为“1”,所以,更新第一映射表后,则获得新的映射表即第二映射表。
由于更新的映射表是存储在非易失存储器中的第一映射表,对于内存中的第三映射表并没有被更新,因此要在非易失存储器中标识第二映射表的数据信息与第三映射表的数据信息并不相同。
在本申请实施例中,将映射表存储在非易失存储器中,可以避免由于映射表频繁更新而造成硬盘主体中的存储单元被过度擦写,从而提高闪存芯片的寿命。同时还可以加快映射表的重建速度,这是由于传统的硬盘设备上电启动或掉电后重启时,需要从硬盘主体的各个存储单元中提取映射表数据信息至内存中以重建映射表,而本申请实施例中映射表存储在非易失存储器中,相比从硬盘主体中读取映射表数据信息要快的多,节约耗能。
在本申请实施例中,主机在执行操作***或者应用程序的时候,一般的步骤是将操作***或者应用程序从硬盘主体加载到内存中,再由控制器执行。而从硬盘主体中加载到内容中的速度比较慢,操作***或者应用程序的某些部分可能经常被执行,而每次执行操作***或者应用程序都要把这些部分加载到内存中,因此造成操作***或应用程序的启动速度不快,给用户带来不好的体验,因此为了提高用户体验,在本申请实施例中将经常被执行的操作***或应用程序的部分或全部存储到非易失存储其中。
另外,在具体实现过程中,为了向上层屏蔽硬盘主体的物理特性,将硬盘主体抽象成类似磁盘的块设备,需要特定的硬盘主体存储管理块。一种重要且应用广泛的方法就是闪存转换层来存储管理闪存设备。闪存转换层的主要功能是逻辑块映射,垃圾回收和损耗均衡等。闪存转换层在硬件上是由控制器实现的,逻辑块映射是将主机给出的逻辑地址转换为硬盘主体空间的物理地址,即由主机中的文件***给出逻辑地址,根据映射表转化为硬盘主体的物理地址,从而实现对硬盘主体进行读写操作。
因此,在本申请实施例中,非易失存储器可以用来存储硬盘设备的固件程序和算法数据,如:地址映射算法、垃圾回收算法、均衡损耗算法等,也可以用来存储映射表,也可以同时存储固件程序和算法及映射表等,上述几种方式均可,本领域普通技术人员可以根据实际需要选定,在本申请实施例中不作具体限定。
在本申请实施例中,在执行完步骤S201:在所述第一映射表中标记与所述第一存储单元对应的第一逻辑地址及用于表征所述第一数据是否为有效可读写数据的有效位信息,获得第三映射表之后,所述方法还包括:
从所述非易失存储器中获取所述第三映射表;
将所述第三映射表写入到所述内存中,并标记所述第二映射表的数据信息与所述第三映射表的数据信息相同。
在具体实现过程中在硬盘主体中写入数据后,非易失存储器中的第一映射表得以更新,获得新的第二映射表,由于在实际使用过程中,内存的随机读写速度要高于非易失存储器的随机读写速度,同时为了避免在将非易失存储器中的第二映射表写入到内存中时,会影响到主机的读写操作的性能,则在主机的***处于空闲状态下,才将第二映射表写入到内存中。
在将第二映射表写入到内存后,内存中存储的映射表数据信息则与非易失存储器中存储的映射表数据信息相同。
在本申请实施例中,在执行完步骤S201:在所述第一映射表中标记与所述第一存储单元对应的第一逻辑地址及用于表征所述第一数据是否为有效可读写数据的有效位信息,获得第三映射表之后,请参考图4,所述方法还包括:
S301:获取在一时间段内所述第三映射表中每个逻辑地址被访问的次数;
S302:基于所述次数,确定所述次数大于第一预设值的逻辑地址为第一类逻辑地址;所述次数小于第二预设值的逻辑地址为第二类逻辑地址;所述次数大于所述第二预设值且小于所述第一预设值的逻辑地址为第三类逻辑地址;
S303:将与所述第一类逻辑地址对应的映射表数据信息存储至所述非易失存储器中;将与所述第二类逻辑地址对应的映射表数据信息及与所述第三类逻辑地址对应的映射表数据信息存储至所述内存中。
在本申请实施例中,在将第一数据写入到硬盘主体的第一存储单元中后,由于非易失存储器的存储空间是一定的,所以要对第二映射表中的映射表数据进行冷热排序,在具体实现过程中,通过在主机中安装的检测软件,获取第二映射表中每个逻辑地址被访问次数,如:在一时间段内,可以是2小时、5小时或是12小时等,也是可以是其它的时间段,本领域普通技术人员可以根据实际需要进行设定,在本申请实施例中不作具体限定。
在本申请实施例中,一段时间以2小时为例,假定逻辑地址1被访问次数为20次,逻辑地址2被访问次数为25次,逻辑地址3被访问次数为30次,逻辑地址4被访问次数为10次,逻辑地址5被访问次数为15次,逻辑地址6被访问次数17,因此在统计第二映射表中每个逻辑地址被访问次数后,则要统计次数大于第一预设值的第一类逻辑地址,在本申请实施例中,第一预设值可以为20、25或30等,本领域普通技术人员可以根据实际需要进行设定,在本申请实施例中不作具体限定。然后还要统计次数小于第二预设值的第二类逻辑地址,在本申请实施例中,第二预设值可以是5、10或15等,本领域普通技术人员可以根据实际需要进行设定,在本申请实施例中不作具体限定。
在本申请实施例中,第一预设值以20为例,第二预设值以15为例,则次数大于20的逻辑地址有1、2、3三个逻辑地址,为第一类逻辑地址,在本申请实施例中也将其称为热数据;获取次数小于15的逻辑地址有4和5两个逻辑地址,即第二类逻辑地址,在本申请实施例中也将其称为冷数据;那么获取次数大于15且小于20的逻辑地址为6,即第三类逻辑地址,在本申请实施例中也将其称为温数据。
在对第二映射表中的数据进行冷热排序后,则将热数据存储在非易失存储器中,将冷数据和温数据存储在内存中。
在本申请实施例中,除了将映射表或硬盘设备的固件程序和算法存储在非易失存储器中,还可以将用户最频繁随机读写的数据存储在非易失存储器中。这是因为,用户在一段时间内随机读写的数据可能是存储硬盘设备上不同的硬盘主体的不同块的不同页上不一定连续的字节中,当把最频繁随机读写的数据放入非易失存储器中时,可以把数据放到非易失存储器上的同一块的同一页或连续的页的连续字节中。另外,在访问硬盘设备的硬盘主体时,数据的读取接口一般是串行读写方式,而非易失存储器与控制器之间的接口可以组成并行接口,因此,读写数据可以并行读写,从而在提高硬盘设备使用寿命的同时提硬盘设备的随机读写速度。
在本申请实施例中,在所述主机未检测到输入操作时,在所述将与所述第三类逻辑地址对应的映射表数据信息存储至所述内存中之后,所述方法还包括:
从所述内存中获取所述与所述第三类逻辑地址对应的映射表数据信息;
将所述与所述第三类逻辑地址对应的映射表数据信息存储至所述硬盘主体中。
在本申请实施例中,为了保证映射表与硬盘主体中真正存储的数据保持一致,也为了避免在将映射表写入到硬盘主体中会影响主机的读写操作的性能,则在主机***处于空闲状态,或在主机将断电时,将与第三类逻辑地址对应的映射表数据信息写入到硬盘主体中,在本申请实施例中,由于冷数据是没有被更改的数据,所以,并不需要将冷数据写入到硬盘主体中,而热数据是经常被更改的数据,则为了避免对硬盘主体存储单元的过度擦写,将热数据存储到非易失存储器中,因此,只需要将温数据写入至硬盘主体中,避免了频繁往硬盘主体中写入映射表信息,从而可以提高硬盘设备的使用寿命。
在本申请实施例中,所述从所述硬盘主体中读取第二数据,具体包括:
判断所述第一映射表是否与所述第二映射表相同,获得第一判断结果;
若所述第一判断结果为否,从所述非易失存储器中读取所述第一映射表;
基于所述第一映射表,确定与所述第二数据的第二逻辑地址对应的物理地址;
基于所述物理地址,从所述硬盘主体中与所述物理地址对应的第二存储单元中读取所述第二数据。
在具体实现过程中,在接收到由主机发送的读指令时,首先判断非易失存储器中存储的第一映射表与内存第二映射表是否相同,这里需要判断第一映射表是否与第二映射表相同,主要是因为在有写操作之后,首先是对非易失存储器中的映射表进行更新,而并没有及时将非易失存储器中的映射表写入到内存中,从而导致内容中的第二映射表与第一映射表不相同。
在进行判断后,若第一映射表与第二映射表相同,则从内存中读取第二映射表,将读指令及将读取数据的逻辑地址转化为物理地址,从硬盘主体的与物理地址对应的存储单元中读取数据,这里在第一映射表与第二映射表相同时,从内存中读取第二映射表是因为内存的随机读写速度高于非易失存储器的随机读写速度。
在具体实现过程中,若第一映射表与第二映射表不相同,则从非易失存储器中读取第一映射表将读指令及将读取数据的逻辑地址转化为物理地址,从硬盘主体的与物理地址对应的存储单元中读取数据。
通过本申请实施例中的一个或多个技术方案,可以实现如下一个或多个技术效果:
一、由于本申请实施例中的技术方案是硬盘设备的控制器接收由与所述硬盘设备连接的主机发送的读或写指令;基于所述读或写指令、所述硬盘设备的非易失存储器中的第一映射表及所述硬盘设备的内存中的第二映射表,向所述所述硬盘设备的硬盘主体的第一存储单元写入第一数据或从所述硬盘主体的第二存储单元中读取第二数据,其中,所述第一映射表和所述第二映射表用于表征所述主机发送的逻辑地址与所述硬盘主体的物理地址之间的映射关系。即不会像现有中,将映射表存储在硬盘主体中,而由于映射表的频繁更新和硬盘主体无法就地更新的特性,因此,映射表所在的硬盘主体存储单元会频繁地更新到其它的存储单元,造成不必要的擦写,降低硬盘设备的使用寿命,而采用本方案,将映射表存储在非易失存储器中,可以避免对硬盘主体存储单元的擦写,所以,有效解决了现有技术中的硬盘设备存在使用寿命低的技术问题,达到了提高硬盘设备的使用寿命的技术效果。
二、由于本申请实施例中的技术方案是获取在一时间段内所述第三映射表中每个逻辑地址被访问的次数;基于所述次数,确定所述次数大于第一预设值的逻辑地址为第一类逻辑地址;所述次数小于第二预设值的逻辑地址为第二类逻辑地址;所述次数大于所述第二预设值且小于所述第一预设值的逻辑地址为第三类逻辑地址;将与所述第一类逻辑地址对应的映射表数据信息存储至所述非易失存储器中;将与所述第二类逻辑地址对应的映射表数据信息及与所述第三类逻辑地址对应的映射表数据信息存储至所述内存中,即对第三映射表中的数据进行分类,将偶尔发生变化或变化频率较低的映射表数据存储到内存中,则大大降低了把映射表数据写入到硬盘主体的频率,达到了降低功耗及进一步达到了提高硬盘设备的使用寿命的技术效果。
三、由于本申请实施例中的技术方案是从所述内存中获取所述与所述第三类逻辑地址对应的映射表数据信息;将所述与所述第三类逻辑地址对应的映射表数据信息存储至所述硬盘主体中。即不会像现有技术中,在有写操作发生时,就需要频繁往硬盘主体中写入映射表信息,而在在向硬盘主体中写入映射表时,往往会遇到读写操作,又由于将映射表从内存写入到硬盘主体中的速度比较慢,这时,需要在写映射表操作完成之后,才能响应读写操作,从而影响读写性能,而在本申请实施例中,是在主机***空闲时,才将映射表写入到硬盘主体中,进而达到了提高读写性能的技术效果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
具体来讲,本申请实施例中的信息处理方法对应的计算机程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与信息处理方法对应的计算机程序指令被一电子设备读取或被执行时,包括如下步骤:
硬盘设备的控制器接收由与所述硬盘设备连接的主机发送的读或写指令;
基于所述读或写指令、所述硬盘设备的非易失存储器中的第一映射表及所述硬盘设备的内存中的第二映射表,向所述所述硬盘设备的硬盘主体的第一存储单元写入第一数据或从所述硬盘主体的第二存储单元中读取第二数据,其中,所述第一映射表和所述第二映射表用于表征所述主机发送的逻辑地址与所述硬盘主体的物理地址之间的映射关系。
可选的,所述存储介质中还存储另外一些计算机程序指令,该另外一些计算机程序指令在与步骤:在向所述硬盘设备的硬盘主体的第一存储单元写入第一数据对应的计算机程序指令被执行之后被执行,执行过程中包括如下步骤:
在所述第一映射表中标记与所述第一存储单元对应的第一逻辑地址及用于表征所述第一数据是否为有效可读写数据的有效位信息,获得第三映射表;
标记所述第三映射表的数据信息与所述第二映射表的数据信息不同。
可选的,所述存储介质中还存储有另外一些计算机程序指令,该另外一些计算机程序指令在与步骤:在所述主机未检测到输入操作时,在所述第一映射表中标记与所述第一存储单元对应的第一逻辑地址及用于表征所述第一数据是否为有效可读写数据的有效位信息,获得第三映射表对应的计算机程序指令被执行之后被执行,执行过程中包括如下步骤:
从所述非易失存储器中获取所述第三映射表;
将所述第三映射表写入到所述内存中,并标记所述第二映射表的数据信息与所述第三映射表的数据信息相同。
可选的,所述存储介质中还存储有另外一些计算机程序指令,该另外一些计算机程序指令在与步骤:在所述第一映射表中标记与所述第一存储单元对应的第一逻辑地址及用于表征所述第一数据是否为有效可读写数据的有效位信息,获得第三映射表对应的计算机程序指令被执行之后被执行,执行过程中包括如下步骤:
获取在一时间段内所述第三映射表中每个逻辑地址被访问的次数;
基于所述次数,确定所述次数大于第一预设值的逻辑地址为第一类逻辑地址;所述次数小于第二预设值的逻辑地址为第二类逻辑地址;所述次数大于所述第二预设值且小于所述第一预设值的逻辑地址为第三类逻辑地址;
将与所述第一类逻辑地址对应的映射表数据信息存储至所述非易失存储器中;将与所述第二类逻辑地址对应的映射表数据信息及与所述第三类逻辑地址对应的映射表数据信息存储至所述内存中。
可选的,所述存储介质中还存储有另外一些计算机程序指令,该另外一些计算机程序指令在与步骤:在所述主机未检测到输入操作时,在所述将与所述第三类逻辑地址对应的映射表数据信息存储至所述内存中对应的计算机程序指令被执行之后被执行,执行过程中包括如下步骤:
从所述内存中获取所述与所述第三类逻辑地址对应的映射表数据信息;
将所述与所述第三类逻辑地址对应的映射表数据信息存储至所述硬盘主体中。
可选的,所述存储介质中存储的与步骤所述从所述硬盘主体中读取第二数据对应的计算机程序指令在被执行过程中,具体包括如下步骤:
判断所述第一映射表是否与所述第二映射表相同,获得第一判断结果;
若所述第一判断结果为否,从所述非易失存储器中读取所述第一映射表;
基于所述第一映射表,确定与所述第二数据的第二逻辑地址对应的物理地址;
基于所述物理地址,从所述硬盘主体中与所述物理地址对应的第二存储单元中读取所述第二数据。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。