买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:英特尔公司
摘要:披露用于增强型系统引导处理的方法、系统和计算机程序产品,其更快地启动操作系统,因为如用户输入硬件设备的某些设备可以直到确定可能要对引导过程进行用户中断之后才被初始化。即,虽然这些设备的接口被暴露,但是直到对该接口的调用发生之后才发生初始化。描述了其他实施例并且对这些其他实施例要求权利。
主权项:一种用于执行预引导操作的系统,其包括:处理器部件;耦合到所述处理器部件的至少一个用户输入硬件部件;以及用于存储包含第一例行程序的预引导代码的非易失性存储部件,所述第一例行程序用于执行所述处理器部件的初始化,基于所述系统的配置暴露所述至少一个用户输入硬件部件的接口,但是不将所述至少一个用户输入硬件部件初始化,并且启动操作系统(OS)自举代码以启动OS而不进行所述至少一个用户输入硬件部件的初始化。
全文数据:用于通过提供迟钝输入输出抽象缩减平台引导时间的方法背景技术[0001]多个计算系统传统上已允许用户中断引导过程以便执行多种设置功能,如设置系统时钟、管理存储器设置、配置新硬盘驱动器、更改引导次序、密码重置等。可以由用户在基本输入输出系统BIOS引导处理期间激活特定键盘按钮,如delete、Fl、F2、F10或Ctrl-alt-delete来启动中断。对于此类系统,因为枚举和轮询输入输出(I0设备,如通用总线USB键盘以便确定用户实际是否已启动此类中断,引导时间可能会大大地被延长。附图说明[0002]图1是启动操作系统之前执行的操作的图示。[0003]图2是根据本发明的一个实施例的启动操作系统之前执行的操作的图示。[0004]图3是根据本发明一个实施例的用于执行增强型引导的方法流程图。[0005]图4是根据本发明实施例的与启用固件和增强型引导的中断控制结合执行的操作的流程图。[0006]图5是图示根据本发明至少一些实施例的第一和第二系统的框图。[0007]图6是根据本发明的至少一个其他实施例的系统的框图。[0008]图7是根据本发明的至少一个其他实施例的系统的框图。具体实施方式[0009]可以使用实施例来使能平台可中断性的控制,而无需经历轮询具体的输入输出IO设备例如,通用串行总线USB键盘,其可能耗费约0.5-1.5秒)的工作负荷。随着如移动设备,例如智能电话、平板计算机、UltrabooksTM、电子阅读器等的计算系统更为流行,引导速度变得更为关键,因为存在即刻启动(instant-on或接近即刻启动行为的用户期盼。尽管如此,仍存在多个矛盾的需求,如能够中断引导过程以进入某些预引导模式,如设置或诊断等,其可能由用户选择某种的热键而触发。为了适应此类操作,可能占用12秒仅枚举接受中断的键盘所耦合的总线。再者,为用户提供一定等待时间量来按下此键,由于引入使得平台常常执行显著地减慢引导过程的操作,即使从未用到过的情形,进一步使得引导时间变差。[0010]实施例可以通过可控方式避免大量这种不提供用户输入的引导情形,因此能够实现大多数系统引导的接近即刻启动引导。根据多种实施例,如平台BIOS的预引导代码可以支持一个或多个硬件设备,如10设备的迟钝初始化换言之,按需初始化)。[0011]实施例暴露通常已暴露且使硬件实际初始化的标准接口,但是避免初始化过程。仅在消费者调用接口的情况下才涉及到硬件,以及由此且仅由此才将实际经历与将硬件初始化关联的时间。[0012]现在参考图1,其中示出在启动操作系统之前执行而产生将硬件初始化以轮询用户输入的开销的常规操作的图示。如图1所示,启动操作系统OS的步骤开始于BIOS初始化,其将中央处理单元CPU芯片组初始化。接下来,枚举总线,如10总线以便查找设备。在此总线上的可以有一个或多个硬件元件,如USB控制器,USB控制器又与如用户输入硬件设备,如键盘的设备接口连接。此类用户输入设备,更具体为IO设备的示例可以包括键盘、鼠标、数字小键盘、触摸屏、显示屏上显示的虚拟键盘等。[0013]如图所示,在硬件元件与设备之间发生探测操作以探测设备的存在。接下来,将周期性系统管理中断(SMI编程以用于实现枚举旧式USB的周期性中断。如图所示,可以在CPU芯片组中生成中断。相应地,发生轮询操作,其使得CPU进入系统管理模式SMM,在此模式中,处理机能够执行以由此轮询例如键盘的设备是否存在,以及还轮询用户输入。例如,可以询问IO设备以确定用户是否已提供输入以指示引导过程要被中断。由此监视它们是否有用户发起的输入。作为一个示例,此询问包括与该设备建立握手以及轮询该设备。建立握手可以包括例如,向特定端口发送特定格式的数据。[0014]再次参考图1,接下来,从目标介质,如系统的例如闪速存储器的非易失性存储装置,或如硬盘驱动器的海量存储装置如果存在的话读取OS加载器。BIOS然后使OS启动。在OS启动之后,启动本地OS驱动器。注意,由于与探测设备和轮询操作关联的时间延迟,此引导过程可能花费的时间比期望的长。[0015]相反根据某些实施例,可以在OS启动之前从引导过程免去多种开销。现在参考图2,其中示出的是根据本发明的一个实施例的启动操作系统之前执行的操作的图示。如图2所示,由于免去这些开销,OS的初始化与启动之间的时间能够远远地更短。如图所示,在CPU芯片组的初始化之后,随后直接读取OS加载器,以便能够直接启动0S,从而免去上文描述的开销。[0016]在此方式中,即使从关电的平台引导,仍发生感知为“即刻启动”或接近“即刻启动”操作。为了实现此感知的即刻启动操作,可以避免探测设备和轮询用户输入一般甚至不发生)的开销。尽管如此,仍存在偶尔中断引导过程的有效产品需求,例如,进入诊断模式或允许用户输入进入BIOS设置例行程序。[0017]现在参考图3,示出的是根据本发明一个实施例的用于执行增强型引导的方法流程图。如图3所示,方法100可以在如BIOS逻辑的固件中实现。如图所示,方法100开始于系统加电框105。响应系统加电,可以执行初始化框110。此初始化可能触发CPU芯片组的初始化,发现存储器、一个或多个总线的初始化以及可能地其他某个低级硬件的初始化。此夕卜,可以执行预引导环境,例如统一可扩展固件接口(UEFI预引导环境。作为此预引导环境的一部分,可以在菱形框115处确定是否系统启用迟钝接口初始化。虽然本发明的范围就此发明不作限制,但是在一个实施例中,此确定可以基于指明是要启用还是要禁用增强型引导的BIOS设置。注意,此配置设置可以由用户、OS或其他实体来控制。如果系统未配置成这种迟钝接口初始化,则控制转移到框120,其中可以继续扩展正常初始化。正如上文结合图1描述的,初始化可以包括有关10总线的枚举和初始化、硬件初始化、轮询等的活动。[0018]再次参考图3,在菱形框115,如果确定要发生增强型引导,则控制转移到框125,其中可以暴露输入硬件例如,键盘或其他设备)的接口。注意此操作是仅存储器的操作,并且因此零时间发生,因为该设备的实际初始化被避免,并且仅发生接口的广告。在一个实施例中,此接口广告可以根据UEFI简单文本输入协议。接下来,从框125和菱形框115,控制转移到菱形框130,其中可以确定是否要从用户请求输入。此确定可以基于指示要中断引导的BIOS设置。在一个实施例中,用户可以在该平台的上次开机周期期间选择此设置以指示用户是否要尝试中断系统的下一次引导。如果没有发生此类输入请求,则控制直接地转移到框140,其中可以启动OS自举代码,在一个实施例中,这可以通过引导管理器来实现。相应地,控制转移到框150,其中可以完成OS引导。[0019]再次参考图3,如果相反从用户请求输入,则控制转移到框160,其中可以调用输入设备的接口。在一个实施例中,此接口可以根据UEFI简单文本输入协议。由于调用先前暴露的接口,控制转移到框165,其中可以将输入硬件初始化,例如根据PS2、USB或其他协议。注意,此初始化可以是在硬件先前尚未初始化的情形中发生例如,如选择常规完整引导过程的情况中在框120处所执行的)。[0020]再次参考图3,控制接下来转移到框170,其中可以服务于该请求并返回数据。例如,在用户键盘输入的上下文中,可以调用键盘处理机以从键盘缓存器中获取就要继续的敲键,并将数据返回到指示的位置,如使用此数据作为输入的BIOS例行程序。接下来,控制转移到框150以便如上文所述的启动OS自举代码。虽然是在图3的实施例中以此高级别上示出的,但是要理解本发明的范围在此发明不作限制。[0021]现在参考图4,其中示出的是根据本发明实施例的与启用固件和增强型引导的中断控制结合执行的操作的流程图。如图4所示,这些操作可以部分由存在OS的逻辑执行以及部分由BIOS逻辑执行。一般来说,OS逻辑能够用于使用户能够配置平台以启用要中断下一次引导,例如启用诊断模式、BIOS设置的用户更新等。而BIOS逻辑能够用于执行增强型引导也称为高性能引导模式或用户中断的引导模式,具体哪个根据设置而定。[0022]如图4所示,方法300可以开始于确定在菱形框305用户是否选择BIOS设置控制面板applet,在一个实施例中,该BIOS设置控制面板applet可以存在于OS的控制面板用户接口中。如果情况如此,则控制转移到框310,其中可以调用特定的应用编程接口(API,例如设置固件环境变量API以指示要中断下一次引导。此设置信息可以存储在作为OS和BIOS均可访问的公共资料库的共享静态变量位置中,在一个实施例中,其可以用做邮箱接口,以便使用OS选择的设置能够在此后被BIOS访问。控制然后转移到菱形框315,其中可以确定applet策略是否指示应该发生重启。如果并非如此,则在框320处可以继续正常的系统操作。否则,在框330处,可以发生平台重启。注意,虽然图4的实施例演示使用控制面板程序的applet以使用户可以设置一个或多个固件环境变量例如,UEFI变量),但是在其他实施例中,可以通过与操作系统分离的驱动器、applet或其他软件程序来输入用户输入。[0023]再次参考图4,可以响应此平台重启或系统的下一次引导,发生基于此类OS提供的设置的引导期间的BIOS操作。在任一种情况中,控制均转移到框340,其中可以对系统加电。控制然后转移到框345,其中可以将平台初始化,例如如上所论述的。然后,在菱形框350处,可以确定是否启用平台支持有条件的高性能引导。如上文所述,此有条件的高性能引导可以避免初始化如用户接口硬件的某些硬件的开销。[0024]再次框图4,如果这样启用平台,则控制转移到框360,其中可以读取能够从静态变量存储装置获取的策略变量,以确定是否选择了高性能引导模式。换言之,在没有用户中断要发生或不可能发生)的情况中,可以执行根据本发明实施例的增强型引导。在一个实施例中,此策略变量可以是指示符如,标志)以指示是否期望用户中断,或可能地,意味着用户出于某个原因打算中断下次引导。此变量可以存储在存在OS的环境中的公共可访问存储位置中。在一个实施例中,此存储位置可以是易失性或非易失性存储器NVM中的任何此类共享的存储器位置,如由闪速NVM备份的UEFI变量。[0025]如果引导要采用无用户发起的引导中断的高性能模式(如菱形框365中所确定的),则控制转移到框390,其中可以启动0S。否则,控制转移到框370其中如果平台未启用高性能或增强型引导,则控制也转移)。在框370处,初始化可以继续,这可以包括枚举多种IO总线以探测并由此初始化输入设备。接下来,可以在菱形框375处确定是否已接收到任何引导中断。如果情况如此,则可以执行适合的操作,如给定的BIOS例行程序,例如启用BIOS菜单的显示的显示例行程序(框380。在一个实施例中,此显示可以是诊断屏幕的显示、BIOS设置用户界面菜单的显示或其他显示。BIOS菜单可以包括例如,如下选项的其中一个或多个:配置硬件;设置系统时钟,和或多种密码提示,如对BIOS用户界面功能本身进行安全访问以及防止恶意用户从非授权的外围设备引导系统的密码。当然,响应此菜单,用户可以提供某些信息,如配置更新、时钟更新等。[0026]BIOS然后可以使用此信息来执行配置的存储和更新。由于此操作是终端状态,例如通过对BIOS设置菜单的更新,所以发生机器重启,并且由此控制可以转移回到框340为了图示简易而未在图4中示出)。[0027]再次参考图4,如果在菱形框375处未接收引导中断,则控制转移到菱形框385,其中可以确定OS启动之前的平台相关的时间量是否耗尽。此预定时间量可以随不同平台而有所不同,并且可以至少部分地基于启动OS之前允许耗用的平台相关最大时间量。如果情况并非如此,则控制转移返回到框370。如果该时间量已耗尽,则控制转移到框390,其中可以启动0S。[0028]上文论述的附图图示其中缺省操作是增强型较快速的引导过程的实施例,其不询问10设备,除非用户选择覆盖增强型处理而是使得引导可中断。但是,本领域技术人员将认识到缺省处理是策略问题,并且能够容易地逆向实现。由此,选择10设备的询问是否应该是缺省引导处理的一部分是平台策略问题,并且对于不同的实施例可能有所不同。对于备选实施例,缺省引导操作是10设备的询问总是发生,以便提供引导处理中断,但是用户而是可以通过用户覆盖处理来选择执行更快的增强型引导处理例如,不轮询或询问10设备。[0029]实施例由此可以用于将BIOS内的引导时间缩减超过25%,并且解决“即刻启动”与引导可中断性的冲突需求。因为作为正常引导行为增加引导性能帮助旨在进入任务关键的环境且有要求五个999.999%连续运行时间)的甚至更大平台。引导速度是一个因素,因为由于99.999%的连续运行时间要求,平台每年只能“停运行”§M:分钟左右。如果平台需要重启,则重启越快越好。[0030]现在参考图5,其中示出的是第一系统500a和第二系统500b的框图,每个框图可以执行上文描述的增强型引导处理的实施例。如图5所示,第一系统500a可以包括一个或多个处理元件510、515,其耦合到图形存储器控制器集线器GMCH520。图5中以虚线表示附加处理器515的可选特性。[0031]每个处理元件510、515可以是单个核或作为备选可以包括多个核。除了处理核外,处理元件510、515作为备选可以包括其他晶片上元件,如集成的存储器控制器和或集成的10控制逻辑。再有,对于第一系统500a的至少一个实施例,处理元件510、515的核可以是多线程实现的,因为它们可以对应于每个核包括多于一个硬件线程上下文。[0032]图5图示GMCH520可以耦合到存储器530,存储器530可以是例如动态随机存取存储器①RAM。对于至少一个实施例,存储器530可以包括包含操作系统的代码或指令。[0033]GMCH520可以是芯片组、或芯片组的一部分。GMCH520可以与处理器510、515通信,并控制处理器510、515与存储器530之间的交互。GMCH520还可以用作处理器510、515与系统500a的其他元件之间的加速总线接口。对于至少一个实施例,GMCH520经由多点下传总线,例如前端总线FSB595与处理器510、515通信。对于其他实施例(参见例如图6和图7,GMCH520经由点到点互连与处理器510、515通信。[0034]再者,GMCH520耦合到显示器540例如,平板显示器或触敏显示设备)AMCH520可以包括集成图形加速器。GMCH520还耦合到输入输出(IO控制器集线器(ICH550,输入输出(IO控制器集线器(ICH550可以用于将多种外围设备耦合到系统500a。在例如图5的实施例中示出的是外部图形设备560,外部图形设备560可以是分离的图形设备,其连同如一个或多个键盘、鼠标或数字小键盘的其他外围设备570—起耦合到ICH550。[0035]作为备选,第一系统500a中还可以存在附加或不同的处理元件。例如,下文结合第二实施例500b论述的特征中任何一个特征可以包含在第一系统500a中。再有,附加的处理元件515可以包括与处理器510系统的附加处理器、与处理器510异构的或不对称的附加处理器、加速器例如,图形加速器或数字信号处理器DSP单元)、现场可编程门阵列或任何其他处理元件。就频谱效用而言,包括体系结构、微体系结构、热、功耗特征等,物理资源510、515之间可能存在多种差异。这些差异实际可以证明为处理元件510、515之间的非对称性和异构性。对于至少一个实施例,多种处理元件510、515可以驻留在相同的晶片封装中。[0036]图5还图示第二系统500b可以包括一个或多个处理元件511。与图5所示的第一系统500a—样,系统500b是可以使用按期望配置电子设备500b的任何适合硬件和或软件来实现的电子设备。对于一个实施例,图5图示示例系统500b,其包括触敏显示设备502、一个或多个处理器511、耦合到至少一个处理器511的系统控制逻辑504、耦合到系统控制逻辑504的系统存储器530、耦合到系统控制逻辑504的非易失性存储器存储装置535以及耦合到系统控制逻辑504耦合的一个或多个通信接口506。[0037]触敏显示设备502本文也称为“触摸屏”)可以使用任何适合的触敏技术来实现,例如且不限于,电容式、电阻式、表面声波SAW、红外线和光学成像。对于一个实施例,用于触敏显示设备502的触敏技术可能无需在其表面上实际触摸,而是可以感测接近其表面的物体存在。无论如何,此类技术可以视为触敏,因为此类技术将类似地感测实际触摸在显示设备502的表面上的物体,并且因为在电子设备500b被使用时可能实际触摸到此类表面。对于一个实施例,触敏显示设备502可以使用任何适合的多点触技术来实现。触敏显示设备502包括可以使用任何适合显示技术来实现的显示器,例如液晶显示屏LCD。对于至少一个实施例,系统控制逻辑430可以包括一个或多个图形控制器,其用于提供至触敏显示设备502的一个或多个显示接口。[0038]对于至少一个实施例,系统控制逻辑504可以包括任何适合接口控制器,其用于提供与至少一个处理器511和或与系统控制逻辑504通信的任何适合设备或组件的任何适合接口。[0039]对于至少一个实施例,系统控制逻辑504可以包括一个或多个存储器控制器,其用于提供至系统存储器530的接口。系统存储器530可以用于加载和存储例如系统500b的数据和或指令。对于至少一个实施例,系统存储器530可以用于存储任何适合的软件532,如任何的驱动器软件、应用软件和或操作系统软件。对于一个实施例,系统存储器530可以包括任何适合的易失性存储器,例如适合的动态随机存取存储器①RAM。[0040]对于至少一个实施例,系统控制逻辑504可以包括一个或多个输入输出(IO控制器,其用于提供至触敏显示设备502、非易失性存储器和或存储装置535以及通信接口506的接口。[0041]非易失性存储器和或存储装置535可以用于存储例如,数据和或指令。非易失性存储器和或存储装置535可以包括任何适合的非易失性存储器,例如闪速存储器,和或可以包括任何适合的非易失性存储设备,例如一个或多个硬盘驱动器HDD、一个或多个压缩光盘CD驱动器和或一个或多个数字多功能光盘DVD驱动器。对于至少一个实施例,非易失性存储器和或存储装置535可以包括存储用于BIOS处理的指令537的非易失性只读存储器ROM。[0042]通信接口506可以为系统500b提供通过一个或多个网络进行通信和或与任何其他适合设备进行通信的接口。通信接口506可以包括任何适合的硬件和或固件。对于一个实施例,通信接口506可以包括例如网络适配器、无线网络适配器、电话调制解调器和或无线调制解调器。对于无线通信,对于一个实施例,通信接口506可以使用一个或多个天线508〇[0043]对于至少一个实施例,系统控制逻辑504可以包括一个或多个输入输出(IO控制器,其用于提供至任何适合输入输出设备,例如帮助将声音转换成对应数字信号和或帮助将数字信号转换成对应声音的音频设备、照相机、摄像机、打印机和或扫描仪的接口。[0044]对于至少一个实施例,可以将至少一个处理器511与系统控制逻辑504的一个或多个控制器的逻辑封装在一起。对于一个实施例,可以将至少一个处理器511与用于系统控制逻辑504的一个或多个控制器的逻辑封装在一起以形成封装中系统(SiP。对于一个实施例,可以将至少一个处理器511与用于系统控制逻辑504的一个或多个控制器的逻辑一起集成在同一个晶片上。对于一个实施例,可以将至少一个处理器511与用于系统控制逻辑504的一个或多个控制器的逻辑一起集成在同一个晶片上以形成芯片上系统SoC。[0045]虽然对于一个实施例描述为在系统500b中使用,但是对于其他实施例,触碰触敏显示设备502可以在系统系统配置中使用。[0046]现在参考图6,其中示出根据本发明实施例的第三系统实施例600的框图。如图6所示,多处理器系统600是点到点互连系统,并且包括经由点到点互连650耦合的第一处理元件670和第二处理元件680。如图6所示,处理元件670和680的每个处理元件都可以是多核处理器,包括第一和第二处理器核(即处理器核674a和674b和处理器核684a和684b。[0047]作为备选,处理元件670、680的其中一个或多个可以是处理器以外的元件,如加速器或场可编程门阵列。[0048]虽然仅示出有两个处理元件670、680,但是要理解,所附权利要求的范围不限于此。在其他实施例中,给定处理器中可以存在一个或多个附加的处理元件。[0049]第一处理元件670还可以包括存储器控制器集线器MCH672和点到点(P-P接口676和678。相似地,第二处理元件680可以包括MCH682和P-P接口686和688。如图6所示,MCH672和682将处理器耦合到相应存储器,即存储器632和存储器634,它们可以是本地连接到相应处理器的主存储器的一部分。[0050]可以分别经由P-P互连652和654将第一处理元件670和第二处理元件680耦合到芯片组690。如图6所示,芯片组690包括P-P接口694和698。而且,芯片组690还包括将芯片组690与高性能图形引擎638耦合的接口692。在一个实施例中,可以使用总线639将图形引擎638耦合到芯片组690。作为备选,点到点互连639可以耦合这些组件。[0051]然后,可以经由接口696将芯片组690耦合到第一总线616。在一个实施例中,第一总线616可以是外设互连PCI总线或诸如PCIExpress总线的总线或另一种第三代IO互连总线,虽然所附权利要求的范围并不局限于此。[0052]如图6所示,可以将多种IO设备614连同总线桥618耦合到第一总线616,以及总线桥618将第一总线616耦合到第二总线620。在一个实施例中,第二总线620可以是低引脚计数LPC总线。在一个实施例中,可以将多种设备耦合到第二总线620,第二总线620包括例如键盘和或鼠标622、通信设备626和可以包含代码630的如磁盘驱动器或其他海量存储设备的数据存储单元628。代码630可以包括用于执行上文描述的一个或多个方法的实施例的指令。而且,还可以将音频IO624耦合到第二总线620。注意其他体系结构也是可能的。例如,不实施图6的点到点体系结构,系统而是可以实施多点下传总线或另一种此类体系结构。[0053]现在参考图7,其中示出根据本发明实施例的第四系统实施例700的框图。与图6和图7中的元件相似,图6中的相似引用数字和某些方面中在图7中予以省略,以便避免妨碍理解图7的其他方面。[0054]图7图示处理元件670、680可以分别包括集成的存储器和IO控制逻辑(“CL”)672和682。对于至少一个实施例,CL672、682可以包括如上文结合图5和图6描述的存储器控制器集线器逻辑MCH。此外,CL672、682还可以包括IO控制逻辑。图7图示不仅存储器632、634耦合到CL672、682,而且10设备714也可以耦合到控制逻辑672、682。旧式10设备715可以耦合到芯片组690。[0055]可以在硬件、软件、固件或此类实施方法的组合中实施本文披露的机制的实施例。实施例可以实现为可编程系统上执行的计算机程序,该可编程系统包括至少一个处理器、数据存储系统包括易失性和或非易失性存储器和或存储元件)、至少一个输入设备和至少一个输出设备。[0056]可以将程序代码,如图6所示的代码630应用于输入数据以执行本文描述的功能和生成输出信息。例如,程序代码630可以包括编码成执行图3和图4所示的实施例的操作系统和或BIOS。相应地,本发明的实施例还包括机器可访问介质,该机器可访问介质包含用于执行本发明的操作的指令或包含定义本文描述的结构、电路、装置、处理器和或系统特征的设计数据例如HDL的指令。此类实施例也可以称为程序产品。[0057]此类机器可访问介质可以包括且不限于,机器或设备制造或形成的有形制品布置,包括诸如硬盘的非瞬态存储介质、包括软盘、光盘、压缩光盘只读存储器CD-ROM、压缩光盘可写CD-RW和磁光盘的任何其他类型的存储盘、诸如只读存储器ROM、随机存取存储器RAM例如动态随机存取存储器①RAM、静态随机存取存储器SRAM、可擦写可编程只读存储器EPROM、电可擦写可编程只读存储器EEPROM、磁卡或光卡的半导体装置、或者适用于存储电子指令的任何其他类型的介质。[0058]下文示例有关于又一些实施例。在一个实施例中,一种系统包括处理器、耦合到该处理器的至少一个用户输入硬件设备和用于存储预引导代码的非易失性存储装置,该预引导代码包括第一例行程序,第一例行程序用于执行如下操作:执行处理器的初始化,基于系统的配置暴露至少一个用户输入硬件设备的接口,但是不将至少一个用户输入硬件设备初始化,并且启动OS自举代码以启动OS而不进行至少一个用户输入硬件设备的初始化。[0059]在一个实施例中,该系统还包括第二存储装置,第二存储装置用于存储指示系统的下一次引导要被用户输入中断的指示符。该处理器可以访问存储在第二存储装置中的指示符,并在指示符指示系统的下一次引导要被中断时将至少一个用户输入硬件设备初始化。再者,该处理器用于在初始化之后以及预定的时间未经由至少一个用户输入硬件设备接收到用户输入之后启动OS自举代码。该预引导代码可以包括第二例行程序,第二例行程序用于经由至少一个用户输入硬件设备接收配置更新,并将该配置更新存储在存储装置中,以及此后使系统重启。当指示符指示系统的下一次引导将不中断时,该处理器可以直接启动OS自举代码而不进行至少一个用户输入设备的初始化。[0060]在另一个实施例中,一种方法包括:执行计算机系统的初始化以将计算机系统的处理器初始化;基于预引导代码的配置,执行处理器的预引导代码,包括暴露计算机系统的用户输入硬件设备的接口,但是不将用户输入硬件设备初始化;以及启动OS自举代码以启动OS而不将该用户输入硬件设备初始化。[0061]该方法还可以包括在启动OS自举代码之前确定是否请求来自用户的输入,以及如果情况如此,则调用用户输入硬件设备的接口。响应调用该接口,可以将该用户输入硬件设备初始化。在将该用户输入硬件设备初始化之后,可以经由用户接口处理机从用户输入硬件设备获取数据,可以将其提供到预引导代码。确定是否请求来自用户的输入可以包括,访问指示预引导代码执行期间是否预期有用户中断的静态变量。在一实施例中,预引导代码的配置由用户控制。用户可以在计算机系统的前次加电周期期间更新预引导代码内的设置以使用户输入硬件设备在计算机系统的下一次加电周期中启动OS自举代码之前被初始化。可以在计算机系统中存储指示符以指示计算机系统的下一次引导要被用户输入中断,以便该方法包括在下一次引导期间访问该指示符,并在指示符指示计算机系统的下一次引导要被中断时在下一次引导期间将用户输入硬件设备初始化。[0062]在另一个实施例中,至少一个计算机可读介质包括在被执行时使得计算机系统能够执行如下操作的指令:基于计算机系统的配置,在预引导环境期间暴露计算机系统的用户输入硬件设备的接口,但是不将用户输入硬件设备初始化;并且启动OS自举代码以在用户输入硬件设备的初始化之前在计算机系统的引导环境中启动0S。[0063]介质还可以包括使计算机系统能够在计算机系统的存储装置中存储的指示符指示计算机系统的下一次引导将不中断时在用户输入设备的初始化之前直接启动OS自举代码的指令。这些指令还使计算机系统能够访问存储在存储装置中的指示符,在指示符指示系统的下一次引导要被中断时将用户输入硬件设备初始化,并且在初始化之后以及预定时间未经由用输入硬件设备接收到用户输入之后启动OS自举代码。这些指令还使计算机系统能够经由用户输入硬件设备接收配置更新,并将该配置更新存储在存储装置中,以及此后使计算机系统重启。以及这些指令还可以使计算机系统调用接口以将用户输入硬件设备初始化,以及在用户输入硬件设备初始化之后,经由用户接口处理机从用户输入硬件设备获取与配置更新对应的数据。[0064]可以采用公知的方式将该输出信息应用于一个或多个输出设备。出于此应用的目的,处理系统包括具有例如下列处理器的任何系统:数字信号处理器DSP、微控制器、专用集成电路ASIC或微处理器。[0065]可以采用高级过程或面向对象的编程语言来实现这些程序以与处理系统通信。如果期望的话,还可以采用汇编或机器语言来实现这些程序。事实上,本文描述的机制在范围上不限于任何特定的编程语言。在任何情况中,该语言可以是编译或解释的语言。[0066]虽然本发明是结合有限数量的实施例来描述的,但是本领域技术人员将设想到基于此的多种修改和变化。所附权利要求理应涵盖所在本发明的真实精神和范围内的所有此类修改和变化。
权利要求:1.一种用于执行预引导操作的系统,其包括:处理器部件;耦合到所述处理器部件的至少一个用户输入硬件部件;以及用于存储包含第一例行程序的预引导代码的非易失性存储部件,所述第一例行程序用于执行所述处理器部件的初始化,基于所述系统的配置暴露所述至少一个用户输入硬件部件的接口,但是不将所述至少一个用户输入硬件部件初始化,并且启动操作系统OS自举代码以启动OS而不进行所述至少一个用户输入硬件部件的初始化。2.如权利要求1所述的系统,还包括第二存储部件,所述第二存储部件用于存储指示所述系统的下一次引导要被用户输入中断的指示符。3.如权利要求2所述的系统,其中所述处理器部件用于访问存储在所述第二存储部件中的指示符,并在所述指示符指示所述系统的下一次引导要被中断时将所述至少一个用户输入硬件部件初始化。4.如权利要求3所述的系统,其中所述处理器部件用于在初始化之后以及预定的时间未经由所述至少一个用户输入硬件部件接收到用户输入之后启动OS自举代码。5.如权利要求3所述的系统,其中所述预引导代码包括第二例行程序,所述第二例行程序用于经由所述至少一个用户输入硬件部件接收配置更新,并将所述配置更新存储在存储部件中,以及此后使所述系统重启。6.如权利要求2所述的系统,其中所述处理器部件用于在所述指示符指示所述系统的下一次引导将不中断时,直接启动OS自举代码而不进行所述至少一个用户输入部件的初始化。7.—种用于执行预引导操作的方法,包括:执行计算机系统的初始化以将所述计算机系统的处理器初始化;基于预引导代码的配置,执行所述处理器的所述预引导代码,包括暴露所述计算机系统的用户输入硬件设备的接口,但是不将所述用户输入硬件设备初始化;以及启动操作系统OS自举代码以启动OS而不将所述用户输入硬件设备初始化。8.如权利要求7所述的方法,还包括在启动所述OS自举代码之前确定是否请求来自用户的输入,以及如果情况如此,则调用所述用户输入硬件设备的接口。9.如权利要求8所述的方法,还包括响应调用所述接口,将所述用户输入硬件设备初始化。10.如权利要求9所述的方法,还包括在将所述用户输入硬件设备初始化之后,经由用户接口处理机从所述用户输入硬件设备获取数据。11.如权利要求10所述的方法,还包括将所述数据提供到所述预引导代码。12.如权利要求8所述的方法,其中确定是否请求来自用户的输入包括,访问指示所述预引导代码执行期间是否预期有用户中断的静态变量。13.如权利要求7所述的方法,其中预引导代码的配置由用户控制。14.如权利要求13所述的方法,还包括使用户能够在所述计算机系统的前次加电周期期间更新所述预引导代码内的设置以使所述用户输入硬件设备在所述计算机系统的下一次加电周期中启动OS自举代码之前被初始化。15.如权利要求7所述的方法,还包括在所述计算机系统中存储指示符以指示所述计算机系统的下一次引导要被用户输入中断,在所述下一次引导期间访问所述指示符,并在所述指示符指示所述计算机系统的所述下一次引导要被中断时在所述下一次引导期间将所述用户输入硬件设备初始化。16.—种用于执行预引导操作的计算机系统,其包括:用于基于所述计算机系统的配置在预引导环境期间暴露所述计算机系统的用户输入硬件设备的接口但是不将所述用户输入硬件设备初始化的部件;以及用于启动操作系统OS自举代码以在所述用户输入硬件设备的初始化之前在所述计算机系统的引导环境中启动OS的部件。17.如权利要求16所述的系统,还包括用于在所述计算机系统的存储装置中存储的指示符指示所述计算机系统的下一次引导将不中断时在所述用户输入硬件设备的初始化之前直接启动OS自举代码的指令的部件。18.如权利要求17所述的系统,还包括用于访问存储在所述存储装置中的所述指示符,在所述指示符指示所述系统的下一次引导要被中断时将所述用户输入硬件设备初始化,并且在所述初始化之后以及预定时间未经由所述用户输入硬件设备接收到用户输入之后启动OS自举代码的部件。19.如权利要求16所述的系统,还包括用于经由所述用户输入硬件设备接收配置更新并将所述配置更新存储在存储装置中,以及此后使所述计算机系统重启的部件。20.如权利要求19所述的系统,还包括用于调用所述接口以将所述用户输入硬件设备初始化,并在所述用户输入硬件设备初始化之后,经由用户接口处理机从所述用户输入硬件设备获取与所述配置更新对应的数据的部件。21.—种计算机可读介质,其上已存储指令,所述指令在被执行时使得计算机系统执行根据权利要求7-15中任一项的方法。22.—种用于执行预引导操作的装置,包括:用于执行计算机系统的初始化以将所述计算机系统的处理器初始化的部件;用于基于预引导代码的配置,执行所述处理器的所述预引导代码,包括暴露所述计算机系统的用户输入硬件设备的接口,但是不将所述用户输入硬件设备初始化的部件;以及用于启动操作系统OS自举代码以启动OS而不将所述用户输入硬件设备初始化的部件。23.如权利要求22所述的装置,还包括用于在启动所述OS自举代码之前确定是否请求来自用户的输入,以及如果情况如此,则调用所述用户输入硬件设备的接口的部件。24.如权利要求23所述的装置,还包括用于响应调用所述接口,将所述用户输入硬件设备初始化的部件。25.如权利要求24所述的装置,还包括用于在将所述用户输入硬件设备初始化之后,经由用户接口处理机从所述用户输入硬件设备获取数据的部件。26.如权利要求25所述的装置,还包括用于将所述数据提供到所述预引导代码的部件。27.如权利要求23所述的装置,其中确定是否请求来自用户的输入包括,访问指示所述预引导代码执行期间是否预期有用户中断的静态变量。28.如权利要求22所述的装置,其中预引导代码的配置由用户控制。29.如权利要求28所述的装置,还包括用于使用户能够在所述计算机系统的前次加电周期期间更新所述预引导代码内的设置以使所述用户输入硬件设备在所述计算机系统的下一次加电周期中启动OS自举代码之前被初始化的部件。30.如权利要求22所述的装置,还包括用于在所述计算机系统中存储指示符以指示所述计算机系统的下一次引导要被用户输入中断,在所述下一次引导期间访问所述指示符,并在所述指示符指示所述计算机系统的所述下一次引导要被中断时在所述下一次引导期间将所述用户输入硬件设备初始化的部件。
百度查询: 英特尔公司 用于通过提供迟钝输入/输出抽象缩减平台引导时间的方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。