存储系统、存储管理装置、存储器、混合存储装置及存储管理方法技术领域
本发明涉及存储技术领域,特别涉及一种存储系统、存储管理装置、存储器、混合存
储装置及存储管理方法。
背景技术
固态存储器(Solid state disk,SSD)具有高性能、低延迟、低功耗、环境适应性强等
优点,同时成本也在不断降低,因此目前应用的越来越普遍,一般用作硬盘的缓存,也可
以直接用作硬盘。
但由于SSD不能原地写,只能擦除原来的数据以后才能写入新的数据,且数据写入的
单位为页(例如4kb),而数据擦除的单位为块(例如1024KB),这与磁盘存储器的工作原理
不同,所以需要通过闪存转换层(Flash translation layer,FTL),使文件系统可以像操作磁盘
存储器一样操作SSD。
一般FTL需要执行的操作有数据的写入,逻辑地址与物理地址的映射、垃圾回收、负
载均衡、还需要进行SSD中的物理块的擦除等操作。如此,在使用一段时间,SSD的性能
也由于垃圾回收、块的擦除等操作变差。
发明内容
本发明实施例提供存储器管理装置及方法,通过管理层管理存储器,从而提高存储器
的性能。
本发明实施例第一方面提供一种存储系统,包括存储器和管理器;
所述存储器包括多个物理块;
所述管理器用于接收数据写请求,为待写入数据页确定逻辑块,将所述待写入数据页
的逻辑地址记录至所述逻辑块中,并向所述存储器发送数据写指令,所述数据写指令携带
所述待写入数据页及所述待写入数据页的逻辑空间信息;
所述存储器用于接收所述数据写指令,由所述数据写指令中的所述待写入数据页的逻
辑空间信息获取所述逻辑块的信息,根据所述逻辑块的信息确定所述逻辑块对应的物理
块,将所述待写入数据页写入所述逻辑块对应的物理块中。
结合第一方面,在第一种可能的实现方式中,所述存储器中还预先配置物理块与逻辑
块的对应关系,其中,每个物理块对应一个逻辑块,每个逻辑块对应至少一个物理块;则
所述存储器根据所述逻辑块信息查询所述物理块与逻辑块的对应关系确定所述逻辑块对
应的物理块。
结合第一方面,在第二种可能的实现方式中,所述存储器中设置每个逻辑块分配标识
信息,用于标识所述每个逻辑块是否被分配对应的物理块;
所述存储器根据所述逻辑块的信息确定所述逻辑块对应的物理块具体包括:所述存储
器根据所述逻辑块的信息确定所述逻辑块的分配标识信息,根据所述逻辑块的分配标识信
息确定所述逻辑块是否被分配对应的物理块,若确定所述逻辑块未被分配对应的物理块,
为所述逻辑块分配物理块,并记录所分配的物理块与所述逻辑块的对应关系,其中,每个
物理块对应一个逻辑块,每个逻辑块对应至少一个物理块。
结合第一方面、第一种实现方式或者第二种实现方式,在第三种可能的实现方式中,
所述待写入数据页的逻辑空间信息为所述逻辑块信息。。
结合第一方面、第一种实现方式或者第二种实现方式,在第四种可能的实现方式中,
所述待写入数据页的逻辑空间信息为所述待写入数据页的逻辑地址,所述存储器中记录存
储器的逻辑块信息,所述存储器在接收到所述数据写指令,根据所述待写入数据页的逻辑
地址及所述存储器的逻辑块信息,确定所述逻辑块的信息。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述管理器还
用于根据每个逻辑块对应的数据页,确定待擦除的逻辑块,向所述存储器发送擦除指令,
所述擦除指令携带所述待擦除的逻辑块的信息;
所述存储器还用于接收所述擦除指令,根据所述擦除指令中的所述待擦除的逻辑块的
信息和所述物理块与逻辑块的对应关系,确定待擦除的物理块,以及擦除所述待擦除的物
理块。
结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,在确定待擦除
的物理块后,所述存储器为所述待擦除的逻辑块重新分配物理块,并更新所述待擦除的逻
辑块的分配标识信息,之后再擦除所述待擦除的物理块。
结合第一方面的第五种或者第六种可能的实现方式,在第七种可能的实现方式中,所
述管理器还用于在确定需要对已存储的数据页进行更新时,将所述已存储的数据页对应的
逻辑块中记录的所述已存储的数据页的逻辑地址置为无效;
所述管理器用于根据每个逻辑块对应的数据页,确定待擦除的逻辑块具体包括:选择
无效逻辑地址数量多的逻辑块作为所述待擦除的逻辑块。
结合第一方面的第七种可能的实现方式,在第八种可能的实现方式中,所述管理器在
向所述存储器发送所述擦除指令之前,所述管理器还用于对所述待擦除的逻辑块中的有效
的逻辑地址进行迁移,并确定所述有效的逻辑地址对应的数据页为待迁移的数据页,并向
所述存储器发送数据迁移指令,所述数据迁移指令携带所述待迁移的数据页的信息;
所述存储器还用于根据所述数据迁移指令将所述存储器中所述待迁移的数据页进行
迁移。
第二方面,提供一种存储管理装置,应用于包括存储器的存储系统,所述存储器包括
多个物理块,所述存储管理装置包括:
逻辑块管理模块,用于接收数据写请求,为待写入数据页确定逻辑块,将所述待写入
数据页的逻辑地址记录至所述逻辑块中;
写入指示模块,用于根据所述逻辑块管理模块为所述待写入数据页确定的逻辑块,向
所述存储器发送数据写指令,其中,所述数据写指令携带所述待写入数据页及所述待写入
数据页的逻辑空间信息;所述数据写指令用于指示所述存储器根据所述数据写指令将所述
逻辑块对应的待写入数据页写入所述逻辑块对应的物理块中。
结合第二方面,在第一种可能的实现方式中,所述待写入数据页的逻辑空间信息为所
述逻辑块信息。
结合第二方面,在第二种可能的实现方式中,所述待写入数据页的逻辑空间信息为所
述待写入数据页的逻辑地址,所述存储器中记录存储器的逻辑块信息,所述存储器在接收
到所述数据写指令,根据所述待写入数据页的逻辑地址及所述存储器的逻辑块信息,确定
所述逻辑块的信息。
结合第二方面、第二方面的第一种实现方式或者第二种实现方式,所述存储管理装置
还包括擦除指令模块,用于根据每个逻辑块对应的数据页,确定待擦除的逻辑块,向所述
存储器发送擦除指令,所述擦除指令携带所述待擦除的逻辑块的信息,所述擦除指令用于
指示所述存储器根据所述擦除指令中的所述待擦除的逻辑块的信息和所述存储器中设置
的物理块与逻辑块的对应关系,确定待擦除的物理块,以及擦除所述待擦除的物理块。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述逻辑块管
理模块还用于在确定需要对已存储的数据页进行更新时,将所述已存储的数据页对应的逻
辑块中记录的所述已存储的数据页的逻辑地址置为无效;
所述擦除指令模块用于确定待擦除的逻辑块具体包括:选择无效逻辑地址数量多的逻
辑块作为所述待擦除的逻辑块。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述存储管理
装置还包括迁移指令模块,在所述擦除指令模块在向所述存储器发送所述擦除指令之前,
所述迁移指令模块用于对逻辑块中有效的逻辑地址进行迁移,确定所述有效的逻辑地址对
应的数据页为待迁移的数据页,并向所述存储器发送数据迁移指令,所述数据迁移指令携
带所述待迁移的数据页的信息,所述数据迁移指令用于指示所述存储器将所述存储器中所
述待迁移的数据页进行迁移。
第三方面,提供一种存储器,包括:
接收模块,用于接收数据写指令,所述数据写指令携带待写入数据页及所述待写入数
据页的逻辑空间信息,所述数据写指令是由管理器在接收到数据写请求,为所述待写入数
据页确定逻辑块,并将所述待写入数据页的逻辑地址记录至所述逻辑块之后发送的;
写入模块,用于根据所述数据写指令中的所述待写入数据页的逻辑空间信息获取逻辑
块信息,根据所述逻辑块信息确定所述逻辑块对应的物理块,将所述待写入数据页写入所
述逻辑块对应的物理块中。
结合第三方面,在第一种可能的实现方式中,所述存储器中还预先配置物理块与逻辑
块的对应关系,其中,所述每个物理块对应一个逻辑块,每个逻辑块对应至少一个物理块;
则所述存储器根据所述逻辑块信息查询所述物理块与逻辑块的对应关系确定所述逻辑块
对应的物理块。
结合第三方面,在第二种可能的实现方式中,所述存储器中设置每个逻辑块的分配标
识信息,用于标识所述逻辑块是否被分配对应的物理块;
所述存储器根据所述逻辑块的信息确定所述逻辑块对应的物理块具体包括:所述存储
器根据所述逻辑块的信息确定所述逻辑块的分配标识信息,根据所述逻辑块的分配标识信
息确定所述逻辑块是否被分配对应的物理块,若确定所述逻辑块未被分配对应的物理块,
为所述逻辑块分配物理块,并记录所分配的物理块与所述逻辑块的对应关系,其中,每个
物理块对应一个逻辑块,每个逻辑块对应至少一个物理块。
结合第三方面、第三方面的第一种可能实现方式或第二种可能的实现方式,在第三种
可能的实现方式中,所述待写入数据页的逻辑空间信息为所述逻辑块信息。
结合第三方面、第三方面的第一种可能实现方式或第二种可能的实现方式,在第四种
可能的实现方式中,所述待写入数据页的逻辑空间信息为所述待写入数据页的逻辑地址,
所述存储器中记录存储器的逻辑块信息,所述存储器在接收到所述数据写指令,根据所述
待写入数据页的逻辑地址及所述存储器的逻辑块信息,确定所述逻辑块的信息。
结合第三方面的第四种可能的实现,在第五种可能的实现方式中,所述接收模块还用
于接收所述管理器发送的擦除指令,所述擦除指令为所述管理器确定待擦除的逻辑块后发
送的,所述擦除指令携带所述待擦除的逻辑块的信息;
所述存储器还包括擦除模块,用于根据所述擦除指令中的所述待擦除的逻辑块的信息
和所述物理块与逻辑块的对应关系,确定待擦除的物理块,以及擦除所述待擦除的物理块。
结合第三方面的第五种可能的实现,在第六种可能的实现方式中,在确定待擦除的物
理块后,所述存储器为所述待擦除的逻辑块重新分配物理块,并更新所述待擦除的逻辑块
的分配标识信息,之后,再擦除所述待擦除的物理块。
结合第三方面的第五种或者第六种可能的实现,在第七种可能的实现方式中,所述接
收模块还用于接收管理器发送的数据迁移指令,所述数据迁移指令为所述管理器确定所述
待擦除的逻辑块中待迁移的数据页后发送的,所述待迁移的数据页为所述待擦除的逻辑块
中的有效逻辑地址对应的数据页,所述数据迁移指令携带所述待迁移的数据页的信息;
所述存储器还包括迁移模块,用于根据所述数据迁移指令将所述存储器中所述待迁移
的数据页进行迁移。
第四方面,提供一种混合存储装置,包括硬盘、如第二方面的任意一种实现方式中的
管理器,以及第三方面的任意一种实现方式所述的存储器,所述存储器作为所述磁盘存储
器的缓存。
第五方面,提供一种存储管理方法,应用于包括存储器的存储系统,所述存储器包括
多个物理块,所述方法包括:
接收数据写请求,为待写入数据页确定逻辑块;
将所述待写入数据页的逻辑地址记录至所述逻辑块中;
向所述存储器发送数据写指令,其中,所述数据写指令携带所述待写入数据页及所述
待写入数据页的逻辑空间信息;所述数据写指令用于指示所述存储器根据所述数据写指令
将所述逻辑块对应的待写入数据页写入所述逻辑块对应的物理块中。
结合第五方面,在第一种可能的实现方式中,所述待写入数据页的逻辑空间信息为所
述逻辑块信息。
结合第五方面,在第二种可能的实现方式中,所述待写入数据页的逻辑空间信息为所
述待写入数据页的逻辑地址,所述存储器中记录存储器的逻辑块信息,所述存储器在接收
到所述数据写指令,根据所述待写入数据页的逻辑地址及所述存储器的逻辑块信息,确定
所述逻辑块的信息。
结合第五方面的第一种或者第二种可能的实现方式中,在第三种可能的实现方式中,
根据每个逻辑块对应的数据页,确定待擦除的逻辑块;
向所述存储器发送擦除指令,所述擦除指令携带所述待擦除的逻辑块的信息,所述擦
除指令用于指示所述存储器根据所述擦除指令中的所述待擦除的逻辑块的信息和所述存
储器中设置的物理块与逻辑块的对应关系,确定待擦除的物理块,以及擦除所述待擦除的
物理块。
结合第五方面的第三种可能的实现方式,在第四种可能的实现方式中,所述方法还包
在确定需要对已存储的数据页进行更新时,将所述已存储的数据页对应的逻辑块中记录的
所述已存储的数据页的逻辑地址置为无效;
选择无效逻辑地址数量多的逻辑块作为所述待擦除的逻辑块。
结合第五方面的第四种可能的实现方式,在第五种可能的实现方式中,在所述向所述
存储器发送所述擦除指令之前,对逻辑块中有效的逻辑地址进行迁移,确定所述有效的逻
辑地址对应的数据页为待迁移的数据页;
向所述存储器发送数据迁移指令,所述数据迁移指令携带所述待迁移的数据页的信
息,所述数据迁移指令用于指示所述存储器将所述存储器中所述待迁移的数据页进行迁
移。
第六方面,提供一种存储管理方法,应用于存储器;包括:
接收数据写指令,所述数据写指令携带待写入数据页及所述待写入数据页的逻辑空间
信息,所述数据写指令是由管理器在接收到数据写请求,为所述待写入数据页确定逻辑块,
并将所述待写入数据页的逻辑地址记录至所述逻辑块之后发送的;
根据所述数据写指令中的所述待写入数据页的逻辑空间信息获取逻辑块信息,根据所
述逻辑块信息确定所述逻辑块对应的物理块,将所述待写入数据页写入所述逻辑块对应的
物理块中。
结合第六方面,在第一种可能的实现方式中,所述存储器中还预先配置物理块与逻辑
块的对应关系,其中,所述每个物理块对应一个逻辑块,每个逻辑块对应至少一个物理块;
则所述根据所述逻辑块信息确定所述逻辑块对应的物理块具体为:根据所述逻辑块信息查
询所述物理块与逻辑块的对应关系确定所述逻辑块对应的物理块。
结合第六方面,在第二种可能的实现方式中,所述存储器中设置所述逻辑块的分配标
识信息,用于标识所述逻辑块是否被分配物理块;
所述根据所述逻辑块信息确定所述逻辑块对应的物理块具体为:
根据所述逻辑块的信息确定所述逻辑块的分配标识信息;
根据所述逻辑块的分配标识信息确定所述逻辑块是否被分配对应的物理块;
若确定所述逻辑块未被分配对应的物理块,为所述逻辑块分配物理块,并记录所分配
的物理块与所述逻辑块的对应关系,其中,每个物理块对应一个逻辑块,每个逻辑块对应
至少一个物理块。
结合第六方面、第六方面的第一种可能的实现方式或者第二种可能的实现方式,在第
三种可能的实现方式中,所述待写入数据页的逻辑空间信息为所述逻辑块信息。
结合第六方面、第六方面的第一种可能的实现方式或者第二种可能的实现方式,在第
四种可能的实现方式中,还包括:
所述待写入数据页的逻辑空间信息为所述待写入数据页的逻辑地址,所述存储器中记
录存储器的逻辑块信息,所述存储器在接收到所述数据写指令,根据所述待写入数据页的
逻辑地址及所述存储器的逻辑块信息,确定所述逻辑块的信息。
结合第六方面的第一种或者第二种可能的实现方式,在第五种可能的实现方式中,所
述方法还包括:
接收擦除指令,所述擦除指令为所述管理器确定待擦除的逻辑块后发送的,所述擦除
指令携带所述待擦除的逻辑块的信息;
根据所述擦除指令中的所述待擦除的逻辑块的信息和所述物理块与逻辑块的对应关
系,确定待擦除的物理块,以及擦除所述待擦除的物理块。
结合第六方面的第四种或者第五种可能的实现方式,在第六种可能的实现方式中,还
包括接收数据迁移指令,所述数据迁移指令为管理器确定所述待擦除的逻辑块中待迁移的
数据页后发送的,所述待迁移的数据页为所述待擦除的逻辑块中的有效逻辑地址所对应的
数据页,所述数据迁移指令携带所述待迁移的数据页的信息;
根据所述数据迁移指令将所述存储器中所述待迁移的数据页进行迁移。
第七方面,提供一种存储管理器,包括:处理器、存储器、总线和通信接口;
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所
述计算设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述存
储管理器如下方法:
接收数据写请求,为待写入数据页确定逻辑块;
将所述待写入数据页的逻辑地址记录至所述逻辑块中;
向所述存储器发送数据写指令,其中,所述数据写指令携带所述待写入数据页及所述
待写入数据页的逻辑空间信息;所述数据写指令用于指示所述存储器根据所述数据写指令
将所述逻辑块对应的待写入数据页写入所述逻辑块对应的物理块中。
第八方面,提供一种存储管理器,包括:处理器、存储器、总线和通信接口;
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所
述计算设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述存
储管理器执行如下方法:
接收数据写指令,所述数据写指令携带待写入数据页及所述待写入数据页的逻辑空间
信息,所述数据写指令是由管理器在接收到数据写请求,为所述待写入数据页确定逻辑块,
并将所述待写入数据页的逻辑地址记录至所述逻辑块之后发送的;
根据所述数据写指令中的所述待写入数据页的逻辑空间信息获取逻辑块信息,根据所
述逻辑块信息确定所述逻辑块对应的物理块,将所述待写入数据页写入所述逻辑块对应的
物理块中。
在第九方面,提供一种计算机可读介质,包括计算机执行指令,当计算机的处理器执
行所述计算机执行指令时,所述计算机执行如下方法:
接收数据写请求,为待写入数据页确定逻辑块;
将所述待写入数据页的逻辑地址记录至所述逻辑块中;
向所述存储器发送数据写指令,其中,所述数据写指令携带所述待写入数据页及所述
待写入数据页的逻辑空间信息;所述数据写指令用于指示所述存储器根据所述数据写指令
将所述逻辑块对应的待写入数据页写入所述逻辑块对应的物理块中。
在第十方面,提供一种计算机可读介质,包括计算机执行指令,当计算机的处理器执
行所述计算机执行指令时,所述计算机执行如下方法:
接收数据写指令,所述数据写指令携带待写入数据页及所述待写入数据页的逻辑空间
信息,所述数据写指令是由管理器在接收到数据写请求,为所述待写入数据页确定逻辑块,
并将所述待写入数据页的逻辑地址记录至所述逻辑块之后发送的;
根据所述数据写指令中的所述待写入数据页的逻辑空间信息获取逻辑块信息,根据所
述逻辑块信息确定所述逻辑块对应的物理块,将所述待写入数据页写入所述逻辑块对应的
物理块中。
本发明通过对SSD划为逻辑块,并在逻辑块中记录存储在SSD中的数据页的逻辑地
址,建立逻辑块与SSD中的物理块的对应关系,从而管理层可以通过对逻辑块中记录的数
据页的逻辑地址对SSD中存储的数据页进行管理,从而减少了FTL所执行的操作,提升了
SSD的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技
术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明
的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以
根据这些附图获得其他的附图。
图1为现有技术中SSD作为HDD的缓存使用的系统的架构图。
图2为现有技术中SSD进行数据更新时数据地址变化的示意图。
图3为本发明实施例提供的存储系统的架构图。
图4为图3所示的实施例中逻辑块与物理块的对应关系的示意图。
图5为在图3所示的实施例中在对已存储的数据进行更新时,逻辑块中的逻辑地址变
化的示意图。
图6为在图3所示的实施例中在擦除物理块之前,对待擦除物理块中的数据进行迁移
的示意图。
图7为本发明实施例中提供的存储管理装置的方块图。
图8为本发明实施例中提供的SSD的结构图。
图9为本发明实施例提供的混合存储装置的结构图。
图10本发明实施例中管理器将数据写入SSD的方法的流程图。
图11为本发明实施例中管理器控制SSD进行数据擦除的方法的流程图。
图12为本发明实施例中的计算机的结构组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地
描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本
发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实
施例,都属于本发明保护的范围。
本发明实施例中的存储器为包括多个物理块,擦除原来的数据才能写入新的数据,且
以页为单位写入数据,而以物理块为单位擦除数据,这种存储器的代表为SSD存储器,下
面的实施例中即以SSD为例进行说明。
如图1,为现有技术中SSD作为HDD的缓存使用的系统的架构图。一般将经常访问的
数据存储在SSD101中,并通过管理器103对SSD101和HDD102进行统一管理。所述管理器
103通过映射表记录着哪些HDD102数据缓存在SSD101中。当一个请求到达时,所述管理
器103查找映射表,判断所请求的数据是否存储在SSD101上。如果数据存储在SSD101上,
则从SSD101中读取数据;如果数据不在SSD101上,则从HDD102中读取数据。如果SSD101
中的数据写满,则进行数据擦除,将不常用的数据替换出去。
对于图1所示的架构,当所述SSD101与所述HDD102作为混合硬盘使用时,所述管理
器103可以为所述混合硬盘的控制器,当所述SSD101与所述HDD102分别作为独立的设备
接入计算机时,所述管理器101可以装载在所述计算机的操作系统中或者作为独立的模块
装载在所述计算机中。上述图1中SSD作为HDD的缓存使用,在其他的应用场景中,SSD也
可以独立作为存储设备。本发明可以运用于如图1所示的架构中,也可以运用于SSD其它的
应用场景中。
所述SSD一般为与非(not and,NAND)闪存,可以包括多个物理块(如1024个),
每个物理块包括多个物理页(如64个)。其中物理页是读、写数据的基本单元,而物理块
是SSD进行数据擦除的基本单元。
所述SSD包括闪存转换层(Flash translation layer,FTL),所述FTL可以用来记录数据的
逻辑地址(Logical Block Address,LBA)与SSD中的物理地址(Physical Block Address,PBA)
的对应关系,根据逻辑地址与物理地址的对应关系执行数据的读或者写操作。
另外,当需要对SSD上的数据进行更新时,所述FTL还可以把更新后的“新数据”写
入到SSD10的空闲物理页并更新数据的LBA和SSD中的PBA的对应关系,并把包含“旧数
据”的物理页标记为无效页。如图2所示,若所述数据更新请求为对page 0中的数据进行更
新,则FTL将更新后的page0的数据写入到物理地址为n+2的物理页中,而将Page 0的所在的
物理地址为n的物理页标识为无效。
在SSD写满之后,需要进行物理块的替换,FTL选择无效页数量比较多的物理块进行
擦除以释放空间存储新的数据。但由于SSD所擦除的物理块中可能包括大量的有效的数据
页,这就需要把这些有效页的数据页迁移到另外的空闲位置后,再对需要擦除的物理块中
的数据进行擦除,这个过程即为垃圾回收。
此外,FTL还要执行负载均衡等操作。
本发明实施例所提供的技术方案旨在减少FTL所执行的操作。本发明实施例所提供的
技术方案为通过对SSD划为逻辑块,并在逻辑块中记录存储在SSD中的数据页的逻辑地址,
建立逻辑块与SSD中的物理块的对应关系,从而管理层可以通过对逻辑块及逻辑块中记录
的数据页的逻辑地址对SSD中的物理块及物理块中存储的数据页进行管理,减少了FTL所
执行的操作,从而提升了SSD的性能。
下面即通过本发明的不同的实施例对技术方案做详细的描述。
如图3所示,为本发明一实施例提供的存储系统30的架构图。所述存储系统30包括管
理器301及SSD302。所述SSD302包括多个物理块303。所述管理器301接收数据写请求,为
待写入数据页确定逻辑块,将所述待写入数据页的逻辑地址记录至所述逻辑块中,并向所
述SSD302发送数据写指令,所述数据写指令携带所述待写入数据页及所述待写入数据页的
逻辑空间信息,所述逻辑空间信息可以为所述逻辑块信息或者所述待写入数据页的逻辑地
址。
所述SSD302用于接收所述数据写指令,由所述数据写指令中的所述待写入数据页的
逻辑空间信息获取逻辑块信息,根据所述逻辑块信息确定所述逻辑块对应的物理块303,
将所述待写入数据页写入所述逻辑块对应的物理块303中。
所述管理器301所接收的所述数据写请求用于向所述SSD302写入数据,向所述
SSD302写入的数据可以为第一次被写入所述存储系统30的数据,也可以为对已存储在
SSD302上的数据进行更新的数据,也可以为从硬盘(图未示)中调入所述SSD302的数据。
在所述SSD302预先配置了物理块303与逻辑块的对应关系,如图4所示,所述每个物
理块303对应一个逻辑块,每个逻辑块对应至少一个物理块303。如此,在所述SSD302在接
收到所述数据写指令后,可以根据所述数据写指令中的所述逻辑块的信息查询所述物理块
与逻辑块的对应关系,确定所述逻辑块对应的物理块303,将所述逻辑块对应的待写入数
据页写入所述逻辑块对应的物理块303中。通过上面的方式,可以使逻辑块与物理块关联
起来,且通过逻辑块中记录的数据页的逻辑地址将物理块303中记录的数据页与逻辑块关
联起来,即可以通过对逻辑块的管理实现对SSD302中的物理块303的管理。
在另一种实现方式中,所述逻辑块与物理块303之间的对应关系不是预先设置好的,
而是动态分配的,具体为:所述存储器中设置所述逻辑块的分配标识信息,用于标识所述
逻辑块是否被分配物理块303;所述存储器根据所述逻辑块信息确定所述逻辑块对应的物
理块303具体为:所述存储器根据所述逻辑块信息确定所述逻辑块的分配标识信息,根据
所述分配标识信息确定所述逻辑块是否被分配物理块303,若确定所述逻辑块未被分配物
理块303,则为所述逻辑块分配物理块303,并记录所分配的物理块303与逻辑块的对应关
系,确定所分配的物理块303为所述逻辑块对应的物理块303。
进一步地,在本实施例中,在确定需要对已存储的数据页进行更新时,将所述已存储
的数据页对应的逻辑块中所记录的所述已存储的数据页的逻辑地址置为无效。如图5所示,
若记录在逻辑块A中的数据页Page0、page3、page4及page 5被更新,则记录在逻辑块A中的
数据页Page0、page3、page4及page 5的逻辑地址LA0、LA3、LA4、LA5被设置为无效。
进一步地,本实施例可通过管理器301控制SSD302中物理块303的擦除,具体为:所
述管理器301确定待擦除的逻辑块,向所述SSD302发送擦除指令,所述擦除指令携带所述
待擦除的逻辑块的信息。
所述SSD302接收所述擦除指令,根据所述擦除指令中的所述待擦除的逻辑块的信息
和所述物理块303与逻辑块的对应关系,确定待擦除的物理块303,以及擦除所述待擦除的
物理块303。
本实施例中,所述管理器301选择无效逻辑地址数量多的逻辑块作为所述待擦除的逻
辑块。
在确定待擦除的物理块303后,所述SSD302为所述待擦除的逻辑块重新分配物理块,
并更新所述待擦除的逻辑块的分配标识信息,之后再擦除所述待擦除的物理块303。这样
待擦除的逻辑块可以立即被重新使用,而不需要等到物理块擦除完之后再使用,从而提高
了系统的性能。
进一步地,在本实施例中,所述管理器301在向所述SSD302发送所述擦除指令之前,
还迁移所述待擦除的物理块303中的有效的逻辑地址,并确定所述有效的逻辑地址对应的
数据页为待迁移的数据页,并向所述SSD302发送数据迁移指令,所述数据迁移指令携带所
述待迁移的数据页的信息。
所述SSD302根据所述数据迁移指令将所述SSD302中所述待迁移的数据页进行迁移。
在进行数据迁移时,所述数据迁移指令携带的所述待迁移的数据页的信息为待迁移的
数据页的逻辑地址,所述SSD302在接收到所述数据迁移指令后,根据所述数据迁移指令中
的所述待迁移的数据页的逻辑地址在所述待擦除的物理块中找到待迁移的数据页,然后对
待迁移的数据页进行迁移。
如图7所示,若逻辑块A因为无效的逻辑页的数量比较多而被选择为待擦除的逻辑块,
但在逻辑块A中还存在有效的逻辑地址LA16及LA17,则将所述有效的逻辑地址LA16及
LA17迁移到逻辑块B中。
所述SSD302接收到所述数据迁移指令后,则根据逻辑地址LA16及LA17在待擦除的逻
辑块A对应的待擦除的物理块B中找到待迁移的数据页page16及page17,然后将待迁移的数
据页page16及page17迁移到逻辑块B所对应的物理块C中。在数据迁移完后,所述SSD302
即可对待擦除的物理块A及物理块B进行擦除。
如图7所示,为本发明一实施例中提供的存储管理装置的方块图。所述存储管理装置
70应用于存储系统,所述存储系统包括SSD,所述SSD包括多个物理块。所述第一存储管
理装置70包括逻辑块管理模块702、写入指示模块703、擦除指示模块704及迁移指示模块
705。
所述逻辑块管理模块702用于接收数据写请求,为待写入数据页确定逻辑块,将所述
待写入数据页的逻辑地址记录至所述逻辑块中。
所述写入指示模块703用于根据所述逻辑块管理模块702为所述待写入数据页确定的
逻辑块,向所述SSD发送数据写指令,其中,所述数据写指令携带所述待写入数据页及所
述待写入数据页的逻辑空间信息;所述数据写指令用于指示所述SSD根据所述数据写指令
将所述逻辑块对应的待写入数据页写入所述逻辑块对应的物理块中。
所述待写入数据页的逻辑空间信息为所述逻辑块信息或者所述待写入数据页的逻辑
地址。
所述数据写指令进一步指示所述SSD根据所述数据写指令中的所述至少一个指定的
逻辑块的信息查询所述SSD中设置的物理块与逻辑块的对应关系,确定所述至少一个指定
的逻辑块对应的物理块,将所述至少一个指定的逻辑块对应的待写入数据页写入所述至少
一个指定的逻辑块对应的物理块中。
所述擦除指示模块704用于确定待擦除的逻辑块,向所述SSD发送擦除指令,所述擦
除指令携带所述待擦除的逻辑块的信息,所述擦除指令用于指示所述SSD根据所述擦除指
令中的所述待擦除的逻辑块的信息和所述SSD中设置的物理块与逻辑块的对应关系,确定
待擦除的物理块,以及擦除所述待擦除的物理块。
进一步地,所述逻辑块管理模块702在确定需要对已存储的数据页进行更新时,将所
述已存储的数据页对应的逻辑块中所记录的所述已存储的数据页的逻辑地址置为无效;
所述擦除指示模块704选择无效逻辑地址数量多的逻辑块作为所述待擦除的逻辑块。
在所述擦除指示模块704在向所述SSD发送所述擦除指令之前,所述迁移指示模块705
用于将所述待擦除的逻辑块中的有效的逻辑地址进行迁移,确定有效的逻辑地址对应的数
据页为待迁移的数据页,并向所述SSD发送数据迁移指令,所述数据迁移指令携带所述待
迁移的数据页的信息,所述数据迁移指令用于指示所述SSD将所述SSD中所述待迁移的数
据页进行迁移。
如图8所示,为本发明一实施例提供的SSD的方块图。所述SSD80可以应用于一存储
系统,所述存储系统包括管理器。所述SSD80包括接收模块802、写入模块803、擦除模块
804、及迁移模块805。
所述接收模块802用于接收数据写指令,所述数据写指令携带待写入数据页及所述待
写入数据页的逻辑空间信息,所述数据写指令是由管理器在接收到数据写请求,为所述待
写入数据页确定逻辑块,并将所述待写入数据页的逻辑地址记录至所述逻辑块之后发送
的;
所述写入模块803用于根据所述数据写指令中的所述待写入数据页的逻辑空间信息获
取逻辑块信息,根据所述逻辑块信息确定所述逻辑块对应的物理块,将所述待写入数据页
写入所述逻辑块对应的物理块中。
所述接收模块802还用于接收所述管理器发送的擦除指令,所述擦除指令为所述管理
器确定待擦除的逻辑块后发送的,所述擦除指令携带所述待擦除的逻辑块的信息。
所述擦除模块804用于根据所述擦除指令中的所述待擦除的逻辑块的信息和所述物理
块与逻辑块的对应关系,确定待擦除的物理块,以及擦除所述待擦除的物理块。
所述接收模块802还用于接收所述管理器发送的数据迁移指令,所述数据迁移指令为
所述管理器确定所述待擦除的逻辑块中待迁移的数据页后发送的,所述待迁移的数据页为
所述待擦除的逻辑块中有效的逻辑地址,所述数据迁移指令携带所述待迁移的数据页的信
息。
所述迁移模块805用于根据所述数据迁移指令将所述SSD中所述待迁移的数据页进行
迁移。
如图9所示,为本发明一实施例提供的一种混合存储装置90的结构图。所述混合存储
装置90包括包括管理器901、SSD902、及HDD903,所述SSD902作为所述HDD的缓存,所
述SSD902包括多个物理块904。
所述管理器901所执行的功能与所述存储系统30的管理器301所执行的功能相同,所述
SSD902所执行的功能与所述存储系统30的SSD302所执行的功能相同,在此不再赘述。
本发明一实施例还提供一种存储管理方法,所述存储管理方法可以应用于存储管理系
统,所述存储管理系统包括管理器及SSD,所述SSD包括多个物理块。所述存储管理方法
包括三部分,第一部分为管理器将数据写入SSD的方法,第三部分所述管理器控制所述SSD
进行数据擦除的方法。
如图10所示,为管理器将数据写入SSD的方法的流程图。
步骤S1001,所述管理器接收数据写请求,为待写入数据页确定逻辑块。
步骤S1002,所述管理器将所述待写入数据页的逻辑地址记录至所述逻辑块中。
步骤S1003,所述管理器向所述SSD发送数据写指令,所述数据写指令携带所述待写
入数据页及所述待写入数据页的逻辑空间信息。
步骤S1004,所述SSD接收所述数据写指令,根据所述数据写指令中的所述待写入数
据页的逻辑空间信息获取逻辑块信息,根据所述逻辑块信息确定所述逻辑块对应的物理
块;
步骤S1005,所述SSD将所述待写入数据页写入所述逻辑块对应的物理块中。
在上述方法中,所述SSD中还预先配置物理块与逻辑块的对应关系,其中,所述每个
物理块对应一个逻辑块,每个逻辑块对应至少一个物理块,则步骤S1004中根据所述逻辑
块信息确定所述逻辑块对应的物理块具体为:根据所述逻辑块信息查询所述物理块与逻辑
块的对应关系确定所述逻辑块对应的物理块。
可替换地,所述SSD中设置所述逻辑块的分配标识信息,用于标识所述逻辑块是否被
分配物理块,则则步骤S1004中根据所述逻辑块信息确定所述逻辑块对应的物理块具体为:
根据所述逻辑块信息确定所述逻辑块的分配标识信息;
根据所述分配标识信息确定所述逻辑块是否被分配物理块;若确定所述逻辑块未被分
配物理块,为所述逻辑块分配物理块,并记录所分配的物理块与逻辑块的对应关系;
确定所分配的物理块为所述逻辑块对应的物理块。
如图11所示,为所述管理器控制所述SSD进行数据擦除的方法的流程图。
步骤S1101,所述管理器确定待擦除的逻辑块。
步骤S1102,所述管理器迁移所述待擦除的逻辑块中的有效的逻辑地址,并确定所述
有效的逻辑地址对应的数据页为待迁移的数据页。
步骤1103,所述管理器向所述SSD发送数据迁移指令,所述数据迁移指令携带所述待
迁移的数据页的信息。
步骤1104,所述SSD接收所述数据迁移指令,根据所述数据迁移指令中的所述待迁移
的数据页的信息将所述SSD中所述待迁移的数据页进行迁移。
步骤1105,所述管理器向所述SSD发送擦除指令,所述擦除指令携带所述待擦除的逻
辑块的信息。
步骤1106,所述SSD接收所述擦除指令,根据所述擦除指令中的所述待擦除的逻辑块
的信息和所述物理块与逻辑块的对应关系,确定待擦除的物理块,以及擦除所述待擦除的
物理块。
在上述方法中,在确定待擦除的物理块后,还包括为所述待擦除的逻辑块重新分配物
理块,并更新所述待擦除的逻辑块的分配标识信息,之后,再删除所述待擦除的物理块
所述管理器可以根据所述逻辑块中无效的逻辑地址的数量确定待擦除的逻辑块,其
中,所述待擦除的逻辑块中包含的无效的逻辑地址的数量大于预设值。
如图12所示,为本发明实施例提供的存储管理器的结构组成示意图。本发明实施例的
存储管理器可包括:
处理器1701、存储器1702、系统总线1704和通信接口1705。CPU1701、存储器1702
和通信接口1705之间通过系统总线1704连接并完成相互间的通信。
处理器1701可能为单核或多核中央处理单元,或者为特定集成电路,或者为被配置成
实施本发明实施例的一个或多个集成电路。
存储器1702可以为高速RAM存储器,也可以为非易失性存储器(non-volatile
memory),例如至少一个磁盘存储器。
存储器1702用于计算机执行指令1703。具体的,计算机执行指令1703中可以包括程序
代码。
当存储管理器运行时,处理器1701运行计算机执行指令1703,可以执行图10或者图11
所述的方法流程。
本发明实施例还提供一种计算机可读介质,包括计算机执行指令,当计算机的处理器
执行所述计算机执行指令时,所述计算机执行图10或者图11所述的方法。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通
过程序来请求相关的硬件来完成,所述程序可以存储于一计算机可读存储介质中,存储介
质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的数据配置及其回退方法和设备,进行了详细介绍,本文
中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮
助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思
想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为
对本发明的限制。
+