一种示例包括:通过计算机的固件中的指令对计算机的硬件资源进行周期性的访问,该指令由解释器在没有驱动程序的操作系统环境下执行。响应于由计时器生成的周期性中断,发生访问。
【技术实现步骤摘要】
【国外来华专利技术】【专利摘要】一种示例包括:通过计算机的固件中的指令对计算机的硬件资源进行周期性的访问,该指令由解释器在没有驱动程序的操作系统环境下执行。响应于由计时器生成的周期性中断,发生访问。【专利说明】硬件资源的周期性访问
技术介绍
计算机系统通常执行操作系统。操作系统(“0S”)是一组计算机指令,该组计算机指令允许调用和运行应用程序、为这些程序提供服务以及管理计算机硬件资源及这些程序对硬件资源的访问。 这些硬件资源中的一些可以内置在计算机本身中(例如,在计算机的芯片组中或主板上)。这些资源中的一些由安装在(或适于安装在)操作系统中的设备驱动程序控制。这些驱动允许操作系统和应用程序访问这些硬件资源,而不用详细知道这些硬件资源是如何在计算机硬件体系结构中实现的,计算机硬件体系结构可能根据计算机型号不同而变化,甚至同一计算机供应商的计算机型号不同而变化。 操作系统在便携式计算机、台式计算机以及工作站计算机中,以及还在超级计算机、网页服务器中以及在包括嵌入式处理器的大多数电子设备(包括移动电话以及视频游戏机等)中使用。如今在使用的有多种操作系统,包括来自微软的几个版本的视窗、来自许多不同Linux提供商中每个Linux提供商的一个或多个版本的Linux以及其它操作系统。 每个计算机还包括固件,固件在该计算机通电时通过将操作系统加载到存储器中来初始化(或“启动”)该计算机。此固件(通常称作B1S (基本输入/输出系统))还将该计算机的硬件资源及特定输入/输出(“I/O”)功能提供给操作系统。固件通常适应于计算机的硬件体系结构,使得其以工业标准的方式向操作系统提供其资源和功能。这样的工业标准包括过去实际上B1S标准、像可扩展固件接口(EFI)这样的较新标准或其它标准。因此,尽管各种计算机型号之间的硬件体系结构存在差异,但固件允许特定版本的操作系统的特定代码发行版在各种不同型号的计算机上运行。 【专利附图】【附图说明】 图1是根据本公开的示例的、具有在固件中驻留的方法代码指令的计算机的示意图,该方法代码指令由操作系统环境下的解释器执行以访问硬件资源。 图2是根据本公开的示例的、具有在固件中驻留的方法代码指令的另一计算机的示意图,该方法代码指令由操作系统环境下的解释器执行以访问硬件资源,其中该计算机实现ACPI标准。 图3是根据本公开的示例的、用于周期性地访问计算机的硬件资源的方法的流程图。 图4是根据本公开的示例的、用于升级计算机以改进对硬件资源的访问的方法的流程图。 图5是根据本公开的示例的、可对图1或图2的计算机使用的计算机硬件体系结构的示意图。 【具体实施方式】 如在
技术介绍
部分中提到的,尽管各种计算机型号之间的硬件体系结构存在差异,但计算机中的固件允许特定版本的操作系统的特定代码发行版在各种不同型号的计算机上运行。固件还允许各种不同类型和版本的操作系统在同样的计算机上运行。例如,同样型号的计算机能够运行微软视窗XP、微软视窗7、以及不同供应商及组织的各种不同基于Linux的OS发行版中的任一种,以上全部支持用于访问计算机的硬件资源的B1S标准。 但是,在许多情况下,是设备驱动程序而不是B1S功能用于访问硬件资源。在一些情况下,由于性能要求,可以选择设备驱动程序方式。一个这样的情况是硬件访问操作需要相对长的时间(例如,超过I至3毫秒)完成的情况。这样的过久硬件访问操作的一个示例是硬件资源的相对大块的存储器地址的读和/或写。 由于设备驱动程序在OS环境下运行,所以OS可以中断该驱动程序,以允许为在正执行硬件访问操作期间发生的更高优先级事件提供服务。但是,固件不在OS环境下运行,而是在不同环境下运行。适用于包括例如英特尔、AMD以及英伟达(NVidia)芯片组在内多种硬件的一种这样的不同环境是系统管理模式(SMM),系统管理模式利用系统管理中断(SIM)来暂时将计算机的完全控制转移给固件。换句话说,在正执行B1S功能以执行硬件访问操作时,暂停OS。结果,只有在B1S功能的执行已经完成之后,才能为在B1S功能执行期间发生的更高优先级事件提供服务。结果,由于不能及时为这些更高优先级事件提供服务,所以计算机会发生故障。例如,可以能丢失网路业务分组,或者视频或音频播放器中的帧可能丢失,以及其它故障。因此,OS和B1S之间的执行环境的差异限制了在B1S环境下执行的固件代码能够用于访问硬件资源的情况。为了避免硬件访问功能或例程中的实时延迟影响,在设备驱动程序中实现在OS环境下操作的上述代码是可取的,这样允许立即为在设备驱动程序执行期间发生的任意更高优先级事件提供服务。例如,在上面讨论的读和/或写硬件资源的相对大块存储器地址的情况中,可以在读和/或写相对大块存储器地址期间中途为更高优先级事件提供服务,该读和/写从其为更高优先级事件提供服务而暂停时所离开的地址重新开始。 但是,基于驱动程序的方法的缺点是其相对于基于固件的方法的复杂性。在最现代的计算机中,将固件代码存储在闪存设备上,可以在计算机中在原处对固件代码进行重新编程以增加或修改访问硬件资源的代码。且如上所述,一旦固件升级,则被升级的例程可以由在计算机上运行的所有不同OS发行版使用。但是,如果新的或被修改的代码替代地作为驱动程序来提供,则对于在计算机上运行的每个不同的OS发行版,将使用和支持不同版本的驱动程序代码。这不利地增加了计算机供应商(在提供许多不同驱动程序版本方面)以及终端用户(在升级OS以安装驱动程序方面)的复杂性。期望一种更简单的方法。 现在参照附图,说明了根据本公开构造的计算机的一种示例,其中该计算机中的计时器周期性使访问硬件资源的基于固件的代码在操作系统环境下被执行,该操作系统缺少用于该硬件资源的驱动程序,因此在不使用驱动程序的情况下访问硬件资源。 如本文中和在所附权利要求中限定的,“在操作系统环境下执行(或运行或实施)”的代码应被广泛地理解为表示如下代码:该代码的执行由操作系统调度或调用且在该代码的执行期间操作系统不暂停。 此外,如本文中和在所附权利要求中限定的,“驱动程序”应被广泛理解为表示:利用预限定的访问接口,代表OS代码的其它不太有特权的部分直接地访问硬件资源的有特权的操作系统代码的一部分。在驱动程序层面运行的操作系统代码是有特权的,因此能够直接访问硬件资源,而在用户层面运行的操作系统代码是没有特权的,不能直接访问硬件资源。 更详细地考虑该计算机并参考图1的示意图,计算机100包括硬件110、固件120 (在一些示例中可以是B1S)以及操作系统130。 硬件110包括至少一个硬件资源112。如本文中和在所附权利要求中限定的,“硬件资源”应被广泛理解为表示:可以经由一个或多个硬件寄存器可编程地访问的硬件设备。每个寄存器可以被实现为:映射I/o的I/O端口,映射存储器的I/O端口,或存储器地址。在一些示例中,硬件设备可以设置在计算机100的主板上,或设置在计算机100的处理器芯片组内。 硬件110还包括至少一个计时器114。计时器114可以是监视狗计时器。计时器114可以是硬件110的分立元件,或可以在计算机100的芯片组的组件内实现。计时器114可以被配置用于周期性地生成一个或多个输出信号。在本文档来自技高网...
【技术保护点】
一种用于周期性地访问计算机的硬件资源的方法,包括:经由位于所述计算机内部的计时器周期性地生成中断;响应于所述中断,调度在操作系统的环境下运行的解释器去执行;以及利用所述解释器执行与所述中断关联且设置在所述计算机的固件中的指令,以访问所述计算机的硬件资源,其中所述操作系统缺少关于所述硬件资源的设备驱动程序。
【技术特征摘要】
【国外来华专利技术】
【专利技术属性】
技术研发人员:基蒙·贝尔林,史蒂文·G·乌尔曼,
申请(专利权)人:惠普发展公司,有限责任合伙企业,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。