锁定引导数据用以更快引导.pdf

上传人:62****3 文档编号:1743934 上传时间:2018-07-08 格式:PDF 页数:16 大小:1.19MB
返回 下载 相关 举报
摘要
申请专利号:

CN201380050946.2

申请日:

2013.09.17

公开号:

CN104685443A

公开日:

2015.06.03

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 1/24申请日:20130917|||公开

IPC分类号:

G06F1/24; G06F1/22

主分类号:

G06F1/24

申请人:

苹果公司

发明人:

B·K·特艾斯-杜蕾

地址:

美国加利福尼亚

优先权:

13/632,086 2012.09.30 US

专利代理机构:

中国国际贸易促进委员会专利商标事务所11038

代理人:

吴信刚

PDF下载: PDF下载
内容摘要

本发明提供用于减少具有复合HDD-SSD存储设备的系统中的计算机系统引导时间的方法和装置。对具有包括磁性存储设备(HDD)和固态存储设备(SSD)的复合存储设备的计算机系统进行引导包括:在初始引导过程期间识别从磁性存储设备中读取的引导数据,将引导数据锁定到固态存储设备,其中锁定致使在不常使用的数据从固态存储设备移动至磁性存储设备期间引导数据被保持在固态存储设备上,以及在后续引导过程期间由计算机系统从固态存储设备中读取引导数据。引导还可包括将不常访问的数据从固态存储设备移动至磁性存储设备,并且将引导数据保持在固态存储设备上。

权利要求书

权利要求书
1.  一种引导计算机系统的方法,所述计算机系统具有包括磁性存储设 备和固态存储设备的复合存储设备,所述方法包括:
在初始引导过程期间,由所述计算机系统识别从所述磁性存储设备 中读取的引导数据;
由所述计算机系统将所述引导数据锁定到所述固态存储设备,其中 锁定致使在不常使用的数据从所述固态存储设备移动至所述磁 性存储设备期间所述引导数据被保持在所述固态存储设备上; 以及
在后续引导过程期间,由所述计算机系统从所述固态存储设备中读 取所述引导数据。

2.  根据权利要求1所述的方法,还包括:
由所述计算机系统将所述不常使用的数据从所述固态存储设备移动 至所述磁性存储设备;以及
由所述计算机系统将所述引导数据保持在所述固态存储设备上。

3.  根据权利要求1所述的方法,其中在初始引导过程期间识别从所述 磁性存储设备中读取的引导数据包括:
在系统引导期间,由所述计算机系统接收多个读取操作,
其中所述引导数据包括在用户登录到所述系统时所启动的多个应用 的启动完成之前由所述多个读取操作所读取的数据。

4.  根据权利要求1所述的方法,其中将所述引导数据锁定在所述固态 存储设备上包括:
由所述计算机系统确保所述引导数据存储在所述固态存储设备上, 以及
由所述计算机系统将锁定值与所述引导数据相关联,所述锁定值指 示所述引导数据将被保持在所述固态存储设备上。

5.  根据权利要求1所述的方法,其中锁定所述引导数据包括:
由所述计算机系统调用存储接口的锁定操作,其中所述锁定操作将 所述引导数据锁定到所述固态存储设备;以及
由所述计算机系统将所述引导数据的位置提供至所述锁定操作,
其中迁移过程被配置为从所述固态存储设备中移除很少使用的数 据,除非所述很少使用的数据被锁定到所述固态存储设备。

6.  根据权利要求1所述的方法,其中所述引导数据包括多个数据块, 并且在初始引导过程期间识别从所述磁性存储设备中读取的引导数 据包括:
在系统引导期间,由所述计算机系统接收多个读取操作,其中所述 多个读取操作包括多个块地址和相关联的块长度;以及
由所述计算机系统将所述多个块地址和相关联的块长度存储在所述 计算机系统的存储器中。

7.  根据权利要求6所述的方法,其中将所述引导数据锁定到所述固态 存储设备包括:
由所述计算机系统从所述计算机系统的所述存储器中检索所述多个 块地址和相关联的块长度;
由所述计算机系统调用存储接口的锁定操作;以及
由所述计算机系统将所述多个块地址和相关联的块长度提供至所述 锁定操作,其中所述锁定操作被配置为阻止从所述固态存储设 备中移除所述引导数据。

8.  根据权利要求6所述的方法,其中将所述引导数据锁定在所述固态 存储设备上包括:
确保所述多个数据块存储在所述固态存储设备上,以及
阻止后续从所述固态存储设备中移除所述多个数据块。

9.  一种系统,包括:
复合存储设备,所述复合存储设备包括磁性存储设备和固态存储设 备;和
处理器,所述处理器被配置成:
在初始引导过程期间识别从所述磁性存储设备中读取的引导数 据;
将所述引导数据存储在固态存储设备上;
将不常使用的数据从所述固态存储设备移动至所述磁性存储设 备;
将所述引导数据保持在所述固态存储设备上至少直到执行后续 引导过程为止;以及
在所述后续引导过程期间从所述固态存储设备中读取所述引导 数据。

10.  根据权利要求9所述的系统,其中所述处理器被进一步配置为将所 述引导数据锁定到所述固态存储设备,其中锁定致使在所述不常使 用的数据从所述固态存储设备移动至所述磁性存储设备期间所述引 导数据被保持在所述固态存储设备上。

11.  根据权利要求9所述的系统,其中为了在初始引导过程期间识别从 所述磁性存储设备中读取的引导数据,所述处理器被配置为:
在系统引导期间拦截读取操作,
其中所述引导数据包括在系统引导期间由所述读取操作所读取 的数据。

12.  根据权利要求11所述的系统,其中所述引导数据包括在用户登录到 所述系统时所启动的多个应用的启动完成之前由所述读取操作所读 取的数据。

13.  根据权利要求9所述的系统,其中为了将所述引导数据锁定在所述 固态存储设备上,所述处理器被配置为:
确定所述引导数据是否存储在所述固态存储设备上;
响应于确定所述引导数据未存储在所述固态存储设备上,将所述引 导数据存储在所述上;以及
阻止所述引导数据从所述固态存储设备迁移到所述磁性存储设备。

14.  根据权利要求9所述的系统,其中为了锁定所述引导数据,所述处 理器被配置为:
使用所述引导数据的位置作为参数来调用存储接口的锁定操作,
其中所述锁定操作被配置为确保所述引导数据存储在所述固态存储 设备上,以及将所述数据标记为已锁定,
其中将数据标记为已锁定阻止迁移过程将所述数据从所述固态存储 设备移动至所述磁性存储设备。

15.  根据权利要求9所述的系统,其中所述引导数据包括多个数据块, 并且为了在初始引导过程期间识别从所述磁性存储设备中读取的引 导数据,所述处理器被配置为:
在系统引导期间接收多个读取操作,其中所述多个读取操作包括多 个块地址和相关联的块长度;以及
将所述多个块地址和相关联的块长度存储在所述计算机系统的存储 器中。

16.  根据权利要求15所述的系统,其中为了将所述引导数据锁定到所述 固态存储设备,所述处理器被配置为:
从所述计算机系统的所述存储器中检索所述多个块地址和相关联的 块长度;
调用存储接口的锁定操作;以及
将所述多个块地址和相关联的块长度提供至所述锁定操作,
其中所述锁定操作被配置为阻止从所述固态存储设备中移除所述引 导数据。

17.  根据权利要求14所述的系统,其中为了锁定所述引导数据,所述处 理器被进一步配置为将所述引导数据标记为已锁定,并且所述迁移 过程被配置为从所述固态存储设备中移除很少使用的引导数据,除 非所述很少使用的引导数据被标记为已锁定到所述固态存储设备。

18.  一种用于计算机系统的非暂态计算机可读介质,所述非暂态计算机 可读介质上存储有能够由处理器执行的计算机程序代码,所述计算 机系统包括复合存储设备,所述复合存储设备包括磁性存储设备和 固态存储设备,所述计算机程序代码包括:
致使所述处理器在初始引导过程期间识别从所述磁性存储设备中读 取的引导数据的计算机程序代码;
致使所述处理器将所述引导数据锁定到所述固态存储设备的计算机 程序代码;
致使所述处理器将已锁定的引导数据保持在所述固态存储设备上至 少直到执行后续引导过程为止的计算机程序代码;和
致使所述处理器在所述后续引导过程期间从所述固态存储设备中读 取已锁定的引导数据的计算机程序代码。

19.  根据权利要求18所述的计算机可读介质,其中致使所述处理器锁定 所述引导数据的所述计算机程序代码包括:
致使所述处理器调用存储接口的锁定操作的计算机程序代码;和
致使所述处理器将所述引导数据的位置提供至所述锁定操作的计算 机程序代码,其中所述位置包括所述引导数据的地址和长度。

20.  根据权利要求19所述的计算机可读介质,还包括:
致使所述处理器使用所述引导数据的位置作为参数来调用存储接口 的锁定操作的计算机程序代码,
其中所述锁定操作被配置为确保所述引导数据存储在所述固态存储 设备上,以及将所述数据标记为已锁定,并且
其中将所述引导数据标记为已锁定阻止迁移过程将已锁定的引导数 据从所述固态存储设备移动至所述磁性存储设备。

说明书

说明书锁定引导数据用以更快引导
技术领域
本发明整体涉及计算机系统中的数据存储与检索。更具体地,本发明 实施例涉及从具有不同性能特性的不同类型的存储介质混合而成的复合存 储设备引导计算机系统。
背景技术
在启动计算机系统时,例如接通电源时,被称为“引导”的过程将程 序代码指令诸如操作系统映像加载到系统的存储器,使得系统能够开始操 作。可从存储设备诸如磁盘驱动器(“HDD”)、固态盘(“SSD”)、只读存 储器等加载代码指令。固态盘将数据存储在设备诸如不具有移动部件并且 实质上比硬盘更快访问的闪存存储器芯片中,并且使用SSD的系统常常比 使用HDD的类似系统更快且更具响应性地执行操作,其中HDD具有移动 部件并且将数据存储在由移动力学机制访问的物理位置处。然而,固态盘 (SSD)存储装置比硬盘(HDD)存储装置贵,因此较之类似价位的SSD,HDD 能够存储更多的数据。因此,在决定使用SSD还是HDD时,在性能和成 本之间存在权衡。
发明内容
本专利申请描述关于使用复合数据存储设备的计算机系统的引导过程 的各种实施例,该复合数据存储设备具有具备不同容量和性能特性的多种 类型的存储装置。
在一个或多个实施例中,可从复合磁盘引导计算机系统,该复合磁盘 为具有不同性能特性的两个或更多个存储设备的混合。例如,复合磁盘可 包括较慢设备诸如磁性硬盘(HDD)和较快设备诸如固态盘(SSD)。可通过 在系统首次引导时识别从HDD加载的引导数据并且将所识别的数据存储在 SSD上,使得在随后引导系统时,以比从HDD加载数据的情况下更快的速 率从SSD读取存储数据,来减少系统引导时间。引导数据可为例如操作系 统,并且可包括可执行代码和操作系统的数据部分。
一旦引导过程完成并且系统正运行,迁移过程就在适当时间运行以找 到存储在SSD上的很少使用的数据,并且将很少该使用的数据从SSD移动 到HDD。在系统正运行时通常不访问引导数据,因此引导数据会通过迁移 过程被移动到较慢HDD。因此,迁移过程移除SSD引导数据以将引导数据 存储在HDD中的一般行为很可能导致后续重新引导系统比数据保留在SSD 中的情况更慢(即,花费更多时间)。为了解决这一问题,可在引导过程期间 识别引导数据并将其“锁定”到SSD,从而阻止迁移过程将引导数据移动 至HDD。在一个方面,锁定操作实际上针对一个引导周期,因此在先前引 导中锁定而在后续引导中不再需要的数据不保持在SSD上。提供锁定操作 以将数据锁定到SSD。当执行锁定操作时,如果SSD上不存在已锁定数 据,则从HDD将其移动至SSD。否则,如果SSD上存在已锁定数据,则 无需将其作为锁定过程的一部分存储。在一个实例中,锁定操作将数据标 记为已锁定。迁移过程和可将看起来不常使用的数据从SSD移动至HDD 的其他过程并不移动被标记为已锁定的数据。
在一个实施例中,描述了一种引导计算机系统的方法。该计算机系统 具有包括磁性存储设备和固态存储设备的复合存储设备,并且该方法包 括:在初始引导过程期间由计算机系统识别从磁性存储设备中读取的引导 数据,由计算机系统将该引导数据锁定到固态存储设备,其中锁定致使在 不常使用的数据从固态存储设备移动至磁性存储设备期间引导数据被保持 在固态存储设备上,以及在后续引导过程期间由计算机系统从固态存储设 备中读取引导数据。
各实施例可包括下列一个或多个特征。该方法可还包括由计算机系统 将不常访问的数据从固态存储设备移动至磁性存储设备;以及由计算机系 统将引导数据保持在固态存储设备上。在初始引导过程期间识别从磁性存 储设备中读取的引导数据可包括:在系统引导期间,由计算机系统接收多 个读取操作,其中引导数据包括在用户登录到系统时所启动的多个应用程 序的启动完成之前由多个读取操作所读取的数据。
将引导数据锁定到固态存储设备上可包括由计算机系统确保引导数据 存储在固态存储设备上,以及由计算机系统将锁定值与引导数据相关联, 该锁定值指示引导数据需保持在固态存储设备上。锁定引导数据可包括: 由计算机系统调用存储接口的锁定操作,其中该锁定操作将引导数据锁定 到固态存储设备,以及由计算机系统将引导数据的位置提供至锁定操作, 其中迁移过程被配置为从固态存储设备中移除该很少使用的数据,除非该 很少使用的数据被锁定到固态存储设备。引导数据可包括多个数据块,并 且在初始引导过程期间识别从磁性存储设备中读取的引导数据可包括:在 系统引导期间由计算机系统接收多个读取操作,其中该多个读取操作包括 多个块地址和相关联的块长度,以及由计算机系统将多个块地址和相关联 的块长度存储在计算机系统的存储器中。
将引导数据锁定到固态存储设备可包括:由计算机系统从计算机系统 的存储器中检索多个块地址和相关联的块长度,由计算机系统调用存储接 口的锁定操作,由计算机系统将多个块地址和相关联的块长度提供至锁定 操作,其中该锁定操作被配置为阻止从固态存储设备中移除引导数据。将 引导数据锁定到固态存储设备可包括确保多个数据块存储在固态存储设备 上,以及阻止后续从固态存储设备中移除数据块。
在另一个实施例中,描述一种系统。该系统包括复合存储设备,该复 合存储设备包括磁性存储设备和固态存储设备;和处理器,该处理器被配 置为在初始引导过程期间识别从磁性存储设备中读取的引导数据,将引导 数据存储在固态存储设备上,将不常使用的数据从固态存储设备移动至磁 性存储设备,将引导数据保持在固态存储设备上至少直到执行后续引导过 程为止,以及在后续引导过程期间从固态存储设备中读取引导数据。
各实施例可包括下列一个或多个特征。处理器可被进一步配置为将引 导数据锁定到固态存储设备,其中锁定致使在不常使用的数据从固态存储 设备移动至磁性存储设备期间引导数据被保持在固态存储设备上。为了在 初始引导过程期间识别从磁性存储设备中读取的引导数据,处理器被配置 为:在系统引导期间拦截读取操作,其中该引导数据包括在系统引导期间 由读取操作所读取的数据。引导数据可包括在用户登录到系统时所启动的 多个应用程序的启动完成之前由读取操作所读取的数据。
为了将引导数据锁定在固态存储设备上,处理器可被配置为确定引导 数据是否存储在SSD上,响应于确定引导数据未存储在SSD上,将引导数 据存储在SSD上,以及阻止引导数据从固态存储设备迁移到磁性存储设 备。为了锁定引导数据,处理器可被进一步配置为使用引导数据的位置作 为参数来调用存储接口的锁定操作,其中锁定操作被配置为确保引导数据 存储在固态存储设备上,并且将数据标记为已锁定,并且将数据标记为已 锁定阻止迁移过程将数据从固态存储设备移动至磁性存储设备。
引导数据可包括多个数据块,并且为了在初始引导过程期间识别从磁 性存储设备中读取的引导数据,处理器被配置为在系统引导期间接收多个 读取操作,其中该多个读取操作包括多个块地址和相关联的块长度,以及 将多个块地址和相关联的块长度存储在计算机系统的存储器中。
为了将引导数据锁定到固态存储设备,处理器可被配置为从计算机系 统的存储器中检索多个块地址和相关联的块长度,调用存储接口的锁定操 作,以及将多个块地址和相关联的块长度提供至锁定操作,其中该锁定操 作被配置为阻止从固态存储设备中移除引导数据。为了锁定引导数据,处 理器可被进一步配置为将数据标记为已锁定,并且迁移过程可被配置为从 固态存储设备中移除很少使用的数据,除非该很少使用的数据被标记为锁 定到固态存储设备。
在另一个实施例中,描述一种用于计算机系统的非暂态计算机可读介 质。非暂态计算机可读介质上存储有能够由处理器执行的计算机程序代 码,计算机系统包括复合存储设备,该复合存储设备包括磁性存储设备和 固态存储设备,计算机程序代码包括致使处理器在初始引导过程期间识别 从磁性存储设备中读取的引导数据、将引导数据锁定到固态存储设备、将 已锁定的引导数据保持在固态存储设备上至少直到执行后续引导过程为 止、以及在后续引导过程期间从固态存储设备读取引导数据的计算机程序 代码。
各实施例可包括下列一个或多个特征。致使处理器锁定引导数据的计 算机程序代码可致使处理器调用存储接口的锁定操作;并且致使处理器将 引导数据的位置提供至锁定操作的计算机程序代码,其中该位置包括引导 数据的地址和长度。致使处理器锁定引导数据的计算机程序代码可包括致 使处理器使用引导数据的位置作为参数来调用存储接口的锁定操作的计算 机程序代码,其中该锁定操作被配置为确保引导数据存储在固态存储设备 上,并且将数据标记为已锁定,其中将数据标记为已锁定阻止迁移过程将 数据从固态存储设备移动至磁性存储设备。
附图说明
所包括的附图是为了进行示意性的说明,并且仅用于提供本发明所公 开的用于提供便携式计算设备的装置和方法的可能结构和布置方式的实 例。这些附图决不会限制本领域的技术人员在不脱离本发明实质和范围的 情况下对本发明进行的形式和细节方面的任何改动。所述实施例通过下面 结合附图的具体描述将更易于理解,其中类似的附图标记表示类似的结构 元件,并且其中:
图1为示出根据一个或多个实施例的具有复合磁盘的计算机系统的代 表性框图,该复合磁盘上可锁定引导数据。
图2示出根据一个或多个实施例的系统引导数据读取路径的代表性框 图。
图3示出根据一个或多个实施例的引导数据锁定过程的代表性流程 图。
图4示出用于执行实施例的软件的计算机系统的系统框图。
具体实施方式
在此部分中提供了根据本发明所述的实施例的装置和方法的代表性应 用。提供这些实例仅是为了添加上下文并有助于理解所述实施例。对于本 领域的技术人员因此将显而易见的是,本发明所述的实施例可在不具有这 些具体细节中的一些或全部的情况下实施。在其它情况下,未详细描述所 熟知的工艺步骤以便避免不必要地模糊本发明所述的实施例。其他应用也 是可能的,使得以下实例不应视为是限制性的。具体地,以下详细描述通 常涉及具有使用术语磁性硬盘(HDD)和固态盘(SSD)的不同性能特性的存储 设备,但应当理解,该使用仅为用于使本领域的技术人员能够实践所述实 施例的实例。还应当理解,该实例不限于SSD设备和/或HDD设备;使得 可使用其他实施例,并且可在不脱离所述实施例的实质和范围的情况下做 出改变。
在一个或多个实施例中,可从复合磁盘引导计算机系统,该复合磁盘 为具有不同性能特性的两个或更多个存储设备的混合。例如,复合磁盘可 包括较慢设备诸如磁性硬盘(HDD)和具有相对较小存储容量的较快设备诸 如固态盘(SSD)。较快设备可具有相对较大的存储容量,并且较慢设备可具 有相对较小的存储容量。可通过在系统首次引导时识别从HDD加载的引导 数据并将所识别的数据存储在SSD上,使得在对系统进行后续引导时,以 比从HDD加载数据更快的速率从SSD读取所存储的数据,来缩短系统引 导时间。引导数据可为例如操纵系统,并且可包括可执行代码和操纵系统 的数据部分。
一旦引导过程完成并且系统正运行,迁移过程就在适当时间运行以找 到存储在SSD上的很少使用的数据,并且将很少使用的数据从SSD移动到 HDD。相反地,可将频繁访问的数据从HDD移动到SSD,例如,通过迁 移过程来进行。在系统正运行时通常不访问引导数据,因此引导数据会通 过迁移过程被移动到较慢HDD。因此,迁移过程移除SSD引导数据以将引 导数据存储在HDD中的一般行为很可能导致后续重新引导系统比数据保留 在SSD中的情况更慢(即,花费更多时间)。为了解决这一问题,可在引导 过程期间识别引导数据并将其“锁定”到SSD,从而阻止迁移过程将引导 数据移动至HDD。提供锁定操作以将数据锁定到SSD。在执行锁定操作 时,如果SSD上不存在锁定数据,则从HDD将其移动至SSD。否则,如 果SSD上存在锁定数据,则无需将其作为锁定过程的一部分存储。在一个 实例中,锁定操作将数据标记为已锁定。迁移过程和可将看起来不常使用 的数据从SSD移动至HDD的其他过程并不移动被标记为已锁定的数据。
图1为示出根据一个或多个实施例的具有复合磁盘104的计算机系统 102的代表性框图,该复合磁盘上可锁定引导数据。计算机系统102例如为 台式计算机、膝上型计算机、上网本计算机等。计算机系统102包括数据 存储设备,该数据存储设备在本文中被称为“磁盘”或“磁盘驱动器”, 即使它们未必具有物理磁盘亦如此。
在一个或多个实施例中,计算机系统102可具复合磁盘104,该复合 磁盘包括具有不同性能特性的两个或更多个存储设备。在图1的实例中, 复合磁盘104包括HDD 110和SSD 120。SSD 120为相对较快设备,并且 HDD 110为比SSD 120具有更大存储容量和更低成本的相对较慢设备。因 此,由复合磁盘104所存储的一些数据可存储在HDD 110上,并且一些数 据可存储在SSD 120上。复合磁盘104被设计用于提供HDD 110和SSD  120两者的益处。复合磁盘可提供接近SSD的高性能,以及HDD的较大容 量和较低成本。复合磁盘通过利用许多磁盘操作的重复性质以及许多磁盘 操作访问存储在磁盘上的相对较小的数据子集的事实来实现这些有益效 果。
存储在复合磁盘上的数据可在HDD和SSD之间移动,其目标在于将 需要实现较快系统性能和响应时间的数据存储在SSD上,并且将其他数据 存储在HDD上。SSD的存储容量通常小于HDD的容量,因此由操作系统 或计算机系统的其他部件诸如存储应用编程接口(API)160(例如,购自 Apple,Inc.的Mac OS XTM中的磁芯存储器(CoreStorage)系统等)来执行迁 移过程108。迁移过程108使用存储API 160在HDD和SSD之间移动数 据,从而使得计算机软件应用程序和用户访问作为单个存储设备的复合磁 盘104,而未意识到存在两个不同设备(即,HDD 110和SSD 120)。即, HDD 110和SSD 120通过复合磁盘104作为单个磁盘呈现给用户,并且用 户通常不控制数据存储在HDD 110上还是SSD 120上。
在一个或多个实施例中,如下所述,在引导期间,当访问数据的请求 (例如,由引导读取器106发送的初始读取操作172)发送至复合磁盘104 时,由引导高速缓存170接收数据,该引导高速缓存调用锁定过程164以 将引导数据锁定到SSD 120。引导高速缓存170将访问请求转发至存储API  160,该存储API确定将请求路由至HDD 110还是SSD 120。如下所述,存 储API还将虚拟磁盘地址映射到物理磁盘地址并且经由锁定API 162来处 理锁定。锁定API 162具有“锁定”操作,该操作指示存储API 160确保始 于给定的虚拟块地址并且持续给定数量的字节的数据存储并保持存储在给 定的在线存储卷上,诸如SSD 120。例如,锁定操作将块的元数据132的锁 定标记144设定为真以指示该块已被锁定到SSD。另外,如果由给定地址 所识别的块不在SSD 120上,则存储API 160将该块移动到SSD 120。
较之HDD,由于SSD更快但具有更小存储容量,因此希望将经常访 问的数据诸如对保持计算机系统的响应能力来说很重要的数据存储在SSD 上,并且希望将很少访问的数据存储在HDD上。数据分别作为一组HDD 块112和一组SSD块122存储在HDD 110和SSD 120上。每个块包含所存 储数据的一部分。本文所使用的术语“数据”包括程序代码以及程序代码 所使用的数据,因为在计算机系统中程序代码指令被表示为数据。在一个 或多个实施例中,存储在HDD 110和SSD 120上的数据块包括数据值,被 存储在设备上的特定地址处,并且具有相关联长度,例如,以字节为单 位。HDD块112包括HDD块1114、多个HDD引导块116(如果所有引导 块已被移动至SSD则不存在)和HDD块N 118,其指示可存在多个(N个) HDD块112。SSD块122包括SSD块1124、多个SSD引导块126(如果 所有引导块位于HDD上则不存在)和SSD块M 128,其指示可存在多个 (M个)SSD块。
在一个或多个实施例中,复合磁盘104包括块元数据130,该块元数 据包括块1元数据和块N元数据134,其为描述对应的HDD块112和SSD 块122的属性的信息。每个数据块的块元数据132包括块的虚拟(即,逻辑) 位置136。存储API 160,包括锁定API 162,在参考HDD块112和SSD 块122时使用虚拟地址。虚拟位置136包括数据块的虚拟地址138和长度 140。虚拟位置被映射到物理地址142,该物理地址识别数据块存储在HDD  110或SSD 120上的位置。块元数据132还包括锁定标记144,该锁定标记 在对应的SSD块(例如,SSD块1124)被锁定到SSD 120的情况下被设定为 真,如下所述。
为了提供复合磁盘将经常访问的数据存储在SSD上的特征,迁移过程 108基于诸如数据的过去访问模式和SSD上空间的可用性之类的因素在 HDD和SSD之间移动HDD块112和SSD块122。迁移过程108可连续地 或周期性地执行,并且将位于SSD 120上的一个或多个不常访问的SSD块 122移动至HDD 110,例如通过将不常访问的SSD块122复制到HDD 110 并且从SSD 120将其删除。迁移过程108还可将一个或多个频繁访问的 HDD块112从HDD 110移动至SSD 120以改善性能。
在一个或多个实施例中,当对计算机系统102进行引导时,引导读取 器106从读取操作172、174中其相应的一个或多个磁盘中读取引导数据, 例如HDD引导块116和/或SSD引导块126。引导数据包括程序代码和当 计算机接通电源时加载到计算机系统102中的数据,例如,引导读取器 106、操作系统映像或控制计算机系统102的其他代码指令。
在一个或多个实施例中,当对计算机系统102进行引导时,可通过记 录在引导过程期间进行的磁盘操作(例如,读)来对引导数据进行识别并记录 在引导块阵列180中。例如,在首次引导计算机系统102时,引导读取器 106执行初始引导读取操作172,该引导读取操作从HDD 110读取HDD引 导块116(例如,操作系统映像)。在从HDD读取每个HDD引导块116 时,锁定过程164拦截(例如,被通知有)读取操作172,并且将关于引导块 阵列180中块的信息记录在计算机系统102的存储器中。在接收到读取请 求172时可由例如引导高速缓存170来调用锁定过程164。对于每个引导块 读取,锁定过程164记录引导块条目182,该引导块条目包括块的虚拟地址 184(从块元数据130的虚拟地址138复制)和块的长度186(从块元数据130 的长度140复制)。
当锁定过程164确定引导过程完成时,例如,在登录时或登录之前启 动的应用程序已完成启动时,或在已读取所有HDD引导块116时,或在检 测到一些其他情况时,锁定过程164通过调用锁定API 162的锁定操作来将 引导数据锁定到SSD 120,其中将每个所记录的引导块条目182的虚拟地址 184和长度186以及复合磁盘104的标识符作为参数。锁定操作确保从 HDD 110中读取的块作为SSD引导块126存储在SSD 120上,并且将块元 数据130的与SSD引导块126相关联的锁定标记144设定为真。
在其它实施例中,在读取块时,锁定过程164可调用针对每个块的锁 定操作,使得该块不必存储在引导块阵列180中。因此,未记录的数据也 可被锁定。针对是否使用引导块阵列180来在批量操作中记录块的选择是 一种设计决策,该设计决策能够基于两种另选方案的诸如性能和资源使用 之类的因素而作出。
在一个或多个实施例中,在计算机系统102的后续引导(即,重新引导) 中,引导读取器106发出后续读取操作174。由于SSD引导块126存储在 SSD 120上,因此后续读取操作174从SSD 120中读取SSD引导块126。因 此,后续读取操作174比在初始引导(在将SSD引导块126锁定到SSD 120 之前)中执行的初始读取操作172更快,因为SSD读取操作比HDD读取操 作快。后续读取操作174中的一些可能从HDD中读取HDD引导块116, 因为每当重新引导计算机系统102时一些数据可改变。
在一个或多个实施例中,在后续引导中,在系统的后续引导(即,重新 引导)中执行上述锁定过程。即,每当引导计算机系统102时,将在引导时 间从HDD 110和/或SSD 120中所读取的HDD引导块116和SSD引导块 126锁定(或在已锁定的情况下重新锁定)到SSD 120。将在每次引导期间从 HDD中读取的任何HDD引导块116移动至SSD 120作为锁定操作的一部 分。如上所述,在后续重新引导时从SSD 120读取已锁定块。因此,锁定 数据作为在下一引导期间将读取的数据的近似值而保持。此外,在一个或 多个实施例中,锁定操作实际上针对一个引导周期,因此在先前引导中锁 定而在后续引导中不再需要的数据不保持在SSD 120上。
在一个或多个实施例中,如果SSD引导块126未锁定到SSD,则存储 在SSD 120上的SSD引导块126由迁移过程108移除。迁移过程108识别 存储在SSD 120上的不大可能得益于SSD的较高存取速度的数据,并且将 所识别的数据从SSD移动至HDD,从而使得空间能够供可被更频繁访问的 其他数据所用。然而,HDD引导块116和SSD引导块126包含当引导计算 机时从磁盘加载到存储器中的操作系统映像(代码和数据),该HDD引导块 116和SSD引导块126在引导过程完成之后不常被访问,因此一旦计算机 系统102已完成引导过程并正在运行时,迁移过程108则可能将引导数据 从SSD移动至HDD。由于HDD的较慢性质,因此将引导数据从SSD移动 至HDD导致较长的引导时间。
由锁定过程164执行的锁定操作确保迁移过程或一些其他过程不将 SSD引导块126移出SSD。锁定过程164将存储在块元数据132、134中的 与HDD引导块116、SSD引导块126相关联的定位锁定标记144、154设定 为真,以阻止迁移过程108或计算机系统102的其他组件将SSD引导块 126从SSD 120移动至HDD 110。迁移过程108(和计算机系统102上的其 他过程)检查锁定标记144、154的值,并且在对应于SSD数据块133的锁 定标记144、154为真的情况下,不将SSD数据块133从SSD 120移动至 HDD 110。因此,锁定过程,例如,将块的块元数据130中的锁定标记设 定为真(其被称之为将数据锁定到SSD)避免将块从SSD移动至HDD。
图2示出根据一个或多个实施例的系统引导数据读取路径200的代表 性框图。引导操作开始于输入/输出(I/O)读取操作204以从存储设备读取引 导数据。I/O读取操作204执行引导高速缓存读取操作206以检查先前可能 已存储的缓存引导数据。在这种情况下,不存在已缓存的引导数据,因此 引导高速缓存读取操作206执行磁芯存储器读取操作214以从存储设备读 取引导数据。读取操作214例如可由图1的存储API 160来提供。读取操作 214确定(在216处)待读取的块是位于SSD上还是HDD上。如果块位于 SSD上,则从SSD中读取块(218)。否则,从HDD中读取块(220)。引导高 速缓存读取操作206还执行锁定过程208以将在读取操作214中接收的引 导数据锁定到SSD。锁定过程208记录由读取操作214所读取的块的位 置,并且执行锁定操作212以将所记录的块位置锁定到SSD,使得对应的 块将不从SSD移动至HDD。在222处执行锁定操作,例如通过执行图1的 锁定API 162的磁芯存储器锁定操作,其可将与块相关联的锁定标记144设 定为真以指示该块被锁定到SSD。在一个实例中,在数据先前尚未明确地 锁定到SSD的初始系统引导期间,读取操作214在218处从SSD读取块的 约50%,并且在220处从HDD读取块的剩余部分。在锁定过程208在222 处已执行锁定操作之后,重新引导计算机系统,在218处从SSD读取块的 95%,并且在220处从HDD读取仅5%,因此使得引导时间显著减少。
图3示出根据一个或多个实施例的引导数据锁定过程300的代表性流 程图。过程300可表示图1的锁定过程164并且例如可以实现为在计算机 可读介质上编码并且能够由计算机系统的处理器执行的的计算机程序代 码。过程300可由图1的引导高速缓存170或引导读取器106进行调用。过 程始于框302,其在计算机系统启动时拦截读取数据块的读取操作172。例 如可通过在执行读取操作172之前或之后修改操作系统的读取系统调用或 功能以调用过程300,或通过另外注册并接收由操作系统执行的引导时间数 据读取操作的通知来拦截读取操作172。框304记录一系列块中数据块的地 址和长度,该一系列块在本文中被称为“块”阵列并且对应于图1的引导 块阵列180。
框306确定引导过程是否完成,例如启动操作诸如登录时所请求的启 动应用程序是否已完成。如果引导过程尚未完成,控制返回框302,其拦截 另一读取操作以接收另一数据块并且框304存储块阵列中数据块的地址和 长度。如果框306确定引导过程完成,例如由于用户登录时所启动的应用 程序已完成启动(即,初始化),或由于没有更多引导数据可供以读取,或一 些其他条件指示引导数据结束。在一个实例中,由已启动的应用程序所读 取的数据块不包括在引导数据中,因为这些数据块可能相对较多。
框308从块阵列中检索先前读取的块中一个块的块地址和长度。框 310确定在308处所识别的块是否位于SSD上。如果不是,框314将块从 HDD移动至SSD,其可包括从HDD中删除该块。此外,框312将块的锁 定标记设定为真,例如通过调用锁定API 162来进行。框316确定块阵列中 是否存在尚未在框308处被检索到的另一块。如果是,控制转移到框308, 并且针对该块重复进行锁定操作。否则,一旦阵列中的块已锁定,过程则 结束。
图4示出用于执行实施例的软件的计算机系统400的系统框图。计算 机系统400包括子系统,诸如中央处理器402、系统存储器404、固定存储 装置406(例如,硬盘驱动器)、可移动存储装置408(例如,闪存)和网络接 口410。中央处理器402例如可执行用于实现本发明的计算机程序代码(例 如,操作系统)。操作系统在其执行期间通常(但未必)驻留在系统存储器 404中。适用于本发明的其他计算机系统可包括额外的或更少子系统。例 如,另一计算机系统可包括多于一个中央处理器402(即,多处理器系统)或 高速缓存存储器。
虽然为了清楚和理解的目的,用举例说明和实例的方式详细描述了上 述发明,但将认识到,可以在不脱离本发明实质或基本特征的情况下用许 多其他具体的变型形式和实施例来体现上述发明。可以实施某些改变和修 改形式,并且应当理解,本发明不受上述细节的限制,而是由所附权利要 求的范围限定。

锁定引导数据用以更快引导.pdf_第1页
第1页 / 共16页
锁定引导数据用以更快引导.pdf_第2页
第2页 / 共16页
锁定引导数据用以更快引导.pdf_第3页
第3页 / 共16页
点击查看更多>>
资源描述

《锁定引导数据用以更快引导.pdf》由会员分享,可在线阅读,更多相关《锁定引导数据用以更快引导.pdf(16页珍藏版)》请在专利查询网上搜索。

本发明提供用于减少具有复合HDD-SSD存储设备的系统中的计算机系统引导时间的方法和装置。对具有包括磁性存储设备(HDD)和固态存储设备(SSD)的复合存储设备的计算机系统进行引导包括:在初始引导过程期间识别从磁性存储设备中读取的引导数据,将引导数据锁定到固态存储设备,其中锁定致使在不常使用的数据从固态存储设备移动至磁性存储设备期间引导数据被保持在固态存储设备上,以及在后续引导过程期间由计算机系统。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1