《管理对在存储器件之间迁移的磁道延伸区的写入操作.pdf》由会员分享,可在线阅读,更多相关《管理对在存储器件之间迁移的磁道延伸区的写入操作.pdf(19页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102884502 A (43)申请公布日 2013.01.16 C N 1 0 2 8 8 4 5 0 2 A *CN102884502A* (21)申请号 201180022683.5 (22)申请日 2011.05.09 12/784,427 2010.05.20 US G06F 3/06(2006.01) (71)申请人国际商业机器公司 地址美国纽约 (72)发明人 D蒙特戈梅利 (74)专利代理机构北京市中咨律师事务所 11247 代理人于静 张亚非 (54) 发明名称 管理对在存储器件之间迁移的磁道延伸区的 写入操作 (57) 摘要 提供了一种用于管理对在。
2、存储器件之间迁移 的磁道延伸区的写入操作的计算机程序产品、系 统以及方法。处理将磁道延伸区从第二存储器迁 移到第一存储器的操作。判定对于要迁移的延伸 区是否存在延伸区对象。如果所述延伸区在先前 时间预先被从所述第一存储器迁移到所述第二存 储器,则所述延伸区对象存在。对于每个磁道,所 述延伸区对象包括写入指示符,指示当所述延伸 区被预先迁移到所述第二存储器时,自所述先前 时间以来是否已在所述第二存储器中更新该磁 道。响应于判定所述延伸区对象存在,确定所述延 伸区中具有这样的写入指示符的磁道:所述写入 指示符指示自所述先前时间以来已在所述第二存 储器中更新该磁道。将所确定的磁道的数据从所 述第二存。
3、储器复制到所述第一存储器中的空闲位 置。对于每个所确定的磁道,在所述延伸区对象中 更新所确定的磁道的表项,以将该磁道的数据被 复制到的空闲位置指示为该磁道的有效地址。 (30)优先权数据 (85)PCT申请进入国家阶段日 2012.11.06 (86)PCT申请的申请数据 PCT/EP2011/057398 2011.05.09 (87)PCT申请的公布数据 WO2011/144477 EN 2011.11.24 (51)Int.Cl. 权利要求书5页 说明书8页 附图5页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 5 页 说明书 8 页 附图 5 页 1/5页 。
4、2 1.一种用于管理第一存储器与第二存储器中的数据的方法,所述方法包括以下步骤: 处理将磁道延伸区从所述第二存储器迁移到所述第一存储器的操作; 判定对于要迁移的延伸区是否存在延伸区对象,其中如果所述延伸区在先前时间预先 被从所述第一存储器迁移到所述第二存储器,则所述延伸区对象存在,并且其中对于每个 磁道,所述延伸区对象包括写入指示符,指示当所述延伸区被预先迁移到所述第二存储器 时,自所述先前时间以来是否已在所述第二存储器中更新该磁道;及 响应于判定所述延伸区对象存在而执行以下步骤: 确定所述延伸区中具有这样的写入指示符的磁道:所述写入指示符指示自所述先前时 间以来已在所述第二存储器中更新该磁道。
5、; 将所确定的磁道的数据从所述第二存储器复制到所述第一存储器中的空闲位置;及 对于每个所确定的磁道,在所述延伸区对象中更新所确定的磁道的表项,以将该磁道 的数据被复制到的空闲位置指示为该磁道的有效地址。 2.如权利要求1的方法,其中所述延伸区对象维护所述第一存储器中的磁道数据的先 前版本的信息,其中对于具有至少一个先前版本的每个磁道,该磁道的表项包括每个先前 版本的先前版本地址,所述先前版本地址指示该磁道的该先前版本的数据在所述第一存储 器中的位置,其中所述方法还包括以下步骤: 对于每个所确定的磁道,将新的先前版本地址设置成该磁道的有效地址,然后更新该 有效地址以指示来自所述第二存储器的数据被。
6、复制到的空闲位置。 3.如权利要求1或2的方法,还包括: 提供包括固态存储器件的所述第一存储器;以及 提供包括具有慢于所述固态存储器件的输入/输出存取规范的存储器件类型的所述 第二存储器。 4.如任一上述权利要求的方法,其中所述第二存储器将磁道连续存储在所述延伸区 中,并且其中所述方法还包括:将所述第二存储器中的已修改磁道复制到所述第一存储器 中与所述延伸区内的未修改磁道有关的非相邻位置。 5.如任一上述权利要求的方法,其中每个表项包括:从所述有效地址中标识的磁道数 据计算的有效校验和值,并且所述有效校验和值用于在所述第一存储器中维护的磁道的至 少一个先前版本;所述第一存储器中的磁道的先前版本。
7、的先前版本地址;以及从所述先前 版本地址中标识的磁道数据计算的先前版本校验和值,其中所述方法还包括以下步骤: 接收对所述第一存储器中存在的延伸区中的目标磁道的写入; 从针对所述目标磁道的写入计算暂时校验和; 判定所述暂时校验和是否匹配所述有效校验和、或是否匹配所述目标磁道的延伸区对 象中的表项内的至少一个先前版本校验和中的一个; 使用所述有效地址或所述先前版本地址以及对应有效或先前版本校验和,所述有效或 先前版本校验和匹配所述有效地址的所述暂时校验和以及所述目标磁道的所述延伸区对 象中的所述表项的有效校验和;及 响应于判定所述暂时校验和不匹配所述有效校验和或不匹配所述至少一个先前版本 校验和中。
8、的任一个,将对所述目标磁道的写入操作写入到所述第一存储器中的空闲位置。 6.如权利要求5的方法,其中响应于判定所述暂时校验和匹配所述有效校验和或匹配 权 利 要 求 书CN 102884502 A 2/5页 3 所述至少一个先前版本校验和中的一个,对所述目标磁道的写入的写入步骤不写入所述第 一存储器。 7.如权利要求5或6的方法,其中使用所述有效地址或所述先前版本地址以及匹配所 述暂时校验和的对应校验和的步骤包括: 响应于判定所述暂时校验和匹配所述有效校验和或匹配所述至少一个先前版本校验 和中的一个而返回写入完成;及 响应于判定所述暂时校验和匹配所述至少一个先前版本校验和中的一个,执行以下步 。
9、骤: 针对匹配的先前版本校验和而缓冲所述先前版本地址与所述先前版本校验和; 将新的先前版本地址与新的先前版本校验和设置成所述有效地址与所述有效校验和 的值;及 在设置所述新的先前版本地址与所述新的先前版本校验和之后,分别将所述有效地址 与所述有效校验和设置成所缓冲的先前版本地址与所述先前版本校验和。 8.如任一上述权利要求的方法,其中每个表项包括:从所述有效地址中标识的磁道数 据计算的有效校验和值,并且所述有效校验和值用于在所述第一存储器中维护的磁道的至 少一个先前版本;所述第一存储器中的磁道的先前版本的先前版本地址;以及从所述先前 版本地址中标识的磁道数据计算的先前版本校验和值,其中所述方法。
10、还包括以下步骤: 接收对所述第二存储器中存在的延伸区中的目标磁道的写入; 从针对所述目标磁道的写入计算暂时校验和; 判定所述暂时校验和是否匹配所述有效校验和、或是否匹配所述目标磁道的延伸区对 象中的表项内的至少一个先前版本校验和中的一个; 响应于判定匹配,使用所述有效地址或所述先前版本地址以及对应有效或先前版本校 验和,所述有效或先前版本校验和匹配所述有效地址的所述暂时校验和以及所述目标磁道 的所述延伸区对象中的所述表项的有效校验和。 9.如权利要求8的方法,所述方法还包括以下步骤: 设置所述延伸区对象中的目标磁道的所述表项内的所述指示符,以指示已响应于判定 所述暂时校验和不匹配所述有效校验和。
11、或不匹配所述至少一个先前版本校验和中的一个 而在所述第二存储器中更新该磁道,其中所述指示符指示所述第一存储器中的所述有效地 址处的所述目标磁道的数据不是在所述第二存储器中维护的磁道数据的最新版本。 10.如权利要求8或9的方法,所述方法还包括以下步骤: 响应于判定所述暂时校验和匹配所述至少一个先前版本校验和中的一个,执行以下步 骤: 针对匹配的先前版本校验和而缓冲所述先前版本地址与所述先前版本校验和; 将新的先前版本地址与新的先前版本校验和分别设置成所述有效地址与所述有效校 验和的值;及 在设置所述新的先前版本地址与所述新的先前版本校验和之后,分别将所述有效地址 与所述有效校验和设置成所缓冲的。
12、先前版本地址与所缓冲的先前版本校验和。 11.如任一上述权利要求的方法,其中每个表项包括多个列,所述多个列包括:在有效 校验和列中的有效校验和值,其从有效地址列中的有效地址内标识的磁道数据来计算,且 权 利 要 求 书CN 102884502 A 3/5页 4 用于在所述第一存储器中维护的磁道的至少一个先前版本;先前版本地址列,其具有所述 第一存储器中的磁道的先前版本的地址;以及先前版本校验和列,其具有从所述先前版本 地址处的磁道数据计算的校验和值,其中所述方法还包括以下步骤: 接收对所述第一存储器或所述第二存储器中存在的延伸区中的目标磁道的写入; 从针对所述目标磁道的写入计算暂时校验和; 判。
13、定所述暂时校验和是否匹配所述目标磁道的延伸区对象中的表项内的所述至少一 个先前版本校验和中的一个; 将所述先前版本地址与匹配所述暂时校验和的对应先前版本校验和写入到所述目标 磁道的延伸区对象中的所述表项的所述有效地址列与所述有效校验和列;及 移位版本早于所述先前版本地址的版本且校验和被写入到所述有效地址列与所述有 效校验和列的任何先前地址列与先前校验和列,以覆写包括所述先前版本地址与写入到所 述有效地址列与所述有效校验和列的对应先前版本校验和的所述先前地址列与所述先前 校验和列。 12.一种与第一存储器及第二存储器通信的系统,所述系统包括: 处理器; 内存,其包括由所述处理器执行的代码以执行操。
14、作,所述系统包括: 处理部件,用于处理将磁道延伸区从所述第二存储器迁移到所述第一存储器的操作; 判定部件,用于判定对于要迁移的延伸区是否存在延伸区对象,其中如果所述延伸区 在先前时间预先被从所述第一存储器迁移到所述第二存储器,则所述延伸区对象存在,并 且其中对于每个磁道,所述延伸区对象包括写入指示符,指示当所述延伸区被预先迁移到 所述第二存储器时,自所述先前时间以来是否已在所述第二存储器中更新该磁道;以及 响应于判定所述延伸区对象存在: 所述判定部件还可操作以确定所述延伸区中具有这样的写入指示符的磁道:所述写入 指示符指示自所述先前时间以来已在所述第二存储器中更新该磁道; 复制部件,用于将所确。
15、定的磁道的数据从所述第二存储器复制到所述第一存储器中的 空闲位置;以及 更新部件,对于每个所确定的磁道,所述更新部件用于在所述延伸区对象中更新所确 定的磁道的表项,以将该磁道的数据被复制到的空闲位置指示为该磁道的有效地址。 13.如权利要求12的系统,其中所述延伸区对象维护所述第一存储器中的磁道数据的 先前版本的信息,其中对于具有至少一个先前版本的每个磁道,该磁道的表项包括每个先 前版本的先前版本地址,所述先前版本地址指示该磁道的该先前版本的数据在所述第一存 储器中的位置,其中所述系统还包括: 设置部件,对于每个所确定的磁道,所述设置部件将新的先前版本地址设置成该磁道 的有效地址,然后更新该有。
16、效地址以指示来自所述第二存储器的数据被复制到的空闲位 置。 14.如权利要求12或13的系统,其中所述第一存储器包括固态存储器件,并且其中所 述第二存储器包括具有慢于所述固态存储器件的输入/输出存取规范的存储器件类型。 15.如权利要求12至14中的任一权利要求的系统,其中每个表项包括:从所述有效 地址中标识的磁道数据计算的有效校验和值,并且所述有效校验和值用于在所述第一存储 权 利 要 求 书CN 102884502 A 4/5页 5 器中维护的磁道的至少一个先前版本;所述第一存储器中的磁道的先前版本的先前版本地 址;以及从所述先前版本地址中标识的磁道数据计算的先前版本校验和值,其中所述系统。
17、 还包括: 接收部件,用于接收对所述第一存储器中存在的延伸区中的目标磁道的写入; 计算部件,用于从针对所述目标磁道的写入计算暂时校验和; 所述判定部件,其还可操作以判定所述暂时校验和是否匹配所述有效校验和、或是否 匹配所述目标磁道的延伸区对象中的表项内的至少一个先前版本校验和中的一个; 使用部件,用于使用所述有效地址或所述先前版本地址以及对应有效或先前版本校验 和,所述有效或先前版本校验和匹配所述有效地址的所述暂时校验和以及所述目标磁道的 所述延伸区对象中的所述表项的有效校验和;以及 写入部件,用于响应于判定所述暂时校验和不匹配所述有效校验和或不匹配所述至少 一个先前版本校验和中的任一个,将对。
18、所述目标磁道的写入操作写入到所述第一存储器中 的空闲位置 16.如权利要求12至14中的任一权利要求的系统,其中每个表项包括:从所述有效 地址中标识的磁道数据计算的有效校验和值,并且所述有效校验和值用于在所述第一存储 器中维护的磁道的至少一个先前版本;所述第一存储器中的磁道的先前版本的先前版本地 址;以及从所述先前版本地址中标识的磁道数据计算的先前版本校验和值,其中所述系统 还包括: 接收部件,用于接收对所述第二存储器中存在的延伸区中的目标磁道的写入; 计算部件,用于从针对所述目标磁道的写入计算暂时校验和; 所述判定部件,其还可操作以判定所述暂时校验和是否匹配所述有效校验和、或是否 匹配所述目。
19、标磁道的延伸区对象中的表项内的至少一个先前版本校验和中的一个; 使用部件,用于响应于判定匹配而使用所述有效地址或所述先前版本地址以及对应有 效或先前版本校验和,所述有效或先前版本校验和匹配所述有效地址的所述暂时校验和以 及所述目标磁道的所述延伸区对象中的所述表项的有效校验和。 17.如权利要求12至14中的任一权利要求的系统,其中每个表项包括多个列,所述多 个列包括:在有效校验和列中的有效校验和值,其从有效地址列中的有效地址内标识的磁 道数据来计算,且用于在所述第一存储器中维护的磁道的至少一个先前版本;先前版本地 址列,其具有所述第一存储器中的磁道的先前版本的地址;以及先前版本校验和列,其具有。
20、 从所述先前版本地址处的磁道数据计算的校验和值,其中所述系统还包括: 接收部件,用于接收对所述第一存储器或所述第二存储器中存在的延伸区中的目标磁 道的写入; 计算部件,用于从针对所述目标磁道的写入计算暂时校验和; 判定部件,用于判定所述暂时校验和是否匹配所述目标磁道的延伸区对象中的表项内 的所述至少一个先前版本校验和中的一个; 写入部件,用于将所述先前版本地址与匹配所述暂时校验和的对应先前版本校验和写 入到所述目标磁道的延伸区对象中的所述表项的所述有效地址列与所述有效校验和列;及 移位部件,用于移位版本早于所述先前版本地址的版本且校验和被写入到所述有效地 址列与所述有效校验和列的任何先前地址列。
21、与先前校验和列,以覆写包括所述先前版本地 权 利 要 求 书CN 102884502 A 5/5页 6 址与写入到所述有效地址列与所述有效校验和列的对应先前版本校验和的所述先前地址 列与所述先前校验和列。 18.一种用于管理第一存储器与第二存储器中的数据的计算机程序产品,所述计算机 程序产品包括: 计算机可读存储介质,其可由处理电路读取并存储由所述处理电路执行以便执行如权 利要求1至11中的任一权利要求的方法的指令。 19.一种计算机程序,所述计算机程序存储在计算机可读介质上并可载入数字计算机 的内部内存,所述计算机程序包括软件代码部分,当所述程序在计算机上运行时,所述软件 代码部分用于执行如。
22、权利要求1至11中的任一权利要求的方法。 权 利 要 求 书CN 102884502 A 1/8页 7 管理对在存储器件之间迁移的磁道延伸区的写入操作 技术领域 0001 本发明涉及一种用于管理对在存储器件之间迁移的磁道延伸区(extents oftracks)的写入操作的方法、系统以及计算机程序产品。 背景技术 0002 在层级存储环境中,磁道延伸区可在诸如硬盘驱动器、固态存储器件之类的不同 存储器件层之间迁移,这取决于存储器件的特征与存取频率和数据优先级。例如,较常存取 的延伸区和/或较高优先级的延伸区可从较慢存取层迁移到较快存取层,而不常存取的延 伸区和/或较低优先级的延伸区可迁移到较慢。
23、存取层。 0003 在当前层级存储环境中,在给定时段内在上层/池和下层/池之间多次来回迁移 延伸区。在此前提下,下层将升级给定延伸区,而不会认识到该延伸区在整体或部分上仍在 上层中保持未被修改。当迁移延伸区时,可能将来自延伸区的所有数据从一个存储器件复 制到另一个存储器件。此类迁移将花费大量时间。 0004 在当前分层存储架构中,上层可包含从先前降级的延伸区到下层的旧的未修改 (冗余)区(tracts),其可用作第二级缓存。当前解决方案的主要缺点是效率较低,因为固态 存储器件(SSD)驱动器的读取性能显著高于硬盘驱动器的读取性能。 0005 从已被停止供电的硬盘驱动器不必要地读取数据还会: 0。
24、006 缩短硬盘的寿命 0007 降低电源效率 0008 增加数据请求的存取时间,因为必须首先为驱动器供电 0009 本领域中需要用于在存储器件之间迁移磁道延伸区并解决上述问题的改进的技 术。 发明内容 0010 提供了一种用于管理对在存储器件之间迁移的磁道延伸区的写入操作的计算机 程序、计算机程序产品、系统以及方法。处理将磁道延伸区从第二存储器迁移到第一存储器 的操作。判定对于要迁移的延伸区是否存在延伸区对象。如果所述延伸区在先前时间预先 被从所述第一存储器迁移到所述第二存储器,则所述延伸区对象存在。对于每个磁道,所述 延伸区对象包括写入指示符,指示当所述延伸区被预先迁移到所述第二存储器时,。
25、自所述 先前时间以来是否已在所述第二存储器中更新该磁道。响应于判定所述延伸区对象存在, 确定所述延伸区中具有这样的写入指示符的磁道:所述写入指示符指示自所述先前时间以 来已在所述第二存储器中更新该磁道。将所确定的磁道的数据从所述第二存储器复制到所 述第一存储器中的空闲位置。对于每个所确定的磁道,在所述延伸区对象中更新所确定的 磁道的表项,以将该磁道的数据被复制到的空闲位置指示为该磁道的有效地址。 附图说明 说 明 书CN 102884502 A 2/8页 8 0011 现在将仅通过实例的方式参考附图中所示的优选实施例描述本发明,这些附图 是: 0012 图1示出根据现有技术并且其中可实现本发明。
26、的一个优选实施例的计算环境的 一个实施例; 0013 图2示出根据本发明的一个优选实施例的延伸区对象中的表项的一个实施例; 0014 图3示出根据本发明的一个优选实施例的作为延伸区表的延伸区对象的一个实 施例; 0015 图4示出根据本发明的一个优选实施例的将延伸区从第二存储器迁移至第一存 储器的操作的一个实施例; 0016 图5示出根据本发明的一个优选实施例的用于处理对第一存储器中存在的延伸 区中的磁道的写入请求的操作的一个实施例; 0017 图6示出根据本发明的一个优选实施例的用于处理对第二存储器中存在的延伸 区中的磁道的写入请求的操作的一个实施例。 具体实施方式 0018 图1示出在第一。
27、存储器4与第二存储器6中存储数据磁道的服务器2的一个实施 例。服务器2包括处理器8,处理器8包括一个或多个处理器器件与内存10,在内存10中, 加载操作系统12以由处理器8执行。操作系统12包括延伸区迁移代码14,以管理在第一 存储器4与第二存储器6之间由延伸区对象16所表示的磁道延伸区的迁移。磁道延伸区 可以在第一存储器4或第二存储器6之一中是有效的,并可在第一存储器4与第二存储器 6之间迁移。 0019 服务器2可以以循环架构等,通过存储接口的单独电缆在网络上与第一存储器4 和第二存储器6通信。第一存储器4与第二存储器6可包括不同类型的存储器件,诸如固态 存储器件(SSD),其包含固态电子。
28、器件,诸如电可擦除可编程只读存储器(EEPROM)、闪存、 快闪磁盘(FlashDisk)、随机存取内存(RAM)驱动器、存储级内存(SCM)等、磁性存储盘、光 盘、磁带等。内存8可包括一个或多个易失性或非易失性内存器件。延伸区迁移代码14可 以备选地实施为操作系统12外部的应用代码,或可以以硬件逻辑实施,诸如专用集成电路 (ASIC)、或计算机可读存储介质中的可编程处理器执行代码。 0020 在一个实施例中,第一存储器4与第二存储器6可包括存储器件层级配置内的存 储层,其中层基于诸如输入/输出(I/O)存取规范(profile)速度、冗余之类的特征来定义 存储器。例如,第一存储器4可包括高速。
29、存储器,诸如SSD或RAM驱动器,且第二存储器6 可包括较慢存取存储器,诸如硬盘驱动器或磁带介质。采用本领域中公知的层级管理存储 技术,操作系统12可调用延伸区迁移代码14,以将较不常被存取和/或具有较低优先级的 延伸区从第一存储器4迁移至第二存储器6,并将较常被存取和/或较高优先级的磁道延伸 区从第二存储器6迁移至第一存储器4。除了数据存取频率与数据优先级之外的数据特征 可用来判定是否要在存储层级的较高与较低层存储器件之间迁移延伸区。 0021 在特定实施例中,延伸区对象16标识在第二存储器6中连续存储的磁道,这在第 二存储器6包括对于介质中连续存储磁道具有改进的读取/写入存取的存储器件(诸。
30、如硬 盘驱动器与磁带驱动器)的实施例中是有利的。但是,延伸区中的磁道数据可能未连续存储 说 明 书CN 102884502 A 3/8页 9 在第一存储器内,所述第一存储器可包括未改进连续存储磁道存取的存储器件,诸如固态 存储器件(SSD)或随机存取内存(RAM)驱动器。 0022 延伸区对象16包括在一个延伸区内管理的每个磁道的表项。每个磁道可包括相 同大小的单个数据单元。服务器2可在第一存储器4与第二存储器6中,维护服务器2管 理的每个单独延伸区的多个延伸区对象16。另外,可存在额外的存储器件,使得服务器2可 在两个以上存储器中管理磁道延伸区的迁移,其中不同存储器可具有不同I/O存取规范。。
31、 0023 图2示出延伸区对象16中的表项50的一个实施例,所述表项提供有关延伸区中 的一个磁道的信息。磁道标识符(ID)52标识延伸区中的磁道。修改指示符54指示当延伸 区与磁道预先从第一存储器4迁移至第二存储器6时,自先前时间以来,是否已在第二存储 器6中更新该磁道,因此指示当第二存储器6上存在磁道与延伸区时,第一存储器4是否具 有磁道的最新版本。有效地址56指示第一存储器4中具有第二存储器6中的磁道的最新 版本的地址。有效校验和58包括从有效地址56处的数据计算的校验和值。所述校验和值 可利用本领域中公知的校验和或散列算法计算,以确定数据的独特或可能独特的表示。如 果修改指示符52指示已。
32、在第二存储器6更新磁道且第一存储器4没有最新数据版本,则由 于在第二存储器6处的更近的更新,有效地址56所标识的数据不包括有效版本,而是包括 先前版本。 0024 在特定实施例中,可将数据更新写入第一存储器4中的新的空闲位置。在此情况 下,磁道的延伸区表项50可维护第一存储器4中存储的磁道的每个先前版本a.n的先前 版本地址60 1 60 n 以及从磁道的先前版本计算的先前版本校验和62 1 62 n 。延伸区表 80中的先前版本地址60 1 .60 n 的顺序可指示先前版本的年龄,其中最新的先前版本地址 是第一个,即60 1 ,最旧的先前版本地址为最后一个,即60 n 。服务器2可基于各种因。
33、素(诸如 可用空间、预定的版本限制数、可用来存储先前版本的预定空间等)限制在第一存储器4中 所维护的数据版本数。 0025 在第一存储器4包括SSD的实施例中,当更新时常存取的逻辑地址时,作为称为写 入平衡(Wear Leveling)的过程的一部分,将最近写入的数据写入到第一存储器4中的新 的实际位置以跨存储器件分散写入,这将延长固态存储器件的寿命。持续写入到固态器件 的同一物理位置会损耗固态存储器件中的存储块。 0026 图3示出实现为延伸区表80的延伸区对象的一个实例,所述延伸区表对于每个磁 道具有一个行,并且各列提供有关延伸区对象的信息。 0027 图4示出在延伸区迁移代码14中实施的。
34、操作的一个实施例,此操作使延伸区从第 二存储器6迁移或升级到第一存储器4。在处理迁移延伸区的请求(步骤100)后,判定(步 骤102)要迁移磁道的延伸区的延伸区对象16是否存在。如果否,则延伸区迁移代码14进 行步骤104,以创建延伸区的新延伸区对象16,并清除每个延伸区表项50(图2)的修改指示 符54,以指示未在第二存储器2中修改数据。对于在延伸区16的每个磁道,延伸区迁移代 码14对延伸区中每个磁道执行操作循环(步骤106-114)。对于每个磁道,将磁道从第二存 储器6复制到第一存储器4中的空闲位置(步骤108)。延伸区迁移代码14计算(步骤110) 所复制磁道的校验和,并将磁道的有效地。
35、址56设置(步骤112)成第一存储器4中该磁道被 复制到的空闲位置;且将有效校验和58设置成所计算的校验和值。在初次将延伸区升级及 迁移到第一存储器4时,执行步骤104-114的操作。 说 明 书CN 102884502 A 4/8页 10 0028 如果(步骤102)对于正在升级的延伸区,延伸区对象16已存在,则该延伸区预先 被从第一存储器4迁移到第二存储器6,且在步骤116至128对延伸区中每个磁道执行循 环,以从第二存储器6迁移或升级到第一存储器4。如果(步骤118)所考虑磁道的修改指示 符54指示磁道未在第二存储器6中更新,则不对磁道执行任何操作且不会复制数据,因为 数据并未改变。如果。
36、(步骤118)磁道的修改指示符54指示磁道已被修改,则将磁道的数据 从第二存储器6复制(步骤120)到第一存储器4中的空闲位置。将磁道的新的先前版本地 址设置成当前有效地址56,使磁道的当前数据成为先前版本,且将磁道的新的先前版本校 验和设置成当前有效校验和58。然后,将有效地址56设置(步骤124)成数据被复制到的空 闲位置的地址,且将有效校验和58设置(步骤126)成从复制到空闲位置的数据计算的校验 和值。然后,先前版本对(先前版本地址60 1 60 n 与先前版本校验和62 a 62 n )被重新 排序(步骤127),所以先前版本信息会按先前版本的年龄或版本号加以排序。 0029 在延伸。
37、区对象16包括延伸区表80(图3)以执行步骤127的重新排序操作及产生 当前有效数据与校验和先前版本的一个实施例中,延伸区迁移代码14可将当前的先前版 本60 1 60 n 与62 a 62 n 的列向右移两列,以覆写及占据先前版本2n+l的列,然后 将当前有效地址56与当前有效校验和58复制到最新当前先前版本地址60 1 与62 1 。如此, 使当前版本地址56与校验和58成为最近先前版本,以在有效字段56与58内腾出空间给 复制到空闲位置的已更新数据。在备选实施例中,排序以指示先前版本排序的指针或其他 信息表示。 0030 对于图4的操作,当延伸区从第二存储器6迁移或升级到第一存储器4时,。
38、自延伸 区从第一存储器4迁移或降级到第二存储器6以来,只有已在第二存储器6中改变的磁道 才被复制到第一存储器4。在第一存储器4包括SSD的实施例中,此描述的操作提供写入平 衡,因为新数据被写入到新位置,且可避免对第一存储器4的非必要写入,因为自先前迁移 以来,未在第二存储器6修改的数据不会被复制到第一存储器4。 0031 图5示出由操作系统12执行的操作的一个实施例,其处理对第一存储器4中存在 的延伸区中的磁道的写入。在接收写入后,操作系统12(或一些其他代码)从目标磁道的写 入计算(步骤152)暂时校验和。如果(步骤154)暂时校验和匹配磁道的有效校验和58,则 将完成返回给写入请求,因为在。
39、磁道有效地址56处的数据与要写入的数据相同。如此,数 据不必被写入到第一存储器4,这在第一存储器包括寿命受到连续写入到相同位置的影响 而减少的SSD或其他类型器件的实施例中,会降低写入平衡。如果(步骤154)暂时校验和 值不匹配有效校验和58,则操作系统12判定(步骤158)暂时校验和值是否匹配先前版本校 验和62 1 62 n 中的一个。可能存在零个或更多先前版本地址与校验和值。如果匹配,则 操作系统12执行操作160-166,以使用在先前版本地址60 1 60 n 之一处的先前版本数据, 因为先前版本数据匹配要写入的数据。在步骤160,操作系统12将新的先前版本地址与新 的先前版本校验和值。
40、设置(步骤160)成有效地址与有效校验和值。此新的先前版本地址与 新的先前版本校验和变成最新的先前版本地址60 1 与校验和62 1 。操作系统12将磁道的写 入数据写入(步骤162)到第一存储器的空闲位置,并将有效地址56设置(步骤164)成数据 被复制到的空闲位置的地址,并将有效校验和58设置(步骤166)成从空闲位置中的数据计 算的校验和值。然后,先前版本对(先前版本地址60 1 60 n 与先前校验和62 a 62 n )被 重新排序(步骤167),所以先前版本信息会按先前版本的年龄或版本号加以排序。 说 明 书CN 102884502 A 10 5/8页 11 0032 在延伸区对象。
41、16包括延伸区表80(图3)的实施例中,在创建新的先前版本地址 与先前版本校验和以执行步骤167的重新排序操作之后,操作系统12可在所述表中将所有 当前的先前版本地址60 1 .60 n 与校验和62 1 .62 n 向右移两列,以覆写列数据,并使其成为 先前版本地址60 2 .60 n+1 与校验和62 2 .62 n+1 ,然后所创建的新的先前版本地址与校验和 变成先前版本地址60 1 与校验和62 1 。在备选实施例中,排序可藉由指示先前版本排序的指 针或其他信息表示。 0033 如果(步骤158)暂时校验和匹配一个所确定的先前版本校验和62 1 62 n ,则操 作系统12缓冲(步骤1。
42、68)匹配先前校验和的所确定的先前地址与先前校验和。操作系统 12将新的先前版本地址与新的先前版本校验和设置(步骤170)成当前有效地址56与有效 校验和58的值,以产生最新先前版本的当前有效地址与校验和。在执行步骤170之后,操 作系统12接着分别将有效地址56与有效校验和58设置(步骤172)成所缓冲的先前版本 地址与先前的版本校验和。在延伸区对象16包括延伸区表80(图3)的实施例中,在步骤 168-172产生一个先前版本地址(例如,60 i )、先前版本校验和(例如,62 i )、当前有效版本56 与58之后,操作系统12可接着在匹配的缓冲先前版本地址60 i 与校验和62 i 之后,。
43、在表80 中将先前版本地址60 i+1 .60 n 与先前版本校验和62 i+1 .62 n 的所有列向左移两列,以覆写 复制到有效字段56与58的匹配的缓冲先前版本地址60 i 与校验和62 i 所占据的列。 0034 藉由图5所描述的实施例,操作系统12尝试使用当前有效地址56与58或一个先 前版本地址60 l .60 n 与新的有效地址56的校验和62 l .62 n 与校验和58,以避免必须将 数据写入到第一存储器4。如此,操作系统12针对新的写入数据,重复使用已在第一存储 器4中存在的数据。在第一存储器4包括SSD的实施例中,使用写入的有效或先前版本数 据以避免写入将避免磨损及延长S。
44、SD的寿命。 0035 图6示出在操作系统12代码(或其他组件)中实施的操作的一个实施例,其处理对 第二存储器6中存在的延伸区内的目标磁道的写入。当图6的操作开始时,延伸区对象16 已建立。响应于(步骤200)接收到写入,操作系统12从目标磁道的写入计算(步骤202)暂 时校验和。如果(步骤204)暂时校验和匹配磁道的有效校验和58且如果(步骤205)修改 指示符54设置成指示第二存储器6内的磁道先前已修改,使得修改未在延伸区对象16中 反映,则修改指示符54被清除(步骤206),因为第一存储器4磁道将具有在第二存储器6中 修改的磁道。写入数据被写入(步骤208)到第二存储器中的磁道,且将完成。
45、返回(步骤210) 给写入请求。在此情况下,因为在第一存储器4内的磁道的有效地址56处的数据与在第二 存储器6写入的数据相同,所以延伸区对象16不必被更新。如果(步骤205)修改指示符54 未设置,则控制会进行步骤210而不写入任何数据,因为在第一存储器4与第二存储器6两 者内的有效或最近写入数据具有已匹配待写入数据的数据。 0036 如果(步骤204)暂时校验和不匹配有效校验和58,则操作系统12判定(步骤212) 暂时校验和是否匹配先前版本校验和62 l 62 n 中的一个。可能存在零个或更多先前版本 地址与校验和值。如果(步骤212)存在匹配,则操作系统12执行操作214-218,以使用。
46、在先 前版本地址60 l 60 n 中的一个处的先前版本磁道,因为在第一存储器6内的所确定的先 前版本的磁道匹配写入到第二存储器6中的磁道的数据。操作系统12缓冲(步骤214)所确 定的先前版本地址(例如,60 i )、匹配的先前版本校验和62 i 的先前版本校验和(例如,62 i )。 操作系统12将新的先前版本地址与新的先前版本校验和设置(步骤216)成当前有效地址 说 明 书CN 102884502 A 11 6/8页 12 56与有效校验和58值。执行步骤216之后,操作系统12分别将有效地址56与有效校验 和58设置(步骤218)成缓冲的先前版本地址60 i 与先前版本校验和62 i。
47、 。操作系统12清 除(步骤206)修改指示符54以指示磁道未被修改,因为第一存储器4具有在第二存储器6 处修改的数据。然后,控制进行步骤206至步骤208,以完成对第二存储器6的写入。 0037 在延伸区对象16包括延伸区表80(图3)的实施例中,在步骤212-216产生一个 先前版本地址(例如,60 i )与先前版本校验和(例如,62 i )、当前有效版本56与58之后,操作 系统12可接着在匹配的缓冲先前版本地址60 i 与校验和62 i 之后,在表80中将先前版本地 址60 i+1 与先前版本校验和62 i+1 的所有列向左移动两列,以覆写匹配的缓冲先前版本地址 60 i 与校验和62。
48、 i 所占据的列。 0038 如果(步骤212)暂时校验和不匹配一个先前版本校验和,则设置修改指示符42(步 骤222),以指示数据已在第二存储器6中被修改,且控制进行到步骤208以完成到第二存 储器6的写入。设置修改指示符54指示第一存储器6可能没有写入到第二存储器6的数 据。在此情况下,在第一存储器6中,有效地址56处的数据不是“有效数据”,因为磁道数据 已在第二存储器6中被修改,且在有效地址58处的磁道数据可能为最近先前版本。因此, 当设置修改指示符54时,有效地址56与有效校验和56信息可能不能用于磁道的实际有效 数据。 0039 藉由图6所描述的实施例,如果第一存储器4中的磁道的先前。
49、存在数据匹配要写 入到第二存储器6的数据,操作系统12将尝试使用当前有效地址56与58、或一个先前版本 60 l .60 n 与校验和62 l .62 n ,作为在第一存储器4中的新有效地址56与有效校验和58。 藉由更新延伸区对象16以反映第一存储器4具有写入到第二存储器6的数据,在将具有修 改后的磁道的延伸区从第二存储器6迁移回第一存储器4时,不必随后使用写入到第二存 储器6的磁道的数据来更新第一存储器4,因为修改指示符54被清除。在第一存储器4包 括SSD的实施例中,使用第一存储器4内的有效或先前磁道版本用于到第二存储器6的写 入,将避免在稍后从第二存储器6迁移到第一存储器4的过程内必须写入第一存储器。避 免对第一存储器4的写入可减少磨损及延长SSD的寿命。 0040 在图5与6的实施例中,在没有针对第一存储器4或第二存储器6中正在被写入 的磁道维护的延伸区对象的情况下,允许写入进行而不执行任何进一步动作。另外,如果对 于写入操作存在多个要写入的磁道,则针对每个要写入的磁道执行图5与6的操作。 0041 当将延伸区从第二存储器迁移到第一存储器时、当执行对第一存储器中存在的延 伸区的写入、以及当执行对第二存储。