用于通过提供迟钝输入/输出抽象缩减平台引导时间的方法与流程

文档序号:13915632阅读:217来源:国知局
用于通过提供迟钝输入/输出抽象缩减平台引导时间的方法与流程

多个计算系统传统上已允许用户中断引导过程以便执行多种设置功能,如设置系统时钟、管理存储器设置、配置新硬盘驱动器、更改引导次序、密码重置等。可以由用户在基本输入/输出系统(BIOS)引导处理期间激活特定键盘按钮,如delete、F1、F2、F10或ctrl-alt-delete来启动中断。对于此类系统,因为枚举和轮询输入/输出(I/O)设备,如通用总线(USB)键盘以便确定用户实际是否已启动此类中断,引导时间可能会大大地被延长。

附图说明

图1是启动操作系统之前执行的操作的图示。

图2是根据本发明的一个实施例的启动操作系统之前执行的操作的图示。

图3是根据本发明一个实施例的用于执行增强型引导的方法流程图。

图4是根据本发明实施例的与启用固件和增强型引导的中断控制结合执行的操作的流程图。

图5是图示根据本发明至少一些实施例的第一和第二系统的框图。

图6是根据本发明的至少一个其他实施例的系统的框图。

图7是根据本发明的至少一个其他实施例的系统的框图。

具体实施方式

可以使用实施例来使能平台可中断性的控制,而无需经历轮询具体的输入/输出(I/O)设备(例如,通用串行总线(USB)键盘,其可能耗费约0.5-1.5秒)的工作负荷。随着如移动设备,例如智能电话、平板计算机、Ultrabooks™、电子阅读器等的计算系统更为流行,引导速度变得更为关键,因为存在即刻启动(instant-on)或接近即刻启动行为的用户期盼。尽管如此,仍存在多个矛盾的需求,如能够中断引导过程以进入某些预引导模式,如设置或诊断等,其可能由用户选择某种的热键而触发。为了适应此类操作,可能占用1/2秒仅枚举接受中断的键盘所耦合的总线。再者,为用户提供一定等待时间量来按下此键,由于引入使得平台常常执行显著地减慢引导过程的操作,即使从未用到过的情形,进一步使得引导时间变差。

实施例可以通过可控方式避免大量这种不提供用户输入的引导情形,因此能够实现大多数系统引导的接近即刻启动引导。根据多种实施例,如平台BIOS的预引导代码可以支持一个或多个硬件设备,如I/O设备的迟钝初始化(换言之,按需初始化)。

实施例暴露通常已暴露且使硬件实际初始化的标准接口,但是避免初始化过程。仅在消费者调用接口的情况下才涉及到硬件,以及由此(且仅由此才)将实际经历与将硬件初始化关联的时间。

现在参考图1,其中示出在启动操作系统之前执行而产生将硬件初始化以轮询用户输入的开销的常规操作的图示。如图1所示,启动操作系统(OS)的步骤开始于BIOS初始化,其将中央处理单元(CPU)/芯片组初始化。接下来,枚举总线,如I/O总线以便查找设备。在此总线上的可以有一个或多个硬件元件,如USB控制器,USB控制器又与如用户输入硬件设备,如键盘的设备接口连接。此类用户输入设备,更具体为I/O设备的示例可以包括键盘、鼠标、数字小键盘、触摸屏、显示屏上显示的虚拟键盘等。

如图所示,在硬件元件与设备之间发生探测操作以探测设备的存在。接下来,将周期性系统管理中断(SMI)编程以用于实现枚举旧式USB的周期性中断。如图所示,可以在CPU/芯片组中生成中断。相应地,发生轮询操作,其使得CPU进入系统管理模式(SMM),在此模式中,处理机能够执行以由此轮询例如键盘的设备是否存在,以及还轮询用户输入。例如,可以询问I/O设备以确定用户是否已提供输入以指示引导过程要被中断。由此监视它们是否有用户发起的输入。作为一个示例,此询问包括与该设备建立握手以及轮询该设备。建立握手可以包括例如,向特定端口发送特定格式的数据。

再次参考图1,接下来,从目标介质,如系统的例如闪速存储器的非易失性存储装置,或如硬盘驱动器的海量存储装置(如果存在的话)读取OS加载器。BIOS然后使OS启动。在OS启动之后,启动本地OS驱动器。注意,由于与探测设备和轮询操作关联的时间延迟,此引导过程可能花费的时间比期望的长。

相反根据某些实施例,可以在OS启动之前从引导过程免去多种开销。现在参考图2,其中示出的是根据本发明的一个实施例的启动操作系统之前执行的操作的图示。如图2所示,由于免去这些开销,OS的初始化与启动之间的时间能够远远地更短。如图所示,在CPU/芯片组的初始化之后,随后直接读取OS加载器,以便能够直接启动OS,从而免去上文描述的开销。

在此方式中,即使从关电的平台引导,仍发生感知为“即刻启动”或接近“即刻启动”操作。为了实现此感知的即刻启动操作,可以避免探测设备和轮询用户输入(一般甚至不发生)的开销。尽管如此,仍存在偶尔中断引导过程的有效产品需求,例如,进入诊断模式或允许用户输入进入BIOS设置例行程序。

现在参考图3,示出的是根据本发明一个实施例的用于执行增强型引导的方法流程图。如图3所示,方法100可以在如BIOS逻辑的固件中实现。如图所示,方法100开始于系统加电(框105)。响应系统加电,可以执行初始化(框110)。此初始化可能触发CPU/芯片组的初始化,发现存储器、一个或多个总线的初始化以及可能地其他某个低级硬件的初始化。此外,可以执行预引导环境,例如统一可扩展固件接口(UEFI)预引导环境。作为此预引导环境的一部分,可以在菱形框115处确定是否系统启用迟钝接口初始化。虽然本发明的范围就此发明不作限制,但是在一个实施例中,此确定可以基于指明是要启用还是要禁用增强型引导的BIOS设置。注意,此配置设置可以由用户、OS或其他实体来控制。如果系统未配置成这种迟钝接口初始化,则控制转移到框120,其中可以继续扩展正常初始化。正如上文结合图1描述的,初始化可以包括有关I/O总线的枚举和初始化、硬件初始化、轮询等的活动。

再次参考图3,在菱形框115,如果确定要发生增强型引导,则控制转移到框125,其中可以暴露输入硬件(例如,键盘或其他设备)的接口。注意此操作是仅存储器的操作,并且因此零时间发生,因为该设备的实际初始化被避免,并且仅发生接口的广告。在一个实施例中,此接口广告可以根据UEFI简单文本输入协议。接下来,从框125和菱形框115,控制转移到菱形框130,其中可以确定是否要从用户请求输入。此确定可以基于指示要中断引导的BIOS设置。在一个实施例中,用户可以在该平台的上次开机周期期间选择此设置以指示用户是否要尝试中断系统的下一次引导。如果没有发生此类输入请求,则控制直接地转移到框140,其中可以启动OS自举代码,在一个实施例中,这可以通过引导管理器来实现。相应地,控制转移到框150,其中可以完成OS引导。

再次参考图3,如果相反从用户请求输入,则控制转移到框160,其中可以调用输入设备的接口。在一个实施例中,此接口可以根据UEFI简单文本输入协议。由于调用先前暴露的接口,控制转移到框165,其中可以将输入硬件初始化,例如根据PS/2、USB或其他协议。注意,此初始化可以是在硬件先前尚未初始化的情形中发生(例如,如选择常规完整引导过程的情况中在框120处所执行的)。

再次参考图3,控制接下来转移到框170,其中可以服务于该请求并返回数据。例如,在用户键盘输入的上下文中,可以调用键盘处理机以从键盘缓存器中获取就要继续的敲键,并将数据返回到指示的位置,如使用此数据作为输入的BIOS例行程序。接下来,控制转移到框150以便如上文所述的启动OS自举代码。虽然是在图3的实施例中以此高级别上示出的,但是要理解本发明的范围在此发明不作限制。

现在参考图4,其中示出的是根据本发明实施例的与启用固件和增强型引导的中断控制结合执行的操作的流程图。如图4所示,这些操作可以部分由存在OS的逻辑执行以及部分由BIOS逻辑执行。一般来说,OS逻辑能够用于使用户能够配置平台以启用要中断下一次引导,例如启用诊断模式、BIOS设置的用户更新等。而BIOS逻辑能够用于执行增强型引导(也称为高性能引导模式)或用户中断的引导模式,具体哪个根据设置而定。

如图4所示,方法300可以开始于确定(在菱形框305)用户是否选择BIOS设置控制面板applet,在一个实施例中,该BIOS设置控制面板applet可以存在于OS的控制面板用户接口中。如果情况如此,则控制转移到框310,其中可以调用特定的应用编程接口(API),例如设置固件环境变量API以指示要中断下一次引导。此设置信息可以存储在作为OS和BIOS均可访问的公共资料库的共享静态变量位置中,在一个实施例中,其可以用做邮箱接口,以便使用OS选择的设置能够在此后被BIOS访问。控制然后转移到菱形框315,其中可以确定applet策略是否指示应该发生重启。如果并非如此,则在框320处可以继续正常的系统操作。否则,在框330处,可以发生平台重启。注意,虽然图4的实施例演示使用控制面板程序的applet以使用户可以设置一个或多个固件环境变量(例如,UEFI变量),但是在其他实施例中,可以通过与操作系统分离的驱动器、applet或其他软件程序来输入用户输入。

再次参考图4,可以响应此平台重启或系统的下一次引导,发生基于此类OS提供的设置的引导期间的BIOS操作。在任一种情况中,控制均转移到框340,其中可以对系统加电。控制然后转移到框345,其中可以将平台初始化,例如如上所论述的。然后,在菱形框350处,可以确定是否启用平台支持有条件的高性能引导。如上文所述,此有条件的高性能引导可以避免初始化如用户接口硬件的某些硬件的开销。

再次框图4,如果这样启用平台,则控制转移到框360,其中可以读取能够从静态变量存储装置获取的策略变量,以确定是否选择了高性能引导模式。换言之,在没有用户中断要发生(或不可能发生)的情况中,可以执行根据本发明实施例的增强型引导。在一个实施例中,此策略变量可以是指示符(如,标志)以指示是否期望用户中断,或可能地,意味着用户出于某个原因打算中断下次引导。此变量可以存储在存在OS的环境中的公共可访问存储位置中。在一个实施例中,此存储位置可以是易失性或非易失性存储器(NVM)中的任何此类共享的存储器位置,如由闪速NVM备份的UEFI变量。

如果引导要采用无用户发起的引导中断的高性能模式(如菱形框365中所确定的),则控制转移到框390,其中可以启动OS。否则,控制转移到框370(其中如果平台未启用高性能或增强型引导,则控制也转移)。在框370处,初始化可以继续,这可以包括枚举多种I/O总线以探测(并由此初始化)输入设备。接下来,可以在菱形框375处确定是否已接收到任何引导中断。如果情况如此,则可以执行适合的操作,如给定的BIOS例行程序,例如启用BIOS菜单的显示的显示例行程序(框380)。在一个实施例中,此显示可以是诊断屏幕的显示、BIOS设置用户界面菜单的显示或其他显示。BIOS菜单可以包括例如,如下选项的其中一个或多个:配置硬件;设置系统时钟,和/或多种密码提示,如对BIOS用户界面功能本身进行安全访问以及防止恶意用户从非授权的外围设备引导系统的密码。当然,响应此菜单,用户可以提供某些信息,如配置更新、时钟更新等。

BIOS然后可以使用此信息来执行配置的存储和更新。由于此操作是终端状态,例如通过对BIOS设置菜单的更新,所以发生机器重启,并且由此控制可以转移回到框340(为了图示简易而未在图4中示出)。

再次参考图4,如果在菱形框375处未接收引导中断,则控制转移到菱形框385,其中可以确定OS启动之前的平台相关的时间量是否耗尽。此预定时间量可以随不同平台而有所不同,并且可以至少部分地基于启动OS之前允许耗用的平台相关最大时间量。如果情况并非如此,则控制转移返回到框370。如果该时间量已耗尽,则控制转移到框390,其中可以启动OS。

上文论述的附图图示其中缺省操作是增强型较快速的引导过程的实施例,其不询问I/O设备,除非用户选择覆盖增强型处理而是使得引导可中断。但是,本领域技术人员将认识到缺省处理是策略问题,并且能够容易地逆向实现。由此,选择I/O设备的询问是否应该是缺省引导处理的一部分是平台策略问题,并且对于不同的实施例可能有所不同。对于备选实施例,缺省引导操作是I/O设备的询问总是发生,以便提供引导处理中断,但是用户而是可以通过用户覆盖处理来选择执行更快的增强型引导处理(例如,不轮询或询问I/O设备)。

实施例由此可以用于将BIOS内的引导时间缩减超过25%,并且解决“即刻启动”与引导可中断性的冲突需求。因为作为正常引导行为增加引导性能帮助旨在进入任务关键的环境且有要求五个9(99.999%连续运行时间)的甚至更大平台。引导速度是一个因素,因为由于99.999%的连续运行时间要求,平台每年只能“停运行”分钟左右。如果平台需要重启,则重启越快越好。

现在参考图5,其中示出的是第一系统500a和第二系统500b的框图,每个框图可以执行上文描述的增强型引导处理的实施例。如图5所示,第一系统500a可以包括一个或多个处理元件510、515,其耦合到图形存储器控制器集线器(GMCH)520。图5中以虚线表示附加处理器515的可选特性。

每个处理元件510、515可以是单个核或作为备选可以包括多个核。除了处理核外,处理元件510、515作为备选可以包括其他晶片上元件,如集成的存储器控制器和/或集成的I/O控制逻辑。再有,对于第一系统500a的至少一个实施例,处理元件510、515的核可以是多线程实现的,因为它们可以对应于每个核包括多于一个硬件线程上下文。

图5图示GMCH 520可以耦合到存储器530,存储器530可以是例如动态随机存取存储器(DRAM)。对于至少一个实施例,存储器530可以包括包含操作系统的代码或指令。

GMCH 520可以是芯片组、或芯片组的一部分。GMCH 520可以与处理器510、515通信,并控制处理器510、515与存储器530之间的交互。GMCH 520还可以用作处理器510、515与系统500a的其他元件之间的加速总线接口。对于至少一个实施例,GMCH 520经由多点下传总线,例如前端总线(FSB)595与处理器510、515通信。对于其他实施例(参见例如图6和图7),GMCH 520经由点到点互连与处理器510、515通信。

再者,GMCH 520耦合到显示器540(例如,平板显示器或触敏显示设备)。GMCH 520可以包括集成图形加速器。GMCH 520还耦合到输入/输出(I/O)控制器集线器(ICH)550,输入/输出(I/O)控制器集线器(ICH)550可以用于将多种外围设备耦合到系统500a。在例如图5的实施例中示出的是外部图形设备560,外部图形设备560可以是分离的图形设备,其连同如一个或多个键盘、鼠标或数字小键盘的其他外围设备570一起耦合到ICH 550。

作为备选,第一系统500a中还可以存在附加或不同的处理元件。例如,下文结合第二实施例500b论述的特征中任何一个特征可以包含在第一系统500a中。再有,附加的处理元件515可以包括与处理器510系统的附加处理器、与处理器510异构的或不对称的附加处理器、加速器(例如,图形加速器或数字信号处理器(DSP)单元)、现场可编程门阵列或任何其他处理元件。就频谱效用而言,包括体系结构、微体系结构、热、功耗特征等,物理资源510、515之间可能存在多种差异。这些差异实际可以证明为处理元件510、515之间的非对称性和异构性。对于至少一个实施例,多种处理元件510、515可以驻留在相同的晶片封装中。

图5还图示第二系统500b可以包括一个或多个处理元件511。与图5所示的第一系统500a一样,系统500b是可以使用按期望配置电子设备500b的任何适合硬件和/或软件来实现的电子设备。对于一个实施例,图5图示示例系统500b,其包括触敏显示设备502、一个或多个处理器511、耦合到至少一个处理器511的系统控制逻辑504、耦合到系统控制逻辑504的系统存储器530、耦合到系统控制逻辑504的非易失性存储器/存储装置535以及耦合到系统控制逻辑504耦合的一个或多个通信接口506。

触敏显示设备502(本文也称为“触摸屏”)可以使用任何适合的触敏技术来实现,例如且不限于,电容式、电阻式、表面声波(SAW)、红外线和光学成像。对于一个实施例,用于触敏显示设备502的触敏技术可能无需在其表面上实际触摸,而是可以感测接近其表面的物体存在。无论如何,此类技术可以视为触敏,因为此类技术将类似地感测实际触摸在显示设备502的表面上的物体,并且因为在电子设备500b被使用时可能实际触摸到此类表面。对于一个实施例,触敏显示设备502可以使用任何适合的多点触技术来实现。触敏显示设备502包括可以使用任何适合显示技术来实现的显示器,例如液晶显示屏(LCD)。对于至少一个实施例,系统控制逻辑430可以包括一个或多个图形控制器,其用于提供至触敏显示设备502的一个或多个显示接口。

对于至少一个实施例,系统控制逻辑504可以包括任何适合接口控制器,其用于提供与至少一个处理器511和/或与系统控制逻辑504通信的任何适合设备或组件的任何适合接口。

对于至少一个实施例,系统控制逻辑504可以包括一个或多个存储器控制器,其用于提供至系统存储器530的接口。系统存储器530可以用于加载和存储例如系统500b的数据和/或指令。对于至少一个实施例,系统存储器530可以用于存储任何适合的软件532,如任何的驱动器软件、应用软件和/或操作系统软件。对于一个实施例,系统存储器530可以包括任何适合的易失性存储器,例如适合的动态随机存取存储器(DRAM)。

对于至少一个实施例,系统控制逻辑504可以包括一个或多个输入/输出(I/O)控制器,其用于提供至触敏显示设备502、非易失性存储器和/或存储装置535以及通信接口506的接口。

非易失性存储器和/或存储装置535可以用于存储例如,数据和/或指令。非易失性存储器和/或存储装置535可以包括任何适合的非易失性存储器,例如闪速存储器,和/或可以包括任何适合的非易失性存储设备,例如一个或多个硬盘驱动器(HDD)、一个或多个压缩光盘(CD)驱动器和/或一个或多个数字多功能光盘(DVD)驱动器。对于至少一个实施例,非易失性存储器和/或存储装置535可以包括存储用于BIOS处理的指令537的非易失性只读存储器(ROM)。

通信接口506可以为系统500b提供通过一个或多个网络进行通信和/或与任何其他适合设备进行通信的接口。通信接口506可以包括任何适合的硬件和/或固件。对于一个实施例,通信接口506可以包括例如网络适配器、无线网络适配器、电话调制解调器和/或无线调制解调器。对于无线通信,对于一个实施例,通信接口506可以使用一个或多个天线508。

对于至少一个实施例,系统控制逻辑504可以包括一个或多个输入/输出(I/O)控制器,其用于提供至任何适合输入/输出设备,例如帮助将声音转换成对应数字信号和/或帮助将数字信号转换成对应声音的音频设备、照相机、摄像机、打印机和/或扫描仪的接口。

对于至少一个实施例,可以将至少一个处理器511与系统控制逻辑504的一个或多个控制器的逻辑封装在一起。对于一个实施例,可以将至少一个处理器511与用于系统控制逻辑504的一个或多个控制器的逻辑封装在一起以形成封装中系统(SiP)。对于一个实施例,可以将至少一个处理器511与用于系统控制逻辑504的一个或多个控制器的逻辑一起集成在同一个晶片上。对于一个实施例,可以将至少一个处理器511与用于系统控制逻辑504的一个或多个控制器的逻辑一起集成在同一个晶片上以形成芯片上系统(SoC)。

虽然对于一个实施例描述为在系统500b中使用,但是对于其他实施例,触碰触敏显示设备502可以在系统系统配置中使用。

现在参考图6,其中示出根据本发明实施例的第三系统实施例600的框图。如图6所示,多处理器系统600是点到点互连系统,并且包括经由点到点互连650耦合的第一处理元件670和第二处理元件680。如图6所示,处理元件670和680的每个处理元件都可以是多核处理器,包括第一和第二处理器核(即处理器核674a和6 74b和处理器核684a和6 84b)。

作为备选,处理元件670、680的其中一个或多个可以是处理器以外的元件,如加速器或场可编程门阵列。

虽然仅示出有两个处理元件670、680,但是要理解,所附权利要求的范围不限于此。在其他实施例中,给定处理器中可以存在一个或多个附加的处理元件。

第一处理元件670还可以包括存储器控制器集线器(MCH)672和点到点(P-P)接口676和678。相似地,第二处理元件680可以包括MCH 682和P-P接口686和688。如图6所示,MCH 672和682将处理器耦合到相应存储器,即存储器632和存储器634,它们可以是本地连接到相应处理器的主存储器的一部分。

可以分别经由P-P互连652和654将第一处理元件670和第二处理元件680耦合到芯片组690。如图6所示,芯片组690包括P-P接口694和698。而且,芯片组690还包括将芯片组690 与高性能图形引擎638耦合的接口692 。在一个实施例中,可以使用总线639将图形引擎638耦合到芯片组690。作为备选,点到点互连639可以耦合这些组件。

然后,可以经由接口696将芯片组690耦合到第一总线616。在一个实施例中,第一总线616可以是外设互连(PCI)总线或诸如PCI Express总线的总线或另一种第三代I/O互连总线,虽然所附权利要求的范围并不局限于此。

如图6所示,可以将多种I/O设备614连同总线桥618耦合到第一总线616,以及总线桥618将第一总线616耦合到第二总线620。在一个实施例中,第二总线620可以是低引脚计数(LPC)总线。在一个实施例中,可以将多种设备耦合到第二总线620,第二总线620 包括例如键盘和/或鼠标622 、通信设备626 和可以包含代码630的如磁盘驱动器或其他海量存储设备的数据存储单元628。代码630可以包括用于执行上文描述的一个或多个方法的实施例的指令。而且,还可以将音频I/O 624耦合到第二总线620。注意其他体系结构也是可能的。例如,不实施图6的点到点体系结构,系统而是可以实施多点下传总线或另一种此类体系结构。

现在参考图7,其中示出根据本发明实施例的第四系统实施例700的框图。与图6和图7中的元件相似,图6中的相似引用数字和某些方面中在图7中予以省略,以便避免妨碍理解图7的其他方面。

图7图示处理元件670、680可以分别包括集成的存储器和I/O控制逻辑(“CL”)672和682。对于至少一个实施例,CL 672、682可以包括如上文结合图5和图6描述的存储器控制器集线器逻辑(MCH)。此外,CL 672、682还可以包括I/O控制逻辑。图7图示不仅存储器632、634耦合到CL 672、682,而且I/O设备714也可以耦合到控制逻辑672、682。旧式I/O设备715可以耦合到芯片组690。

可以在硬件、软件、固件或此类实施方法的组合中实施本文披露的机制的实施例。实施例可以实现为可编程系统上执行的计算机程序,该可编程系统包括至少一个处理器、数据存储系统(包括易失性和/或非易失性存储器和/或存储元件)、至少一个输入设备和至少一个输出设备。

可以将程序代码,如图6所示的代码630应用于输入数据以执行本文描述的功能和生成输出信息。例如,程序代码630可以包括编码成执行图3和图4所示的实施例的操作系统和/或BIOS。相应地,本发明的实施例还包括机器可访问介质,该机器可访问介质包含用于执行本发明的操作的指令或包含定义本文描述的结构、电路、装置、处理器和/或系统特征的设计数据(例如HDL)的指令。此类实施例也可以称为程序产品。

此类机器可访问介质可以包括且不限于,机器或设备制造或形成的有形制品布置,包括诸如硬盘的非瞬态存储介质、包括软盘、光盘、压缩光盘只读存储器(CD-ROM)、压缩光盘可写(CD-RW)和磁光盘的任何其他类型的存储盘、诸如只读存储器(ROM)、随机存取存储器(RAM)(例如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM))、可擦写可编程只读存储器(EPROM)、电可擦写可编程只读存储器(EEPROM)、磁卡或光卡的半导体装置、或者适用于存储电子指令的任何其他类型的介质。

下文示例有关于又一些实施例。在一个实施例中,一种系统包括处理器、耦合到该处理器的至少一个用户输入硬件设备和用于存储预引导代码的非易失性存储装置,该预引导代码包括第一例行程序,第一例行程序用于执行如下操作:执行处理器的初始化,基于系统的配置暴露至少一个用户输入硬件设备的接口,但是不将至少一个用户输入硬件设备初始化,并且启动OS自举代码以启动OS而不进行至少一个用户输入硬件设备的初始化。

在一个实施例中,该系统还包括第二存储装置,第二存储装置用于存储指示系统的下一次引导要被用户输入中断的指示符。该处理器可以访问存储在第二存储装置中的指示符,并在指示符指示系统的下一次引导要被中断时将至少一个用户输入硬件设备初始化。再者,该处理器用于在初始化之后以及预定的时间未经由至少一个用户输入硬件设备接收到用户输入之后启动OS自举代码。该预引导代码可以包括第二例行程序,第二例行程序用于经由至少一个用户输入硬件设备接收配置更新,并将该配置更新存储在存储装置中,以及此后使系统重启。当指示符指示系统的下一次引导将不中断时,该处理器可以直接启动OS自举代码而不进行至少一个用户输入设备的初始化。

在另一个实施例中,一种方法包括:执行计算机系统的初始化以将计算机系统的处理器初始化;基于预引导代码的配置,执行处理器的预引导代码,包括暴露计算机系统的用户输入硬件设备的接口,但是不将用户输入硬件设备初始化;以及启动OS自举代码以启动OS而不将该用户输入硬件设备初始化。

该方法还可以包括在启动OS自举代码之前确定是否请求来自用户的输入,以及如果情况如此,则调用用户输入硬件设备的接口。响应调用该接口,可以将该用户输入硬件设备初始化。在将该用户输入硬件设备初始化之后,可以经由用户接口处理机从用户输入硬件设备获取数据,可以将其提供到预引导代码。确定是否请求来自用户的输入可以包括,访问指示预引导代码执行期间是否预期有用户中断的静态变量。在一实施例中,预引导代码的配置由用户控制。用户可以在计算机系统的前次加电周期期间更新预引导代码内的设置以使用户输入硬件设备在计算机系统的下一次加电周期中启动OS自举代码之前被初始化。可以在计算机系统中存储指示符以指示计算机系统的下一次引导要被用户输入中断,以便该方法包括在下一次引导期间访问该指示符,并在指示符指示计算机系统的下一次引导要被中断时在下一次引导期间将用户输入硬件设备初始化。

在另一个实施例中,至少一个计算机可读介质包括在被执行时使得计算机系统能够执行如下操作的指令:基于计算机系统的配置,在预引导环境期间暴露计算机系统的用户输入硬件设备的接口,但是不将用户输入硬件设备初始化;并且启动OS自举代码以在用户输入硬件设备的初始化之前在计算机系统的引导环境中启动OS。

介质还可以包括使计算机系统能够在计算机系统的存储装置中存储的指示符指示计算机系统的下一次引导将不中断时在用户输入设备的初始化之前直接启动OS自举代码的指令。这些指令还使计算机系统能够访问存储在存储装置中的指示符,在指示符指示系统的下一次引导要被中断时将用户输入硬件设备初始化,并且在初始化之后以及预定时间未经由用输入硬件设备接收到用户输入之后启动OS自举代码。这些指令还使计算机系统能够经由用户输入硬件设备接收配置更新,并将该配置更新存储在存储装置中,以及此后使计算机系统重启。以及这些指令还可以使计算机系统调用接口以将用户输入硬件设备初始化,以及在用户输入硬件设备初始化之后,经由用户接口处理机从用户输入硬件设备获取与配置更新对应的数据。

可以采用公知的方式将该输出信息应用于一个或多个输出设备。出于此应用的目的,处理系统包括具有例如下列处理器的任何系统:数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器。

可以采用高级过程或面向对象的编程语言来实现这些程序以与处理系统通信。如果期望的话,还可以采用汇编或机器语言来实现这些程序。事实上,本文描述的机制在范围上不限于任何特定的编程语言。在任何情况中,该语言可以是编译或解释的语言。

虽然本发明是结合有限数量的实施例来描述的,但是本领域技术人员将设想到基于此的多种修改和变化。所附权利要求理应涵盖所在本发明的真实精神和范围内的所有此类修改和变化。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1