至少部分地在引导期间向存储器预加载应用的制作方法

文档序号:6594828阅读:154来源:国知局
专利名称:至少部分地在引导期间向存储器预加载应用的制作方法
至少部分地在引导期间向存储器预加载应用相关申请本申请要求2008年9月18日提交的、美国临时专利申请第61/098,141号的优先权,在此通过参考引入其公开的全部内容。
背景技术
当个人计算机被接通电源时,基本输入/输出系统(BI0Q是首先被执行的代码。 传统的BIOS识别、测试并且初始化系统诸如硬盘和其他硬件的设备。当这样做时,BIOS准备个人计算机,从而使得操作系统软件可以被加载、执行以及获得控制。这个准备个人计算机的过程被称为引导。引导个人计算机通常是慢的,特别是当计算机的操作系统很大时,而越来越多的情况通常如此。不仅引导计算机十分缓慢,继而用户还要等待加载应用。如果用户想要检查电子邮件或者准备文字处理文档,常规的是,用户开启个人计算机,等待它进行引导,并且继而等待加载应用。

发明内容
本公开描述了一种用于提供至少部分地在引导期间向存储器预加载的一个或多个应用的方法,接收对应用之一的选择,以及至少部分地在引导期间将应用预加载到存储器中。在一些实施方式中,本方法通过呈现具有与一个或多个应用中的每一个相关联的可选择文本或图标的图形化用户接口来提供应用。在本方法的其他一些实施方式中,该方法还包括确定供预加载的应用的逻辑块,以及通过预加载逻辑块预加载应用。在此类实施方式中,该方法还可以重复接收对一个或多个应用的选择以提供其他所选择的应用,以及确定其他所选择的应用的逻辑块的操作。在此类实施方式中,逻辑块包括其他所选择应用的逻辑块。本公开还描述了控制器,配置用于响应于引导过程开始,访问存储在硬盘驱动器上的一个或多个应用,从硬盘驱动器读取应用,以及至少部分地在引导期间,向存储器预加载应用,该存储器可由在其上执行引导过程的计算机访问。在某些情况下,一个或多个应用与基本输入/输出系统(BIOS)或操作系统(OS)引导不相关联。在某些实施方式中,访问一个或多个应用访问与一个或多个应用相关联的逻辑块的索引(逻辑块存储在硬盘驱动器上并且索引标识逻辑块),从硬盘驱动器读取应用包括从索引中标识的硬盘驱动器读取逻辑块,以及预加载应用向存储器预加载逻辑块。在某些实施方式中,控制器还可以配置用于在引导过程开始之前,接收索引并且将索引存储在存储器上。在其他一些实施方式中,可以配置控制器,从而使得与一个或多个应用相关联的逻辑块的索引包括与多种应用相关联的逻辑块。在其他另一些实施方式中,可以配置控制器,从而使得在完成引导过程之前,逻辑块的预加载对与一个或多个应用中的特定的一个相关联的逻辑块进行预加载。此外,在其他实施方式中,配置控制器,从而使得索引也是与存储在该硬盘驱动器或另一个硬盘驱动器上的一个或多个附加的应用相关联的附加的逻辑块的索引,顺序指示将在引导过程完成之后被预加载的附加的逻辑块,并且还配置用于在引导过程完成之后向存储器预加载附加的逻辑块。


通过参考附图对详细说明书进行描述。在附图中,参考标号的最左侧的数字标识该参考标号第一次出现时所在的附图。在说明书和附图中的不同的实例中使用的相同的参考标号来指示类似的或者相同的项。图1示出了配置用于支持预加载技术的示例操作环境。图2示出了确定用于预加载的应用的方法。图3示出了用于至少部分地在引导过程期间预加载应用的方法。图4示出了指示图3中示出的方法的某些操作可以在何时被执行的示例时间线。图5示出了用于实现该技术的实施方式的示例硬盘驱动器环境。
具体实施例方式概述如以上背景技术中所述,用于引导计算机以及向计算机加载应用的传统技术可能会非常缓慢。即使使用相对新的存储器技术(诸如快闪存储器或其他固态驱动器(SSD)) 时,也经常如此。本公开描述了用于减少用于引导计算机和向存储器加载应用的总时间的技术和装置。在接下来的论述中,描述了示例操作环境。同样地,描述了可以在示例操作环境和其他环境中使用的示例方法。这些方法之后是其中可以包含图1中组件的示例硬盘驱动器实施方式。在接下来的讨论中,将仅仅通过示例的方式引用该环境,并且因此,以下描述的应用并非被限制在示例环境。实例操作环境图1示出了示例操作环境100,其包括计算机102,诸如台式个人计算机、膝上型计算机、服务器、手持计算机或其他计算设备。计算机102包括一个或多个处理器104、计算机可读介质106以及一个或者多个存储系统108。处理器104能够执行各种程序,包括在计算机可读介质106中示出的那些程序。 计算机可读介质106可以包括各种类型的易失性及非易失性介质,诸如随机存取存储器、 快闪存储器或者硬盘驱动器。这些硬盘驱动器可以包括或不包括存储系统108的硬盘驱动器。因此,存储系统108可以与计算机可读介质106中包括的相同或者是相分离。诸如当作为有线的、外部的硬盘驱动器操作,或包括有线的、外部的硬盘驱动器时,存储系统108 也可以从计算机102分离但可以由计算机102访问。所示出的计算机可读介质106包括基本输入/输出系统(BIOS) 110、操作系统(OS) 112以及配置器114。BIOS 110配置用于在引导情景中执行,诸如当计算机102被接通电源、重新启动或者从休眠中唤醒时。BIOS 110准备计算机102,从而使得操作系统112可以被加载、执行以及获得控制。这种准备包括各种动作,诸如识别、测试以及初始化系统设备(例如,一个或者多个存储系统108)。操作系统112配置用于在BIOS 110的引导操作期间或之后控制计算机102。在由一个或者多个处理器104执行操作系统112之前,向系统存储器(除了作
5为计算机可读介质106的一部分之外未示出)加载操作系统112。一个或者多个存储系统108配置用于使用控制器116提供非易失性存储器存储装置,控制器116包括或可以访问高速缓冲存储器118以及一个或者多个硬盘驱动器120。一个或者多个硬盘驱动器120包括旋转介质122,诸如磁盘或者光盘。存储系统108可以包括单一的或者多个硬盘驱动器,诸如单一硬盘驱动器的RAID控制的组。如果是RAID控制的组,控制器116是具有相当大数量的高速缓冲存储器的RAID控制器(例如,高速缓冲存储器118处于GB范围)。旋转介质122可以储存在计算机可读介质106、应用IM和/或一个或多个逻辑块索引126中包括的任何元素。虽然图1示出并且环境100包括硬盘驱动器 120以及旋转介质122,但是也可以使用其他形式的存储器。仅举几个例子,这些其他形式的存储器可以包括半导体或者固态存储器、磁带或光盘。应用IM可以包括多种不同的软件程序或者它们的例程和功能,它们可以与操作系统有关联或者无关联。仅举几个例子,非操作系统(非OS)应用包括文字处理、电子邮件、 日历、浏览、游戏以及图形程序。与操作系统相关联的应用可以包括可执行应用、小应用或者在引导期间可由操作系统使用的基于存储器的各种资源。所示出的应用IM包括一定数量的应用1至η。高速缓冲存储器118配置用于存储各种应用IM的逻辑块128,使得处理器 104可以向系统存储器快速地加载与逻辑块1 相关联的应用。高速缓冲存储器118可以包括各种类型的存储器或者缓冲器,诸如动态随机存储器(DRAM)或者外围组件互连 Express (PCIe)0为清楚起见,与应用124(1)相关联的逻辑块1 被标记为(1,1)到(1, i),与应用124 (η)相关联的逻辑块1 被标记为(η,Ι)到(n, i),其中逻辑块的编号为针对每个应用124的从1到i的某个数字。控制器116配置用于至少部分地在计算机102的引导过程期间预加载逻辑块128。 这种预加载使得OS 112快速地访问并且执行具有那些逻辑块的应用。控制器116可以包括高速缓冲存储器控制器卡或者硬盘驱动器微控制器,例如固件和微处理器。配置器114配置用于确定供预加载的应用(例如,应用124(1)到124(n)),确定与这些所确定的应用相关联的逻辑块(例如逻辑块128(1,1)到(1,i)以及128(n,l)到 (n, i)),以及为这些逻辑块提供标识符(例如,逻辑块索引126)以供控制器116使用(在图1中使用虚线示出关系)。配置器114包括接口 130以及为预加载所确定的应用124(用虚线示出)。接口 130可以在确定对哪个应用IM进行预加载中辅助配置器114,诸如通过允许由计算机102的用户选择应用。如下所述,配置器114可以采取其他方式,包括基于应用使用的历史,来确定供预加载应用和/或其他逻辑块。可以使用环境100的这些组件的方法和技术在以下详细阐述。示例方法如上所述,用于引导计算机以及向计算机加载应用的传统技术可能会非常缓慢。 本公开描述了用于减少例如用于引导计算机和向计算机加载应用的总时间的技术和装置。 这些技术包括示例方法,其可以被单独地使用或者结合使用。这些方法的方面可以在硬件、 固件、软件或者它们的组合中实现。该方法详细说明由一个或多个实体执行的操作,并且不必将用于执行操作的或者实体所示出的顺序限制于为执行操作而给定的示例。图2描绘了确定供预加载的应用的方法200。在202处,提供了用于向高速缓冲存
6储器部分地或者完全地预加载的应用。在关于环境100的示例中,配置器114的接口 130 提供图形化用户接口,其显示与应用124(1)到124(n)相关联的文本和图标,该应用IM诸如文字处理、电子邮件、游戏以及图形应用。这些应用可以是预定的,诸如先前向硬盘驱动器120的旋转介质122加载的应用,或者它们可以仅仅是由计算机102从各种本地和远程源访问的应用的某些集合。尽管预加载并不一定是完全的,或者总是在引导期间执行,诸如在高速缓冲存储器并不足够大以容纳全部所选择的应用的逻辑块的情况下,用户可以选择上述应用中的任意一个或多个以供预加载。在204处,接收到对一个应用的选择。此处接口 130接收来自用户的期望预加载应用1 之一的一些指示。在206处,确定用于向高速缓冲存储器预加载的应用的逻辑块。此处配置器114 确定哪些逻辑块1 适合于所选择的应用124,诸如各种可执行的部分。配置器114还可以确定针对这些逻辑块128的适当的顺序,诸如稍后为基于其他逻辑块的逻辑块进行排序, 或者基于哪个顺序最可能允许最快执行应用而进行排序。方法200可以继续支持选择应用,从而允许预加载不止一个应用。这通过从206 到202的虚线示出。针对每个所选择的应用,方法200在206处确定逻辑块。在逻辑块确定之后,方法200可以前进至208。在208处,方法200针对逻辑块向实体或组件提供标识符,该实体或组件能够诸如在引导期间部分地或者完全地预加载逻辑块。备选地或者附加地,配置器114可以在没有用户选择的情况下确定对哪些应用进行预加载。在210处,配置器114可以基于应用使用的历史或者预定的顺序(诸如由计算机102、应用IM或者0S112的制造商设置的顺序),确定对哪些应用进行预加载以及它们的预加载的顺序。在212处,方法200也可以或者附加地针对上述逻辑块创建有序的标识符的索引。 配置器114可以基于用户的选择的顺序,或者基于其他考虑,诸如基于在针对计算机102的引导过程完成之前可能被缓存的应用的最大数量,创建索引126。该顺序也可以由用户设置,或者基于用户选择执行哪些应用和/或用户何时进行选择的历史进行设置。如果该应用不是由负责预加载的实体(例如控制器116)在引导期间访问的应用, 则可以在206处或206之后将该应用加载到上述位置。因此,配置器114可以在选择或者确定这些应用之后向旋转介质122加载上述应用。相反地,在202处作为替代,配置器114 可以提供已经由控制器116访问的应用124。这些应用IM可以由控制器116访问是因为它们在当前的引导之前被加载到了旋转介质122。对于执行方法200,备选地或者附加地,配置器114可以提供其他附加应用,该应用可以在引导之后被预加载。在这种情况下,配置器114针对上述附加的应用沿用方法 200。如此,可以在引导之后预加载应用,这可以加快执行上述应用的过程。例如,如果用户经常在上午9:00打开浏览应用,诸如检查股票价格,则配置器114能够认识到用户的这个使用历史(或者允许由用户直接进行这个选择)。配置器114可以在逻辑块索引1 中指示上述使用历史,从而使得控制器116将在上午8:55预加载与浏览应用相关联的逻辑块 128。图3描绘了用于至少部分地在引导过程期间预加载应用的方法300。在302处,接收与一个或多个应用相关联的逻辑块的标识符(例如,索引)。如在以上环境100中所述并且继续关于方法200所描述的示例,控制器116接收逻辑块索引126,其标识与各种应用 1 相关联的逻辑块128。在304处,向在引导过程期间可以访问的存储器保存所接收的索引。这个存储器保持索引但在引导期间使该索引可以被获得,诸如在BIOS和/或OS引导期间可被获得。此处索引1 被存储在旋转介质122中,并且可以由控制器116在BIOS和OS引导期间访问。在306处,对响应于引导过程开始的索引进行访问。此处控制器116接收引导过程通过接通电源或者通过直接从BIOS接收指示而正在开始的指示。因此,控制器116能够在计算机102的引导过程没有完成的情况下访问硬盘驱动器120上的存储器的部分。当 BIOS、OS或者引导过程的其他部分正在引导时,控制器116可以访问索引1 并且向前执行方法300的其余部分。注意,在引导过程开始之前,诸如在计算机的某些在先使用期间, 执行302和304。在308处,从存储逻辑块的硬盘驱动器读取逻辑块。如上所述,索引标识供读取的逻辑块以及这些逻辑块的顺序。继续示例,控制器116按照索引1 中给定的顺序读取逻辑块U8。在310处,至少部分地在引导过程期间,向可由在其上执行引导过程的计算机访问的高速缓冲存储器预加载上述逻辑块。可以针对被读取的每个单一的逻辑块执行310, 从而使得方法300的某些操作被重复地执行。此处控制器116按照索引1 中给定的顺序读取每个逻辑块128,并且继而向高速缓冲存储器118储存该逻辑块。高速缓冲存储器118 可由计算机102访问,包括间接地通过控制器116访问或者直接地通过计算机102的某些其他组件访问。举例来说,将要预加载两个应用(n = 1和n =幻。假定第一应用具有4个逻辑块 (i = 4)并且第二应用具有6个逻辑块(i = 6),索引1 按照以下顺序排序逻辑块1_1、 1-2、1-3、1-4、2-1、2-2、2-3、2-4、2-5 和 2-6。同样考虑图4,其示出了示例时间线400,该时间线400指示何时可以执行方法300 的某些操作。首先,在402处接收接通电源或者引导指令。响应于此,BIOS 110被引导并且开始检查以及其他任务,以准备针对OS 112的计算机102,如持续时间404所示。同样响应于接通电源或者引导指令,控制器116在持续时间406期间读取并且向高速缓冲存储器118加载与至少一个应用IM相关联逻辑块128。当执行此过程时,OS 112也在持续时间408期间引导。注意,当引导过程完成并且OS 112获得了计算机102的控制时,OS 112 可以迅速地向系统存储器加载针对一个或多个应用IM的逻辑块。一旦向系统存储器加载了一个或多个逻辑块,则OS 112可以开始执行相关的一个或者多个应用124。这被作为持续时间410示出。在持续时间406上读取和加载块可以按照图3中的308和310由控制器 116执行。另外注意可选持续时间412和414。在持续时间412上,控制器116可以针对其他应用加载其他逻辑块,它们要么是高速缓冲存储器在引导期间对之不具有空间的逻辑块, 要么是基于某些其他指示的逻辑块,该指示诸如在特定时间或顺序为执行应用而加载逻辑块的时间(例如,在上午8:55加载股票行情收录机浏览器)。当为了执行相关的应用而由计算机102向系统存储器加载逻辑块之后,可以由控制器116从高速缓冲存储器118删除逻辑块,这开放了用于加载其他逻辑块的空间。
这些方法可以支持使用比较便宜的存储器资源,因为硬盘驱动器通常比SSD或者快闪存储器更加便宜。此外,这些方法还可以支持更快地执行应用。硬盘驱动器示例图5示出了示例硬盘驱动器(HDD) 500,其可以实现在此描述的各种技术。HDD 500 包括通常在502处标识的信号处理和/或控制电路,存储介质504和/或存储器506。举例来说,信号处理和/或控制电路可以包括控制器116,存储介质可以包括旋转介质122,存储器506可以包括或者是随机存取存储器(RAM)、诸如快闪存储器的低延迟非易失性存储器、 只读存储器(ROM)和/或其他适合的电子数据存储器,诸如高速缓冲存储器118。图1中还示出了控制器116、旋转介质122以及高速缓冲存储器118。在各种实现中,一个或者多个信号处理和/或控制电路502可以实现用于读取以及预加载数据、处理数据、执行数据计算和/或格式化数据。数据可以被输出至至少存储介质504和/或存储器506,和/或至少从存储介质504和/或存储器506接收。此外,HDD 500可以通过一条或多条有线或无线通信链路508与主机设备通信。主机设备可以包括台式或服务器计算机、移动计算设备、个人数字助理、蜂窝电话、媒体或MP3播放器和/或其他设备(例如图1中的计算机102)。在一个实现中,一个或者多个信号处理和/或控制电路502可以包括与电子电路整合的片上系统(SoC)、微处理器、存储器、输入-输出(I/O)逻辑控制、通信接口及组件、运行HDD 500的其他硬件、固件和/或软件。SoC还可以包括集成数据总线(未示出),其为了在组件之间进行数据通信而耦合SoC的各种组件。以上描述的一个或多个方法可以由一个或多个可编程处理器执行,该可编程处理器通过在输入数据上进行操作并生成输出,而执行计算机程序以实现功能。通常,该技术可以采取以下形式完全的硬件实施方式、完全的软件实施方式,或包含硬件和软件组件而这的实施方式。在一个实现中,该方法用软件实现,该软件包括但不限于固件、常驻软件、 微代码,等等。此外,该方法可以采取计算机程序产品的形式,该计算机程序产品可以从计算机可用的或者计算机可读的介质访问,以提供计算机或任何指令执行系统使用的程序代码,或提供与计算机或任何指令执行系统有关的程序代码。出于本描述的目的,计算机可用的或者计算机可读的介质可以是任何可以容纳、存储、通信、传播或者传输以供指令执行系统、装置或设备使用的程序,或供与指令执行系统、装置或设备有关的程序的装置。该介质可以是电子的、磁的、光的、电磁的、红外线,或者半导体系统(或装置或设备),或传播介质。计算机可读的介质的示例包括半导体或固态存储器、磁带、可移除计算机软盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘以及光盘。光盘的当前示例包括只读光盘存储器(CD-ROM)、读 / 写光盘(CD-R/W)以及 DVD。虽然已经使用针对结构特征和/或方法论的操作的语言描述了主题,应当理解的是,附加的权利要求中所限定的主题并不一定被限制到上述特定的特征或者操作,包括执行它们的顺序。
9
权利要求
1.一种方法,包括提供用于至少部分地在引导期间向存储器预加载的一个或多个应用;接收对所述一个应用的选择;以及至少部分地在引导期间将所述应用预加载到存储器中。
2.根据权利要求1所述的方法,其中所述应用与基本输入/输出系统(BIOS)或操作系统(OS)不相关联。
3.根据权利要求1所述的方法,还包括确定供预加载的所述应用的逻辑块,并且其中预加载所述应用对所述逻辑块进行预加载。
4.根据权利要求3所述的方法,还包括重复接收对所述一个或多个应用的选择以提供其他所选择的应用,以及确定逻辑块的操作,并且其中所述逻辑块包括其他所选择的所述应用的所述逻辑块。
5.根据权利要求4所述的方法,还包括支持选择供预加载与所述应用以及所述一个或多个其他所选择的应用相关联的所述逻辑块的顺序;接收所选择的顺序;以及按照有效地支持以所述所选择的顺序进行预加载的所述所选择的顺序,提供所述逻辑块的标识符。
6.根据权利要求4所述的方法,还包括提供所述逻辑块的索引,所述索引指示供预处理所述逻辑块的顺序,所述顺序基于使用所述应用和所述其他所选择的应用的历史。
7.根据权利要求1所述的方法,其中提供一个或多个应用包括呈现图形化用户接口, 所述图形化用户接口具有与所述一个或多个应用中的每个相关联的可选择的文本或图标。
8.根据权利要求1所述的方法,其中所述一个或多个应用包括文字处理程序、浏览程序、电子邮件程序或图形程序的一个或多个。
9.根据权利要求1所述的方法,其中所述一个或多个应用是先前向一个或多个硬盘驱动器加载的应用,所述一个或多个应用能够至少部分地在引导期间被从所述一个或多个硬盘驱动器读取。
10.根据权利要求1所述的方法,还包括,响应于接收所述应用的所述选择,向一个或多个硬盘驱动器加载所述应用,所述应用能够至少部分地在引导期间被从所述一个或多个硬盘驱动器读取。
11.根据权利要求1所述的方法,其中所述引导是基本输入/输出系统¢10 或者操作系统引导。
12.—种控制器,配置用于响应于引导过程开始,访问存储在硬盘驱动器上的一个或多个应用;从所述硬盘驱动器读取所述应用;以及至少部分地在所述引导期间,向存储器预加载所述应用,所述存储器可由在其上执行所述弓I导过程的计算机访问。
13.根据权利要求12所述的控制器,其中访问一个或多个应用访问与所述一个或多个应用相关联的逻辑块的索引,所述逻辑块存储在所述硬盘驱动器上并且所述索引标识所述逻辑块,从所述硬盘驱动器读取所述应用包括从所述索引中标识的所述硬盘驱动器读取所述逻辑块,以及预加载所述应用向所述存储器预加载所述逻辑块。
14.根据权利要求13所述的控制器,还配置用于在所述引导过程开始之前,接收所述索引并且将所述索引存储在所述存储器上。
15.根据权利要求13所述的控制器,其中与一个或多个应用相关联的逻辑块的所述索引包括与多个应用相关联的逻辑块。
16.根据权利要求13所述的控制器,其中在完成所述引导过程之前,所述逻辑块的预加载对与所述一个或多个应用中的特定的一个应用相关联的所述逻辑块进行预加载。
17.根据权利要求13所述的控制器,其中并行于基本输入/输出系统(BIOS)或操作系统引导,并且在所述基本输入/输出系统(BIOS)或操作系统引导期间,所述逻辑块的预加载对所述逻辑块进行预加载。
18.根据权利要求13所述的控制器,其中所述索引指示按其预加载所述逻辑块的顺序,并且其中按照所述顺序执行所述预加载。
19.根据权利要求13所述的控制器,其中所述索引也是与存储在所述硬盘驱动器上的一个或多个附加的应用相关联的附加的逻辑块的索引,所述索引指示将在所述引导过程完成之后被预加载的所述附加的逻辑块,并且还配置用于在所述引导过程完成之后将所述附加的逻辑块加载到所述存储器中。
20.根据权利要求12所述的控制器,其中所述一个或多个应用与基本输入/输出系统 (BIOS)或操作系统(OS)不相关联。
全文摘要
本发明涉及一种用于提供至少部分地在引导期间向存储器预加载的一个或多个应用的方法,包括接收对应用中的一个的选择,以及至少部分地在引导期间将应用预加载到存储器中。在一些实施方式中,本方法通过呈现具有与一个或多个应用中的每一个相关联的可选择的文本或图标的图形化用户接口提供应用。在本方法的其他一些实施方式中,本方法还包括确定供预加载的应用的逻辑块,以及通过预加载逻辑块对应用进行预加载。
文档编号G06F9/445GK102160035SQ200980136849
公开日2011年8月17日 申请日期2009年9月15日 优先权日2008年9月18日
发明者周为, 张柏坚, 朱志豪, 郑平 申请人:马维尔国际贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1