《数据移动方法和系统、存储设备和主机.pdf》由会员分享,可在线阅读,更多相关《数据移动方法和系统、存储设备和主机.pdf(17页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102929792 A (43)申请公布日 2013.02.13 CN 102929792 A *CN102929792A* (21)申请号 201210450261.4 (22)申请日 2012.11.12 G06F 12/02(2006.01) G06F 13/40(2006.01) (71)申请人 华为技术有限公司 地址 518129 广东省深圳市龙岗区坂田华为 总部办公楼 (72)发明人 陈业夫 (74)专利代理机构 北京同立钧成知识产权代理 有限公司 11205 代理人 刘芳 (54) 发明名称 数据移动方法和系统、 存储设备和主机 (57) 摘要 本发明实。
2、施例提供一种数据移动方法和系 统、 存储设备和主机, 该数据移动方法包括 : 接收 主机发送的移动命令消息, 所述移动命令消息包 括源逻辑块地址、 目的逻辑块地址和待移动的数 据长度 ; 根据所述移动命令消息, 将起始地址为 所述源逻辑块地址的区域中所述数据长度的数据 拷贝至起始地址为所述目的逻辑块地址的区域 ; 将起始地址为所述源逻辑块地址的区域中所述数 据长度的数据标记为无效 ; 从而实现了将数据从 起始地址为源逻辑块地址的区域中移动至起始地 址为目的逻辑块地址的区域的过程。由于主机只 向存储设备发送一次移动命令消息, 所以主机只 需要与存储设备之间进行一次交互, 提高了主机 对存储设备内。
3、的数据进行移动的效率。 (51)Int.Cl. 权利要求书 2 页 说明书 11 页 附图 3 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 11 页 附图 3 页 1/2 页 2 1. 一种数据移动方法, 其特征在于, 包括 : 接收主机发送的移动命令消息, 所述移动命令消息包括源逻辑块地址、 目的逻辑块地 址和待移动的数据长度 ; 根据所述移动命令消息, 将起始地址为所述源逻辑块地址的区域中所述数据长度的数 据拷贝至起始地址为所述目的逻辑块地址的区域 ; 将起始地址为所述源逻辑块地址的区域中所述数据长度的数据标记为无效。 2. 根据权利要求 1。
4、 所述的方法, 其特征在于, 当逻辑块地址与物理块地址的映射表为静态映射表时, 所述将起始地址为所述源逻 辑块地址的区域中所述数据长度的数据拷贝至起始地址为所述目的逻辑块地址的区域包 括 : 根据静态映射表, 获取所述源逻辑块地址映射的源物理块地址和所述目的逻辑块地址 映射的目的物理块地址 ; 在起始地址为所述源物理块地址的区域中读取所述数据长度的数据 ; 将读取的所述数据长度的数据写入至起始地址为所述目的物理块地址的区域。 3. 根据权利要求 1 所述的方法, 其特征在于, 当逻辑块地址与物理块地址的映射表为动态映射表时, 所述将起始地址为所述源逻 辑块地址的区域中所述数据长度的数据拷贝至起。
5、始地址为所述目的逻辑块地址的区域包 括 : 根据动态映射表, 获取所述源逻辑块地址映射的源物理块地址 ; 建立所述目的逻辑块地址与所述源物理块地址的映射关系。 4.根据权利要求2或3所述的方法, 其特征在于, 所述将起始地址为所述源逻辑块地址 的区域中所述数据长度的数据标记为无效包括 : 将所述源逻辑块地址添加一个无效标记, 以使所述主机不能根据所述源逻辑块地址获 取起始地址为所述源物理块地址的区域中所述数据长度的数据。 5. 根据权利要求 3 所述的方法, 其特征在于, 所述将起始地址为所述源逻辑块地址的 区域中所述数据长度的数据标记为无效包括 : 根据所述源逻辑块地址和所述动态映射表, 将。
6、所述源逻辑块地址映射到无效物理块地 址, 以使所述主机不能根据所述源逻辑块地址获取起始地址为所述源物理块地址的区域中 所述数据长度的数据。 6. 一种数据移动方法, 其特征在于, 包括 : 向存储设备发送移动命令消息, 所述移动命令消息包括源逻辑块地址、 目的逻辑块地 址和待移动的数据长度, 以便所述存储设备根据所述移动命令消息, 将起始地址为所述源 逻辑块地址的区域中所述数据长度的数据拷贝至起始地址为所述目的逻辑块地址的区域, 并将起始地址为所述源逻辑块地址的区域中所述数据长度的数据标记为无效。 7. 一种存储设备, 其特征在于, 包括 : 接收单元, 用于接收主机发送的移动命令消息, 所述。
7、移动命令消息包括源逻辑块地址、 目的逻辑块地址和待移动的数据长度 ; 移动单元, 用于根据所述移动命令消息, 将起始地址为所述源逻辑块地址的区域中所 述数据长度的数据拷贝至起始地址为所述目的逻辑块地址的区域 ; 权 利 要 求 书 CN 102929792 A 2 2/2 页 3 标记单元, 用于将起始地址为所述源逻辑块地址的区域中所述数据长度的数据标记为 无效。 8. 根据权利要求 7 所述的存储设备, 其特征在于, 所述移动单元具体用于当逻辑块地址与物理块地址的映射表为静态映射表时, 根据静 态映射表, 获取所述源逻辑块地址映射的源物理块地址和所述目的逻辑块地址映射的目的 物理块地址 ; 。
8、在起始地址为所述源物理块地址的区域中读取所述数据长度的数据 ; 将读取 的所述数据长度的数据写入至起始地址为所述目的物理块地址的区域。 9. 根据权利要求 7 所述的存储设备, 其特征在于, 所述移动单元具体用于当逻辑块地址与物理块地址的映射表为动态映射表时, 根据动 态映射表, 获取所述源逻辑块地址映射的源物理块地址 ; 建立所述目的逻辑块地址与所述 源物理块地址的映射关系。 10. 根据权利要求 8 或 9 所述的存储设备, 其特征在于, 所述标记单元具体用于将所述源逻辑块地址添加一个无效标记, 以使所述主机不能根 据所述源逻辑块地址获取起始地址为所述源物理块地址的区域中所述数据长度的数据。
9、。 11. 根据权利要求 9 所述的存储设备, 其特征在于, 所述标记单元具体用于根据所述源逻辑块地址和所述动态映射表, 将所述源逻辑块地 址映射到无效物理块地址, 以使所述主机不能根据所述源逻辑块地址获取起始地址为所述 源物理块地址的区域中所述数据长度的数据。 12. 一种主机, 其特征在于, 包括 : 发送单元, 用于向存储设备发送移动命令消息, 所述移动命令消息包括源逻辑块地址、 目的逻辑块地址和待移动的数据长度, 以便所述存储设备根据所述移动命令消息, 将起始 地址为所述源逻辑块地址的区域中所述数据长度的数据拷贝至起始地址为所述目的逻辑 块地址的区域, 并将起始地址为所述源逻辑块地址的。
10、区域中所述数据长度的数据标记为无 效。 13. 一种数据移动系统, 其特征在于, 包括如权利要求 711 任一项所述的存储设备, 以 及如权利要求 12 所述的主机, 所述存储设备与所述主机通信连接。 权 利 要 求 书 CN 102929792 A 3 1/11 页 4 数据移动方法和系统、 存储设备和主机 技术领域 0001 本发明涉及计算机技术, 尤其涉及数据移动方法和系统、 存储设备和主机。 背景技术 0002 在主机访问存储设备时, 可能会将存储设备中的数据从一个区域移动到另一个区 域, 即将例如 : 将长度 L 的数据的从逻辑块地址 A 的区域移动到逻辑块地址 B 的区域, 现 有。
11、技术主要通过小型计算机系统接口 (SmallComputer System Interface ; 以下简称为 : SCSI) 协议或者高技术配置 (Advanced Technology Attachment ; 以下简称为 : ATA) 协议来 实现。 0003 其中, 通过 SCSI 协议来实现的过程为 : 主机向存储设备发出 copy 命令, 存储设备 在内部将逻辑块地址 A、 长度 L 的数据拷贝至逻辑块地址 B 的区域, 主机等待存储设备拷贝 完成后向设备发出 unmap 命令, 存储设备再将逻辑块地址 A、 长度 L 的数据标志为无效。 0004 通过ATA协议来实现的过程为 :。
12、 主机在本地分配长度L的缓冲区, 再用读命令将存 储设备逻辑块地址 A、 长度 L 的数据读到缓冲区中, 然后主机用写命令将缓冲区中的数据写 到存储设备逻辑块地址 B 的区域, 再释放缓冲区, 最后主机用 TRIM 命令通知存储设备将起 始逻辑 A、 长度 L 的数据标志为无效。 0005 在实现本发明的过程中, 发明人发现, 如果基于 SCSI 协议实现数据移动, 则主机 需要与存储设备之间进行两次交互 ; 如果基于 ATA 协议实现数据移动, 则主机需要与存储 设备之间进行三次交互 ; 从而导致主机对存储设备中数据的移动效率低下。 发明内容 0006 本发明提供一种数据移动方法和系统、 存。
13、储设备和主机, 用以使主机只向存储设 备发送一次移动命令消息, 即可实现将数据从起始地址为源逻辑块地址的区域中移动至起 始地址为目的逻辑块地址的区域的过程。 0007 第一方面, 本发明实施例提供一种数据移动方法, 包括 : 0008 接收主机发送的移动命令消息, 所述移动命令消息包括源逻辑块地址、 目的逻辑 块地址和待移动的数据长度 ; 0009 根据所述移动命令消息, 将起始地址为所述源逻辑块地址的区域中所述数据长度 的数据拷贝至起始地址为所述目的逻辑块地址的区域 ; 0010 将起始地址为所述源逻辑块地址的区域中所述数据长度的数据标记为无效。 0011 结合第一方面, 在第一方面的第一种。
14、可能的实现方式中, 当逻辑块地址与物理块 地址的映射表为静态映射表时, 所述将起始地址为所述源逻辑块地址的区域中所述数据长 度的数据拷贝至起始地址为所述目的逻辑块地址的区域包括 : 0012 根据静态映射表, 获取所述源逻辑块地址映射的源物理块地址和所述目的逻辑块 地址映射的目的物理块地址 ; 0013 在起始地址为所述源物理块地址的区域中读取所述数据长度的数据 ; 说 明 书 CN 102929792 A 4 2/11 页 5 0014 将读取的所述数据长度的数据写入至起始地址为所述目的物理块地址的区域。 0015 结合第一方面, 在第一方面的第二种可能的实现方式中, 当逻辑块地址与物理块 。
15、地址的映射表为动态映射表时, 所述将起始地址为所述源逻辑块地址的区域中所述数据长 度的数据拷贝至起始地址为所述目的逻辑块地址的区域包括 : 0016 根据动态映射表, 获取所述源逻辑块地址映射的源物理块地址 ; 0017 建立所述目的逻辑块地址与所述源物理块地址的映射关系。 0018 结合第一方面的第一种可能的实现方式或第二种可能的实现方式, 在第一方面的 第三种可能的实现方式中, 所述将起始地址为所述源逻辑块地址的区域中所述数据长度的 数据标记为无效包括 : 0019 将所述源逻辑块地址添加一个无效标记, 以使所述主机不能根据所述源逻辑块地 址获取起始地址为所述源物理块地址的区域中所述数据长。
16、度的数据。 0020 结合第一方面的第二种可能的实现方式, 在第一方面的第四种可能的实现方式 中, 所述将起始地址为所述源逻辑块地址的区域中所述数据长度的数据标记为无效包括 : 0021 根据所述源逻辑块地址和所述动态映射表, 将所述源逻辑块地址映射到无效物理 块地址, 以使所述主机不能根据所述源逻辑块地址获取起始地址为所述源物理块地址的区 域中所述数据长度的数据。 0022 第二方面, 本发明实施例还提供一种数据移动方法, 包括 : 0023 向存储设备发送移动命令消息, 所述移动命令消息包括源逻辑块地址、 目的逻辑 块地址和待移动的数据长度, 以便所述存储设备根据所述移动命令消息, 将起始。
17、地址为所 述源逻辑块地址的区域中所述数据长度的数据拷贝至起始地址为所述目的逻辑块地址的 区域, 并将起始地址为所述源逻辑块地址的区域中所述数据长度的数据标记为无效。 0024 第三方面, 本发明实施例提供一种存储设备, 包括 : 0025 接收单元, 用于接收主机发送的移动命令消息, 所述移动命令消息包括源逻辑块 地址、 目的逻辑块地址和待移动的数据长度 ; 0026 移动单元, 用于根据所述移动命令消息, 将起始地址为所述源逻辑块地址的区域 中所述数据长度的数据拷贝至起始地址为所述目的逻辑块地址的区域 ; 0027 标记单元, 用于将起始地址为所述源逻辑块地址的区域中所述数据长度的数据标 记。
18、为无效。 0028 结合第三方面, 在第三方面的第一种可能的实现方式中, 所述移动单元具体用于 当逻辑块地址与物理块地址的映射表为静态映射表时, 根据静态映射表, 获取所述源逻辑 块地址映射的源物理块地址和所述目的逻辑块地址映射的目的物理块地址 ; 在起始地址为 所述源物理块地址的区域中读取所述数据长度的数据 ; 将读取的所述数据长度的数据写入 至起始地址为所述目的物理块地址的区域。 0029 结合第三方面, 在第三方面的第二种可能的实现方式中, 所述移动单元具体用于 当逻辑块地址与物理块地址的映射表为动态映射表时, 根据动态映射表, 获取所述源逻辑 块地址映射的源物理块地址 ; 建立所述目的。
19、逻辑块地址与所述源物理块地址的映射关系。 0030 结合第三方面的第一种可能的实现方式或第二种可能的实现方式, 在第三方面的 第三种可能的实现方式中, 所述标记单元具体用于将所述源逻辑块地址添加一个无效标 记, 以使所述主机不能根据所述源逻辑块地址获取起始地址为所述源物理块地址的区域中 说 明 书 CN 102929792 A 5 3/11 页 6 所述数据长度的数据。 0031 结合第三方面的第二种可能的实现方式, 在第三方面的第四种可能的实现方式 中, 所述标记单元具体用于根据所述源逻辑块地址和所述动态映射表, 将所述源逻辑块地 址映射到无效物理块地址, 以使所述主机不能根据所述源逻辑块地。
20、址获取起始地址为所述 源物理块地址的区域中所述数据长度的数据。 0032 第四方面, 本发明实施例提供一种主机, 包括 : 0033 发送单元, 用于向存储设备发送移动命令消息, 所述移动命令消息包括源逻辑块 地址、 目的逻辑块地址和待移动的数据长度, 以便所述存储设备根据所述移动命令消息, 将 起始地址为所述源逻辑块地址的区域中所述数据长度的数据拷贝至起始地址为所述目的 逻辑块地址的区域, 并将起始地址为所述源逻辑块地址的区域中所述数据长度的数据标记 为无效。 0034 第五方面, 本发明实施例提供一种数据移动系统, 包括如上所述的存储设备, 以及 如上所述的主机, 所述存储设备与所述主机通。
21、信连接。 0035 本发明实施例提供的数据移动方法和系统、 存储设备和主机, 通过存储设备接收 主机发送的移动命令消息, 移动命令消息包括源逻辑块地址、 目的逻辑块地址和待移动的 数据长度 ; 根据移动命令消息, 将起始地址为源逻辑块地址的区域中上述数据长度的数据 拷贝至起始地址为目的逻辑块地址的区域 ; 存储设备将起始地址为源逻辑块地址的区域中 上述数据长度的数据标记为无效 ; 从而实现了将数据从起始地址为源逻辑块地址的区域中 移动至起始地址为目的逻辑块地址的区域的过程。 由于主机只向存储设备发送一次移动命 令消息, 所以主机只需要与存储设备之间进行一次交互, 提高了主机对存储设备内的数据 。
22、进行移动的效率。 附图说明 0036 为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍, 显而易见地, 下面描述中的附图是本发 明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动性的前提下, 还可以 根据这些附图获得其他的附图。 0037 图 1 为本发明数据移动方法实施例一的流程图 ; 0038 图 2 为本发明数据移动方法实施例二的流程图 ; 0039 图 3 为本发明数据移动方法实施例三的流程图 ; 0040 图 4 为本发明数据移动方法实施例四的流程图 ; 0041 图 5 为本发明应用场景实施例一的示。
23、意图 ; 0042 图 6 为本发明存储设备实施例一的结构示意图 ; 0043 图 7 为本发明主机实施例一的结构示意图 ; 0044 图 8 为本发明数据移动系统的结构示意图 ; 0045 图 9 为本发明提供的计算节点实施例一的结构示意图。 具体实施方式 0046 为使本发明实施例的目的、 技术方案和优点更加清楚, 下面将结合本发明实施例 说 明 书 CN 102929792 A 6 4/11 页 7 中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描述, 显然, 所描述的实施例是 本发明一部分实施例, 而不是全部的实施例。 基于本发明中的实施例, 本领域普通技术人员 在没有作出创。
24、造性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。 0047 图1为本发明数据移动方法实施例一的流程图, 如图1所示, 本实施例的方法可以 包括 : 0048 步骤 101、 存储设备接收主机发送的移动命令消息, 移动命令消息包括源逻辑块地 址、 目的逻辑块地址和待移动的数据长度。 0049 本实施例中, 在主机与存储设备的交互协议中引入一条专门的 “数据移动” 命令, 使得主机可以将数据移动的意图明确的通知存储设备 ; 当主机访问存储设备时, 需要将存 储设备中的数据从一个区域移动至另一区域时, 则主机向存储设备发送移动命令消息, 相 应地, 存储设备接收主机发送的该移动命令消。
25、息, 其中, 该移动命令消息中包括源逻辑块地 址、 目的逻辑块地址和待移动的数据长度。 0050 步骤 102、 存储设备根据移动命令消息, 将起始地址为源逻辑块地址的区域中上述 数据长度的数据拷贝至起始地址为目的逻辑块地址的区域。 0051 存储设备接收到主机发送的移动命令消息后, 根据移动命令消息, 获取移动命令 消息中的源逻辑块地址、 目的逻辑块地址和待移动的数据长度, 然后将起始地址为源逻辑 块地址的区域中待移动的数据长度的数据拷贝至起始地址为目的逻辑块地址的区域中。 0052 步骤 103、 存储设备将起始地址为源逻辑块地址的区域中上述数据长度的数据标 记为无效。 0053 存储设备。
26、在将待移动数据从起始地址为源逻辑块地址的区域中拷贝至起始地址 为目的逻辑块地址的区域中后, 根据移动命令消息, 再将起始地址为源逻辑块地址的区域 中待移动的数据长度数据标记为无效, 使得主机不能再通过起始地址为源逻辑块地址来获 取该待移动的数据长度的数据, 而使主机在需要获取该待移动的数据长度的数据时通过起 始逻辑地址为目的逻辑块地址来获取 ; 从而实现了将数据从起始地址为源逻辑块地址的区 域中移动至起始地址为目的逻辑块地址的区域的过程。 0054 本发明实施例一提供的数据移动方法, 存储设备通过接收主机发送的移动命令消 息, 移动命令消息包括源逻辑块地址、 目的逻辑块地址和待移动的数据长度 。
27、; 根据移动命令 消息, 将起始地址为源逻辑块地址的区域中上述数据长度的数据拷贝至起始地址为目的逻 辑块地址的区域 ; 将起始地址为源逻辑块地址的区域中上述数据长度的数据标记为无效 ; 从而实现了将数据从起始地址为源逻辑块地址的区域中移动至起始地址为目的逻辑块地 址的区域的过程。由于主机只向存储设备发送一次移动命令消息, 所以主机只需要与存储 设备之间进行一次交互, 提高了主机对存储设备内的数据进行移动的效率。 0055 图2为本发明数据移动方法实施例二的流程, 如图2所示, 本实施例的方法可以包 括 : 0056 步骤 201、 存储设备接收主机发送的移动命令消息, 移动命令消息包括源逻辑块。
28、地 址、 目的逻辑块地址和待移动的数据长度。 0057 步骤 202、 当逻辑块地址与物理块地址的映射表为静态映射表时, 存储设备根据移 动命令消息和静态映射表, 获取源逻辑块地址映射的源物理块地址和目的逻辑块地址映射 的目的物理块地址。 说 明 书 CN 102929792 A 7 5/11 页 8 0058 具体地, 在存储设备上, 逻辑块地址和物理块地址都有一定的映射关系, 即存储设 备会维护一张映射表, 其中, 该映射表中保存有逻辑块地址和物理块地址的当前映射关系, 该映射表包括静态映射表和动态映射表。 该静态映射表中保存的逻辑块地址和物理块地址 的映射关系是固定的, 在存储设备运行时。
29、不会改变。而动态映射表中保存的逻辑块地址和 物理块地址的映射关系是不固定的, 在存储设备运行时, 逻辑块地址和物理块地址的映射 关系是可以发生变化的。 0059 当逻辑块地址与物理块地址的映射表为静态映射表时, 存储设备根据移动命令消 息, 获取移动命令消息中的源逻辑块地址、 目的逻辑块地址和待移动的数据长度, 然后从静 态映射表中获取源逻辑块地址映射的物理块地址即源物理块地址, 还从静态映射表中获取 目的逻辑块地址映射的物理块地址即目的物理块地址。 0060 步骤 203、 存储设备在起始地址为源物理块地址的区域中读取上述数据长度的数 据。 0061 具体地, 存储设备根据源物理块地址找到起。
30、始地址为源物理块地址的区域, 并从 中读取待移动的数据长度的数据。 0062 步骤 204、 存储设备将读取的上述数据长度的数据写入至起始地址为目的物理块 地址的区域。 0063 具体地, 存储设备读取到待移动的数据长度的数据后, 再将所读取的待移动的数 据长度的数据写入至起始地址为目的物理块地址的区域。 0064 步骤 205、 存储设备将源逻辑块地址添加一个无效标记, 以使主机不能根据源逻辑 块地址获取起始地址为源物理块地址的区域中上述数据长度的数据。 0065 存储设备在将待移动数据写入至起始地址为目的物理块地址的区域后, 根据移动 命令消息, 再将源逻辑块地址添加一个无效标记, 以实现。
31、存储设备将起始地址为源逻辑块 地址的区域中待移动的数据长度的数据标记为无效。由于源逻辑块地址添加了无效标记, 所以主机通过起始地址为该源逻辑块地址只能获取到无效数据, 即不能通过起始地址为该 源逻辑块地址来获取该待移动的数据长度的数据, 而是使主机在需要获取该待移动的数据 长度的数据时通过起始地址为目的逻辑块地址来获取 ; 从而实现了将数据从起始地址为源 逻辑块地址的区域中移动至起始地址为目的逻辑块地址的区域的过程。 0066 需要说明的是, 在基于 ATA 协议实现数据移动, 采用本发明实施例提供的数据移 动方法, 主机无需分配和释放缓冲区, 也无需在主机和存储设备之间传输数据。 0067 。
32、本发明实施例二提供的数据移动方法, 存储设备通过接收主机发送的移动命令消 息, 移动命令消息包括源逻辑块地址、 目的逻辑块地址和待移动的数据长度 ; 当逻辑块地址 与物理块地址的映射表为静态映射表时, 存储设备根据移动命令消息和静态映射表, 获取 源逻辑块地址映射的源物理块地址和目的逻辑块地址映射的目的物理块地址 ; 在起始地址 为源物理块地址的区域中读取上述数据长度的数据 ; 将读取的上述数据长度的数据写入至 起始地址为目的物理块地址的区域 ; 将源逻辑块地址添加一个无效标记, 以使主机不能根 据源逻辑块地址获取起始地址为源物理块地址的区域中上述数据长度的数据 ; 从而实现了 将数据从起始地。
33、址为源逻辑块地址的区域中移动至起始地址为目的逻辑块地址的区域的 过程。由于主机只向存储设备发送一次移动命令消息, 所以主机只需要与存储设备之间进 行一次交互, 提高了主机对存储设备内的数据进行移动的效率。 说 明 书 CN 102929792 A 8 6/11 页 9 0068 图3为本发明数据移动方法实施例三的流程图, 如图3所示, 本实施例的方法可以 包括 : 0069 步骤 301、 存储设备接收主机发送的移动命令消息, 移动命令消息包括源逻辑块地 址、 目的逻辑块地址和待移动的数据长度。 0070 步骤 302、 当逻辑块地址与物理块地址的映射表为动态映射表时, 存储设备根据动 态映射。
34、表, 获取源逻辑块地址映射的源物理块地址。 0071 具体地, 在存储设备上, 逻辑块地址和物理块地址都有一定的映射关系, 即存储设 备会维护一张映射表, 其中, 该映射表中保存有逻辑块地址和物理块地址的当前映射关系, 该映射表包括静态映射表和动态映射表。 该静态映射表中保存的逻辑块地址和物理块地址 的映射关系是固定的, 在存储设备运行时不会改变。而动态映射表中保存的逻辑块地址和 物理块地址的映射关系是不固定的, 在存储设备运行时, 逻辑块地址和物理块地址的映射 关系是可以发生变化的。 0072 当逻辑块地址与物理块地址的映射表为动态映射表时, 存储设备根据移动命令消 息, 获取移动命令消息中。
35、的源逻辑块地址、 目的逻辑块地址和待移动的数据长度, 然后从动 态映射表中获取源逻辑块地址映射的物理块地址即源物理块地址, 还从动态映射表中获取 目的逻辑块地址映射的物理块地址即目的物理块地址。 0073 步骤 303、 存储设备建立目的逻辑块地址与源物理块地址的映射关系。 0074 具体地, 存储设备解除动态映射表中目的逻辑块地址与目的物理块地址的映射关 系, 再建立目的逻辑块地址与源物理块地址的映射关系, 并保存在该动态映射表中。 0075 步骤 304、 存储设备将起始地址为源逻辑块地址的区域中上述数据长度的数据标 记为无效。 0076 在一种可行的实现方式中, 步骤 304 可以为 :。
36、 存储设备将源逻辑块地址添加一个 无效标记, 以使主机不能根据源逻辑块地址获取起始地址为源物理块地址的区域中待移动 的数据长度的数据 ; 即存储设备不改变源逻辑块地址与源物理块地址之间的映射关系, 而 是将源逻辑块地址添加一个无效标记, 以实现存储设备将起始地址为源逻辑块地址的区域 中待移动的数据长度的数据标记为无效。由于源逻辑块地址添加了无效标记, 所以主机通 过始起地址为该源逻辑块地址只能获取到无效数据, 即不能通过起始地址为该源逻辑块地 址来获取该待移动的数据长度的数据, 而是使主机在需要获取该待移动的数据长度的数据 时通过起始地址为目的逻辑块地址来获取 ; 从而实现了将数据从起始地址为。
37、源逻辑块地址 的区域中移动至起始地址为目的逻辑块地址的区域的过程。 0077 在另一种可行的实现方式中, 步骤 304 可以为 : 存储设备根据源逻辑块地址和动 态映射表, 将源逻辑块地址映射到无效物理块地址, 以使主机不能根据源逻辑块地址获取 起始地址为源物理块地址的区域中上述数据长度的数据。具体地, 存储设备解除动态映射 表中源逻辑块地址与源物理块地址的映射关系, 再建立源逻辑块地址与无效物理块地址的 映射关系, 并保存在该动态映射表中, 所以主机通过起始地址为源逻辑块地址获取数据时, 只能获取到源逻辑块地址映射的无效物理块地址的区域中的数据, 而无效物理块地址是一 个无效地址, 所以主机。
38、是不能通过起始地址为源逻辑块地址来获取数据, 而是使主机在需 要获取该待移动的数据长度的数据时通过起始地址为目的逻辑块地址来获取 ; 从而实现了 将数据从起始地址为源逻辑块地址的区域中移动至起始地址为目的逻辑块地址的区域的 说 明 书 CN 102929792 A 9 7/11 页 10 过程。 0078 需要说明的是, 在基于 ATA 协议实现数据移动时, 采用本发明实施例提供的数据 移动方法, 主机无需分配和释放缓冲区, 也无需在主机和存储设备之间传输数据。 0079 本发明实施例三提供的数据移动方法, 存储设备通过接收主机发送的移动命令消 息, 移动命令消息包括源逻辑块地址、 目的逻辑块。
39、地址和待移动的数据长度 ; 当逻辑块地址 与物理块地址的映射表为动态映射表时, 存储设备根据动态映射表, 获取源逻辑块地址映 射的源物理块地址 ; 建立目的逻辑块地址与源物理块地址的映射关系 ; 将起始地址为源逻 辑块地址的区域中上述数据长度的数据标记为无效 ; 从而实现了将数据从起始地址为源逻 辑块地址的区域中移动至起始地址为目的逻辑块地址的区域的过程。 由于主机只向存储设 备发送一次移动命令消息, 所以主机只需要与存储设备之间进行一次交互, 提高了主机对 存储设备内的数据进行移动的效率。 进一步地, 存储设备通过修改映射表来实现数据移动, 使得数据移动操作过程简单、 可靠, 进一步提高了数。
40、据移动的效率, 同时, 不需要对数据进 行读写操作, 降低了存储设备的损耗。 0080 图4为本发明数据移动方法实施例四的流程图, 如图4所示, 本实施例的方法可以 包括 : 0081 步骤 401、 主机向存储设备发送移动命令消息, 移动命令消息包括源逻辑块地址、 目的逻辑块地址和待移动的数据长度, 以便存储设备根据移动命令消息, 将起始地址为源 逻辑块地址的区域中上述数据长度的数据拷贝至起始地址为目的逻辑块地址的区域, 并将 起始地址为源逻辑块地址的区域中上述数据长度的数据标记为无效。 0082 本实施例中, 在主机与存储设备的交互协议中引入一条专门的 “数据移动” 命令, 使得主机可以将。
41、数据移动的意图明确的通知存储设备 ; 当主机访问存储设备时, 需要将存 储设备中的数据从起始地址为源逻辑块地址的区域移动至起始地址为目的逻辑块地址的 区域时, 则主机向存储设备发送移动命令消息, 其中, 该移动命令消息中包括源逻辑块地 址、 目的逻辑块地址和待移动的数据长度 ; 相应地, 存储设备接收主机发送的该移动命令消 息, 根据移动命令消息, 将起始地址为源逻辑块地址的区域中待移动的数据长度的数据拷 贝至起始地址为目的逻辑块地址的区域, 并将起始地址为源逻辑块地址的区域中待移动的 数据长度的数据标记为无效, 使得主机不能再通过起始地址为源逻辑块地址来获取该待移 动的数据长度的数据, 而是。
42、使主机在需要获取该待移动的数据长度的数据时通过起始逻辑 地址为目的逻辑块地址来获取 ; 从而实现了将数据从起始地址为源逻辑块地址的区域中移 动至起始地址为目的逻辑块地址的区域的过程。 0083 本发明实施例四提供的数据移动方法, 通过主机向存储设备发送移动命令消息, 移动命令消息包括源逻辑块地址、 目的逻辑块地址和待移动的数据长度, 以便存储设备根 据移动命令消息, 将起始地址为源逻辑块地址的区域中上述数据长度的数据拷贝至起始地 址为目的逻辑块地址的区域, 并将起始地址为源逻辑块地址的区域中上述数据长度的数据 标记为无效 ; 从而实现了将数据从起始地址为源逻辑块地址的区域中移动至起始地址为目 。
43、的逻辑块地址的区域的过程。由于主机只向存储设备发送一次移动命令消息, 所以主机只 需要与存储设备之间进行一次交互, 提高了主机对存储设备内的数据进行移动的效率。 0084 本发明图 1 图 4 所示实施例提供的方法, 可以用于图 5 所示的应用场景中, 图 5 为本发明应用场景实施例一的示意图, 图 5 所示的应用场景中包括存储设备和主机。 说 明 书 CN 102929792 A 10 8/11 页 11 0085 具体地, 主机向存储设备发送移动命令消息, 该移动命令消息包括源逻辑块地址、 目的逻辑块地址和待移动的数据长度。存储设备接收主机发送的移动命令消息之后, 根据 移动命令消息, 将。
44、起始地址为源逻辑块地址的区域中上述数据长度的数据拷贝至起始地址 为目的逻辑块地址的区域。 然后该存储设备将起始地址为源逻辑块地址的区域中上述数据 长度的数据标记为无效 ; 从而实现了将数据从起始地址为源逻辑块地址的区域中移动至起 始地址为目的逻辑块地址的区域的过程。由于主机只向存储设备发送一次移动命令消息, 所以主机只需要与存储设备之间进行一次交互, 提高了主机对存储设备内的数据进行移动 的效率。 0086 需要说明的是, 在上述各实施例的基础上, 进一步地, 在一种可行的实现方式中, 存储设备在完成将起始地址为源逻辑块地址的区域中待移动的数据长度的数据标记为无 效之后, 主动向主机发送数据移。
45、动成功响应, 主机接收到该数据移动成功响应后, 可获知数 据移动过程已成功完成 ; 或者, 存储设备中数据移动过程失败后, 存储设备主动向主机发送 数据移动失败响应, 该数据移动失败响应中携带有失败原因, 主机接收到该数据移动失败 响应后, 根据失败原因执行相应的操作。 0087 在另一种可行的实现方式中, 主机在发送完移动命令消息, 等待一段时间后主动 向存储设备发送查询命令消息, 存储设备接收到该查询命令消息, 向主机发送查询响应, 该 查询响应用以向主机反馈正在进行数据移动或者数据移动成功或者数据移动失败。 如果存 储设备中的数据移动过程还未完成, 则存储设备向主机发送数据移动正在进行响。
46、应, 主机 接收到该数据移动正在进行响应, 再等待一段时间后主动向存储设备发送查询命令消息 ; 如果存储设备中数据移动过程已经成功完成, 则存储设备向主机发送数据移动成功响应, 主机接收到该数据移动成功响应后, 可获知数据移动过程已成功完成 ; 如果存储设备中数 据移动过程失败, 则存储设备向主机发送数据移动失败响应, 该数据移动失败响应中携带 有失败原因, 主机接收到该数据移动失败响应后, 根据失败原因执行相应的操作, 本领域普 通技术人员可以理解此过程为现有技术, 本发明在此不再赘述。 0088 图6为本发明存储设备实施例一的结构示意图, 如图6所示, 本实施例的存储设备 可以包括 : 接。
47、收单元 11、 移动单元 12 和标记单元 13, 其中, 接收单元 11 用于接收主机发送 的移动命令消息, 移动命令消息包括源逻辑块地址、 目的逻辑块地址和待移动的数据长度 ; 移动单元 12 用于根据移动命令消息, 将起始地址为源逻辑块地址的区域中上述数据长度 的数据拷贝至起始地址为目的逻辑块地址的区域 ; 标记单元 13 用于将起始地址为源逻辑 块地址的区域中上述数据长度的数据标记为无效。 0089 本实施例的存储设备, 可以用于执行图 1 所示方法实施例的技术方案, 其实现原 理类似, 详细可以参见上述实施例的记载, 此处不再赘述。 0090 本发明实施例一提供的存储设备, 通过接收。
48、单元接收主机发送的移动命令消息, 移动命令消息包括源逻辑块地址、 目的逻辑块地址和待移动的数据长度 ; 移动单元根据移 动命令消息, 将起始地址为源逻辑块地址的区域中上述数据长度的数据拷贝至起始地址为 目的逻辑块地址的区域 ; 标记单元将起始地址为源逻辑块地址的区域中上述数据长度的数 据标记为无效, 从而实现了将数据从起始地址为源逻辑块地址的区域中移动至起始地址为 目的逻辑块地址的区域的过程。由于主机只向存储设备发送一次移动命令消息, 所以主机 只需要与存储设备之间进行一次交互, 提高了主机对存储设备内的数据进行移动的效率。 说 明 书 CN 102929792 A 11 9/11 页 12 。
49、0091 在本发明存储设备实施例二中, 在图 6 所示存储设备结构的基础上, 上述的移动 单元 12 具体用于当逻辑块地址与物理块地址的映射表为静态映射表时, 根据静态映射表, 获取源逻辑块地址映射的源物理块地址和目的逻辑块地址映射的目的物理块地址 ; 在起始 地址为源物理块地址的区域中读取上述数据长度的数据 ; 将读取的上述数据长度的数据写 入至起始地址为目的物理块地址的区域。上述的标记单元 13 具体用于将源逻辑块地址添 加一个无效标记, 以使主机不能根据源逻辑块地址获取起始地址为源物理块地址的区域中 上述数据长度的数据。 0092 本实施例的存储设备, 可以用于执行图 2 所示方法实施例的技术方案, 其实现原 理类似, 详细可以参见上述实施例的记载, 此处不再赘述。 0093 本发明实施例二提供的存储设备, 通过接收单元接收主机发送的移动命令消息, 移动命令消息包括源逻辑块地址、 目的逻辑块地址和待移动的数。