CN104285211A - 硬件资源的周期性访问 - Google Patents

硬件资源的周期性访问 Download PDF

Info

Publication number
CN104285211A
CN104285211A CN201280073194.7A CN201280073194A CN104285211A CN 104285211 A CN104285211 A CN 104285211A CN 201280073194 A CN201280073194 A CN 201280073194A CN 104285211 A CN104285211 A CN 104285211A
Authority
CN
China
Prior art keywords
hardware resource
operating system
acpi
computing machine
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201280073194.7A
Other languages
English (en)
Inventor
基蒙·贝尔林
史蒂文·G·乌尔曼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN104285211A publication Critical patent/CN104285211A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/485Resource constraint

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Bus Control (AREA)

Abstract

一种示例包括:通过计算机的固件中的指令对计算机的硬件资源进行周期性的访问,该指令由解释器在没有驱动程序的操作系统环境下执行。响应于由计时器生成的周期性中断,发生访问。

Description

硬件资源的周期性访问
背景技术
计算机系统通常执行操作系统。操作系统(“OS”)是一组计算机指令,该组计算机指令允许调用和运行应用程序、为这些程序提供服务以及管理计算机硬件资源及这些程序对硬件资源的访问。
这些硬件资源中的一些可以内置在计算机本身中(例如,在计算机的芯片组中或主板上)。这些资源中的一些由安装在(或适于安装在)操作系统中的设备驱动程序控制。这些驱动允许操作系统和应用程序访问这些硬件资源,而不用详细知道这些硬件资源是如何在计算机硬件体系结构中实现的,计算机硬件体系结构可能根据计算机型号不同而变化,甚至同一计算机供应商的计算机型号不同而变化。
操作系统在便携式计算机、台式计算机以及工作站计算机中,以及还在超级计算机、网页服务器中以及在包括嵌入式处理器的大多数电子设备(包括移动电话以及视频游戏机等)中使用。如今在使用的有多种操作系统,包括来自微软的几个版本的视窗、来自许多不同Linux提供商中每个Linux提供商的一个或多个版本的Linux以及其它操作系统。
每个计算机还包括固件,固件在该计算机通电时通过将操作系统加载到存储器中来初始化(或“启动”)该计算机。此固件(通常称作BIOS(基本输入/输出系统))还将该计算机的硬件资源及特定输入/输出(“I/O”)功能提供给操作系统。固件通常适应于计算机的硬件体系结构,使得其以工业标准的方式向操作系统提供其资源和功能。这样的工业标准包括过去实际上BIOS标准、像可扩展固件接口(EFI)这样的较新标准或其它标准。因此,尽管各种计算机型号之间的硬件体系结构存在差异,但固件允许特定版本的操作系统的特定代码发行版在各种不同型号的计算机上运行。
附图说明
图1是根据本公开的示例的、具有在固件中驻留的方法代码指令的计算机的示意图,该方法代码指令由操作系统环境下的解释器执行以访问硬件资源。
图2是根据本公开的示例的、具有在固件中驻留的方法代码指令的另一计算机的示意图,该方法代码指令由操作系统环境下的解释器执行以访问硬件资源,其中该计算机实现ACPI标准。
图3是根据本公开的示例的、用于周期性地访问计算机的硬件资源的方法的流程图。
图4是根据本公开的示例的、用于升级计算机以改进对硬件资源的访问的方法的流程图。
图5是根据本公开的示例的、可对图1或图2的计算机使用的计算机硬件体系结构的示意图。
具体实施方式
如在背景技术部分中提到的,尽管各种计算机型号之间的硬件体系结构存在差异,但计算机中的固件允许特定版本的操作系统的特定代码发行版在各种不同型号的计算机上运行。固件还允许各种不同类型和版本的操作系统在同样的计算机上运行。例如,同样型号的计算机能够运行微软视窗XP、微软视窗7、以及不同供应商及组织的各种不同基于Linux的OS发行版中的任一种,以上全部支持用于访问计算机的硬件资源的BIOS标准。
但是,在许多情况下,是设备驱动程序而不是BIOS功能用于访问硬件资源。在一些情况下,由于性能要求,可以选择设备驱动程序方式。一个这样的情况是硬件访问操作需要相对长的时间(例如,超过1至3毫秒)完成的情况。这样的过久硬件访问操作的一个示例是硬件资源的相对大块的存储器地址的读和/或写。
由于设备驱动程序在OS环境下运行,所以OS可以中断该驱动程序,以允许为在正执行硬件访问操作期间发生的更高优先级事件提供服务。但是,固件不在OS环境下运行,而是在不同环境下运行。适用于包括例如英特尔、AMD以及英伟达(Nvidia)芯片组在内多种硬件的一种这样的不同环境是系统管理模式(SMM),系统管理模式利用系统管理中断(SIM)来暂时将计算机的完全控制转移给固件。换句话说,在正执行BIOS功能以执行硬件访问操作时,暂停OS。结果,只有在BIOS功能的执行已经完成之后,才能为在BIOS功能执行期间发生的更高优先级事件提供服务。结果,由于不能及时为这些更高优先级事件提供服务,所以计算机会发生故障。例如,可以能丢失网路业务分组,或者视频或音频播放器中的帧可能丢失,以及其它故障。因此,OS和BIOS之间的执行环境的差异限制了在BIOS环境下执行的固件代码能够用于访问硬件资源的情况。为了避免硬件访问功能或例程中的实时延迟影响,在设备驱动程序中实现在OS环境下操作的上述代码是可取的,这样允许立即为在设备驱动程序执行期间发生的任意更高优先级事件提供服务。例如,在上面讨论的读和/或写硬件资源的相对大块存储器地址的情况中,可以在读和/或写相对大块存储器地址期间中途为更高优先级事件提供服务,该读和/写从其为更高优先级事件提供服务而暂停时所离开的地址重新开始。
但是,基于驱动程序的方法的缺点是其相对于基于固件的方法的复杂性。在最现代的计算机中,将固件代码存储在闪存设备上,可以在计算机中在原处对固件代码进行重新编程以增加或修改访问硬件资源的代码。且如上所述,一旦固件升级,则被升级的例程可以由在计算机上运行的所有不同OS发行版使用。但是,如果新的或被修改的代码替代地作为驱动程序来提供,则对于在计算机上运行的每个不同的OS发行版,将使用和支持不同版本的驱动程序代码。这不利地增加了计算机供应商(在提供许多不同驱动程序版本方面)以及终端用户(在升级OS以安装驱动程序方面)的复杂性。期望一种更简单的方法。
现在参照附图,说明了根据本公开构造的计算机的一种示例,其中该计算机中的计时器周期性使访问硬件资源的基于固件的代码在操作系统环境下被执行,该操作系统缺少用于该硬件资源的驱动程序,因此在不使用驱动程序的情况下访问硬件资源。
如本文中和在所附权利要求中限定的,“在操作系统环境下执行(或运行或实施)”的代码应被广泛地理解为表示如下代码:该代码的执行由操作系统调度或调用且在该代码的执行期间操作系统不暂停。
此外,如本文中和在所附权利要求中限定的,“驱动程序”应被广泛理解为表示:利用预限定的访问接口,代表OS代码的其它不太有特权的部分直接地访问硬件资源的有特权的操作系统代码的一部分。在驱动程序层面运行的操作系统代码是有特权的,因此能够直接访问硬件资源,而在用户层面运行的操作系统代码是没有特权的,不能直接访问硬件资源。
更详细地考虑该计算机并参考图1的示意图,计算机100包括硬件110、固件120(在一些示例中可以是BIOS)以及操作系统130。
硬件110包括至少一个硬件资源112。如本文中和在所附权利要求中限定的,“硬件资源”应被广泛理解为表示:可以经由一个或多个硬件寄存器可编程地访问的硬件设备。每个寄存器可以被实现为:映射I/O的I/O端口,映射存储器的I/O端口,或存储器地址。在一些示例中,硬件设备可以设置在计算机100的主板上,或设置在计算机100的处理器芯片组内。
硬件110还包括至少一个计时器114。计时器114可以是监视狗计时器。计时器114可以是硬件110的分立元件,或可以在计算机100的芯片组的组件内实现。计时器114可以被配置用于周期性地生成一个或多个输出信号。在一些示例中,能够可编程地配置计时器114。计时器114可以被配置用于以规则的间隔或以可变的间隔生成输出信号。计时器114的输出信号在计算机100中被布置用于生成由操作系统130提供服务的中断信号116。
操作系统130包括解释器132。如本文中和在所附权利要求中限定的,“解释器”应被广泛理解为表示:执行(或实施)用特定编程语言编写的指令的计算机程序。解释器132在操作系统130的环境下以及在操作系统130的控制下操作。对操作系统130进行配置,使得当收到来自计时器114的中断时,操作系统130调度解释器132去运行。调度解释器允许在合适的时间以及以相对于由操作系统130管理的其它任务的合适优先级运行解释器。当解释器132运行时,其解释方法代码指令122,并且实施由方法代码指令122规定的对应动作,以访问134硬件资源112。方法代码指令122不被设置为操作系统130的一部分,而是作为固件120的一部分。但是,计算机100的处理器并不像其通常对固件120的其它功能或例程所做的那样直接地执行方法代码指令122。相反,处理器执行解释器132,然后解释器132访问或获取124方法代码指令122。换句话说,包含在方法代码122中的指令不直接地由处理器执行,但这些指令限定由解释器132进行的动作和操作,以实施由方法代码122规定的动作。结果,方法代码指令122不在固件120环境下执行。相反地,由于解释器132解释方法代码指令122并实施由方法代码122规定的指令,所以方法代码122在操作系统130的环境下执行。此外,由于在执行方法代码指令122时操作系统130不暂停,所以如果合适的话,操作系统130可以暂时地暂停解释器132的执行(并因此暂停方法代码122的执行),以便为更高优先级的任务提供服务。这有利地允许计算机100避免之前已讨论的以及由操作系统130暂停引起的那类系统故障。例如,由于为了处理这些更高优先级的活动可以暂停解释器132的执行,所以可以没有丢失地捕获网络业务分组且视频或音频播放器能够避免丢帧。
计时器114被配置用于周期性地生成中断116给操作系统130,中断116使操作系统130响应于中断116而调度解释器以在操作系统130的环境下执行特定方法代码指令122。计时器114的这种配置可以由方法代码指令122和/或由固件120中的不同方法代码指令(未示出)实施。
硬件资源112可以是多种不同硬件设备中的任一种。在一个示例中,硬件资源112可以是一组件,该组件被周期性地访问以便维持该组件的正常操作或功能。例如,特定组件的操作可能退化或失败,除非在其上一次访问之后的特定时间内访问该组件。此行为可能是非故意的,并且是由该组件中的缺陷造成的。在此情况中,计时器114可以配置用于在超过该特定时间之前周期性地生成中断116,且方法代码122可以指定用于解释器132正确地访问该组件以维持该组件的正常功能的指令。在用于这种目的时以及在其它类型的硬件资源的其它情况下,方法代码指令122可以不使来自硬件资源112的任何数据被返回至操作系统130。
在另一示例中,硬件资源112可以是周期性地获得的关于系统操作(如系统性能或系统健康)的信息或数据的源。例如,该信息或数据可以表示正由计算机100实施的活动的类型和数量的测量。作为另一示例,该信息或数据可以表示由源112遇到的(例如与网络业务有关的)错误率的测量。当用于这些及类似目的时,方法代码指令122通常使来自硬件资源112的信息或数据被返回至操作系统130,操作系统130随后能够将该信息或数据呈现给用户(例如,呈现在显示器上),或用该信息或数据自动地进行调整,该调整优化系统性能或健康。
现在考虑另一计算机并参照图2的示意图,计算机200包括硬件110、固件220(通常视为BIOS)以及操作系统230。
硬件110包括硬件资源112以及计时器114,硬件资源112以及计时器114与之前参照图1描述的那些相同或类似。
操作系统230支持软件应用程序205的执行,软件应用程序205利用由操作系统230提供的设施。操作系统230包括符合高级配置和电源接口规范标准的ACPI子系统231。此标准的当前版本是2011年12月6日的修订版5.0。许多计算机制造商已将此标准实现在他们的计算机200的固件220中,且许多操作系统供应商将此标准实现在他们的操作系统230中。该标准针对硬件发现和系统配置以及电源管理,尤其用于包括在计算机的主板上的硬件设备。与之前依靠固件确定电源管理和配置策略的基于BIOS的技术相反,ACPI使这些受控于操作系统(称为“操作系统直接配置和电源管理”或“OSPM”)。
ACPI标准定义了特定系统、设备以及处理器状态。响应于发生向计算机传递期望电源状态的、通常由用户实施或发起的硬件电源管理事件,状态转换发生。例如,抬起便携式计算机的上盖的动作可以表示:用户想要与该计算机交互,因此作为响应,例如系统可以被供电至工作状态,在工作状态中显示器照亮、键盘和鼠标激活、处理器完全处于操作状态等等。关闭上盖的动作可以被配置为表示:用户已经暂时完成使用该便携式计算机,因此例如显示器可以关闭、键盘和鼠标被断电、处理器进入耗电少的睡眠状态等等。按压计算机上的电源按钮的动作可以表示:可以从基本上该计算机的所有组件中掉电(至少除了从该电源按钮本身中掉电以外,使得该计算机可以在用户再次按压该按钮时恢复供电)。因此,响应于发生硬件电源管理事件,执行实现特定电源管理操作的代码。该代码的至少一部分设置在固件中,但是该代码是在操作系统的控制下并且在操作系统的环境下执行的。
目前为止,ACPI的使用局限于硬件配置及电源管理应用程序,以及局限于基于事件驱动发生的硬件电源管理事件的处理。例如,ACPI可以用于表示发生与电源管理相关的热事件,如超过温度阈值或安装了风扇。ACPI可以在操作系统初始化期间用于配置硬件。但是,ACPI之前未用于实施除硬件配置和电源管理用途之外的基于时间驱动的或周期性的操作。在一个示例中,ACPI之前未用于周期性地(通过使用计时器)访问硬件设备或资源。
现在返回至计算机200,ACPI子系统231提供核心软件,该核心软件被配置用于与固件220的兼容ACPI的部分进行通信及互操作。在一些示例中,ACPI子系统231可以被实现为ACPI组件体系结构(ACPI-CA)软件。ACPI子系统231包括ACPI机器语言(AML)解释器232,ACPI机器语言(AML)解释器232以与已针对解释器132(图1)描述的类似的方式操作。包括AML解释器232的ACPI子系统231在操作系统230环境下且在操作系统230的控制下操作。
固件220包括兼容ACPI的部分,如ACPI表221及ACPI BIOS228。ACPI BIOS228执行对硬件110(特别是主板硬件)的基础底层控制操作。ACPI BIOS228具有协助启动计算机200以及还协助使计算机200进入睡眠模式或从睡眠模式唤醒计算机200的代码。该代码在固件220的环境下执行,或者在初始化操作系统230以前或在操作系统230暂停时执行此代码。
ACPI表221限定并描述硬件110的可以通过ACPI管理的各元件,如硬件资源112及计时器114。ACPI表221包括硬件限定数据226以及至少一个关联的ACPI机器语言(AML)控制方法222,硬件限定数据226描述至少一个硬件元件,至少一个关联的ACPI机器语言(AML)控制方法222可用于访问对应的硬件元件。AML控制方法222具有独立于机器的字节码指令,该独立于机器的字节码指令可由AML解释器132执行以访问硬件元件(如硬件资源112)及实施硬件管理操作。可以在计算机220启动过程期间或在稍晚的时间访问ACPI表221。
硬件限定数据226提供硬件110的各元件的抽象层面。其告诉ACPI子系统231与可以如何访问特定计算机220的各硬件资源相关的信息。以这样的方式,包括AML解释器232的ACPI子系统231可以访问这些硬件资源,而不用知道ACPI子系统被在其上的计算机220的具体体系结构细节,计算机220的具体体系结构细节可能对每个计算机模型都不同。
计时器114被配置为周期性地生成系统控制(SCI)中断216给操作系统230。由计时器114生成的特定SCI中断216与具有用于访问硬件资源112的指令的对应AML方法222关联。当收到来自计时器114的SCI中断216时,操作系统230调度运行AML解释器232来为该中断提供服务。当解释器232运行时,其解释与SCI中断216和硬件资源112关联的AML方法222的字节码指令,并且实施由AML方法代码指令222限定的包括访问234硬件资源112的操作。由于AML方法222的字节码指令不是由计算机200的处理器直接地执行的,而替代地是由AML解释器232执行的,所以AML方法222不是在固件220的环境下执行的,而是在操作系统230的环境下执行的。在AML方法222花费相对长时间去执行的情况下,操作系统230可以暂时暂停AML解释器232的执行(并且因此暂停AML方法222的执行)来为更高优先级的任务提供服务并避免之前已讨论的那类系统故障。
计时器114被配置为周期性地生成SCI中断216给操作系统230。计时器114可以由ACPI子系统231利用访问硬件资源112的相同AML方法222、通过不同的AML方法(未示出)的指令或通过ACPI BIOS228的功能的指令进行配置236。
应注意,尽管计算机200中未使用,但是操作系统230还支持使用一个或多个不兼容ACPI的设备驱动程序238(以虚线示出)。一些设备驱动程序238可以是直接访问硬件110的元件的非ACPI驱动程序。其它硬件驱动程序238可以是经由ACPI子系统231访问硬件110的元件的知晓ACPI的驱动程序。应理解,如果驱动程序238将被用于访问硬件资源112,则对每个不同的操作系统230版本以及对每个不同的计算机型号将使用不同版本的驱动程序238,这导致计算机供应商和用户的支持复杂性。因此,省略使用驱动程序238来访问硬件资源112并经由AML方法222访问硬件资源112,是有益的。此优势出现是因为支持ACPI标准(例如,实现ACPI子系统231的ACPI标准)的任何操作系统230可以经由在计算机200的固件220中提供的AML方法222来访问硬件资源112。结果,避免使用驱动程序。
省略驱动程序并作为替代通过AML方法222访问硬件资源的另一好处是:最小化了除ACPI231子系统以外的操作系统230的模块参与硬件资源访问。除了接收SCI中断216以及作为响应调度AML解释器232去运行以外,操作系统230不参与硬件资源访问。
当完成响应于SCI中断216而执行AML方法指令222时,终止AML解释器232的执行。
现在考虑用于从操作系统周期性地访问计算机的硬件资源的方法并参照图3,方法300始于在310处周期性地生成中断。可替代地,图3可以被视为在计算机100(图1)或200(图2)中实施的过程。在一些示例中,由硬件计时器生成该中断。在一些示例中,计时器在计算机内部。在一些示例中,在320处,将该中断与特定方法代码指令关联。在330处,响应于该中断,调度在操作系统环境中运行的解释器去执行。在340处,由解释器执行与该中断关联且设置在计算机的固件中的方法代码指令,以访问计算机的硬件资源。在一些示例中,操作系统缺少用于硬件资源的设备驱动程序。在一些示例中,执行340包括:在350处,从硬件资源获得与系统操作相关的数据(可以包括系统健康或系统性能数据),并且使该数据可由操作系统利用。在360处,在解释器已执行方法代码指令后,终止解释器的执行。
在一些示例中,操作系统实现ACPI标准,且根据ACPI标准,该方法代码是ACPI机器语言(AML)指令,该解释器是AML解释器且该中断是系统控制中断(SCI)。
现在考虑用于升级计算机以改进对硬件资源的访问的方法并参照图4,方法400可以对计算机100(图1)或计算机200(图2)使用。方法400始于在410处获得包括方法代码指令的升级的计算机固件。在一些示例中,计算机将固件存储在闪存中,闪存的内容可以在原位可编程地升级,而不用物理地替换闪存设备本身。在这样的示例中,被升级的固件可以以计算机数据文件和可编程地用该数据文件的内容修改或替换闪存的内容的程序(或者该计算机数据文件可以与该程序一起使用)的形式提供。在420处,将被升级的固件安装在计算机中,而不修改该计算机的操作系统的任何部分。例如,执行该程序以升级固件。在一些示例中,在430处,安装包括:将被升级的固件的特定方法代码与由硬件计时器生成的特定中断关联。
现在考虑可与方法300、400一起使用的计算机的硬件体系结构500并参照图5,该体系结构可以用于计算机100(图1)或200(图2)。体系结构500的组件通过一个或多个总线510互连。体系结构500包括计时器114及硬件资源112。该体系结构还包括至少一个处理器520及主存储器530。主存储器530通常是读写存储器,如RAM。包括解释器534的操作系统532可加载到主存储器530中。通常,操作系统532在计算机启动时被加载到主存储器530中,但是在计算机被嵌入专用电子设备中的一些应用中,操作系统的部分或全部可以永久地加载到主存储器530中。操作系统532可以是操作系统130(图1)或230(图2),并且解释器534可以是解释器132(图1)或232(图2)。
体系结构500还包括BIOS存储器540。BIOS存储器540是在掉电后保留其内容的非瞬态非易失性计算机可读存储介质。BIOS存储器540通常是闪存,其能够在驻留在计算机中时可编程地升级。BIOS存储器540存储BIOS固件,如固件120(图1)或220(图2),该BIOS固件包括至少一个方法542的指令,至少一个方法542可以是方法122(图1)或AML方法222(图2)。在操作时,方法542可以被复制到主存储器530的一部分中。然后,可以将此部分标记为ACPI存储器,这使其不可用于其它目的。
根据前面的描述,应理解,由本公开提供的计算机、方法及介质代表本领域的显著进步。尽管已描述和说明了几个具体示例,但是本公开不局限于所描述和说明的多个部分的具体方法、形式或设置。例如,本公开的示例不局限于单个处理器计算机系统,还适用于多处理器系统。此描述应理解为包括本文描述的元件的所有新颖和非显而易见的组合,并且在本申请或后续申请中可以对这些元件的任意新颖和非显而易见的组合提出权利要求。前述示例是说明性的,且没有一个特征或元件是对可在本申请或后续申请中要求保护的所有可能组合而言必不可少的。除非另外规定,否则方法权利要求的步骤不需要以规定的顺序实施。类似地,图中的框或标号(如(1)、(2)等)不被解释为这些步骤必须以特定顺序进行。可以增加附加框/步骤,移除一些框/步骤,或改变框/步骤的顺序,且仍在所公开的示例的范围内。此外,不同的图中公开的方法或步骤可以增加到其它图的方法或步骤中,或与其它图的方法或步骤交换。此外,具体数值的数据值(如具体的量、数、类等)或其它具体信息应被解释为对讨论示例是说明性的。这样的具体信息不提供用于限制示例。本公开不局限于上述实现方式,而是由所附权利要求按照其等同物的所有范围进行限定。在权利要求列举“一”或“第一”元件或其等效用语时,这样的权利要求应被理解为包括一个或多个这样的元件的包含,不要求也不排除两个或更多个这样的元件。

Claims (15)

1.一种用于周期性地访问计算机的硬件资源的方法,包括:
经由位于所述计算机内部的计时器周期性地生成中断;
响应于所述中断,调度在操作系统的环境下运行的解释器去执行;以及
利用所述解释器执行与所述中断关联且设置在所述计算机的固件中的指令,以访问所述计算机的硬件资源,其中所述操作系统缺少关于所述硬件资源的设备驱动程序。
2.根据权利要求1所述的方法,
其中所述操作系统实现高级配置和电源接口(ACPI)标准;并且
其中根据所述ACPI标准,所述指令是ACPI机器语言(AML)指令,所述解释器是AML解释器,并且所述中断是系统控制中断(SCI)。
3.根据权利要求1所述的方法,其中除非周期性地访问所述硬件资源,否则所述硬件资源的操作退化,并且其中周期性的访问维持所述硬件资源的正常功能。
4.根据权利要求1所述的方法,其中所述指令不实施硬件配置和电源管理功能。
5.根据权利要求1所述的方法,其中所述执行进一步包括:
从所述硬件资源获得关于系统操作的数据;以及
使所述操作系统能访问所述数据。
6.一种计算机,包括:
机器可读介质,包括固件指令,所述固件指令可由所述计算机的操作系统的解释器执行以访问所述计算机的硬件资源,而不使用关于所述硬件资源的设备驱动程序;以及
计时器,周期性地生成中断,所述中断使所述操作系统调度所述解释器来在所述操作系统的环境下执行所述指令,以访问所述硬件资源。
7.根据权利要求6所述的计算机,其中所述操作系统实现高级配置和电源接口(ACPI)标准;并且
其中根据所述ACPI标准,所述指令是ACPI机器语言(AML)指令,所述解释器是AML解释器,并且所述中断是系统控制中断(SCI)。
8.根据权利要求6所述的计算机,其中所述指令不实施硬件配置和电源管理功能。
9.根据权利要求6所述的计算机,其中除非周期性地访问所述硬件资源,否则所述硬件资源的操作退化,并且其中周期性的访问维持所述硬件资源的正常功能。
10.一种升级根据权利要求6所述的计算机以改进对硬件资源的访问的方法,包括:
获得升级的计算机固件,所述升级的计算机固件包括所述指令;以及
将升级的固件安装在所述计算机中,而不修改所述操作系统的任何部分。
11.一种非瞬态计算机可读存储介质,具有存储在所述非瞬态计算机可读存储介质上的可执行程序,其中所述程序指导处理器:
配置计时器,所述计时器用于周期性地生成中断给操作系统,所述中断使所述操作系统响应于所述中断而调度解释器去在所述操作系统的环境下执行驻留在固件中的指令;以及
在所述解释器执行所述指令时,访问所述计算机的硬件资源,其中所述操作系统缺少关于所述硬件资源的设备驱动程序。
12.根据权利要求11所述的介质,
其中所述操作系统实现高级配置和电源接口(ACPI)标准;并且
其中根据所述ACPI标准,所述解释器解释ACPI机器语言(AML),所述中断是系统控制中断(SCI),并且所述指令包括AML指令。
13.根据权利要求11所述的介质,其中除非周期性地访问所述硬件资源,否则所述硬件资源的操作退化,并且其中所述程序进一步指导所述处理器:
访问所述硬件资源,以维持所述硬件资源的正常功能。
14.根据权利要求11所述的介质,其中所述程序进一步指导所述处理器:
访问所述硬件资源,以获得关于系统健康和性能的数据,以及
向所述操作系统传递所述数据。
15.根据权利要求11所述的介质,其中所述程序进一步指导所述处理器:
访问所述硬件资源,而不向所述操作系统传递与硬件资源访问相关的任何数据。
CN201280073194.7A 2012-07-26 2012-07-26 硬件资源的周期性访问 Pending CN104285211A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/048278 WO2014018037A1 (en) 2012-07-26 2012-07-26 Periodic access of a hardware resource

Publications (1)

Publication Number Publication Date
CN104285211A true CN104285211A (zh) 2015-01-14

Family

ID=49997670

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280073194.7A Pending CN104285211A (zh) 2012-07-26 2012-07-26 硬件资源的周期性访问

Country Status (5)

Country Link
US (1) US9600423B2 (zh)
CN (1) CN104285211A (zh)
DE (1) DE112012006333T5 (zh)
GB (1) GB2515681A (zh)
WO (1) WO2014018037A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103116402B (zh) * 2013-02-05 2016-01-20 威盛电子股份有限公司 具有语音控制功能的计算机系统以及语音控制方法
US11222119B2 (en) * 2018-10-01 2022-01-11 Intel Corporation Technologies for secure and efficient native code invocation for firmware services

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5901312A (en) * 1994-12-13 1999-05-04 Microsoft Corporation Providing application programs with unmediated access to a contested hardware resource
US20030097496A1 (en) * 2001-11-16 2003-05-22 Microsoft Corporation Method and system for obtaining the status of a device
US20060020940A1 (en) * 2004-07-08 2006-01-26 Culter Bradley G Soft-partitioning systems and methods
US20100153765A1 (en) * 2008-12-16 2010-06-17 Microsoft Corporation Power state dependent wake-up alarm
US20110296409A1 (en) * 2010-05-28 2011-12-01 Dell Products, Lp System and Method for Pre-Boot Authentication of a Secure Client Hosted Virtualization in an Information Handling System
US20120011506A1 (en) * 2010-07-07 2012-01-12 Fujitsu Limited Information processor, control method, and computer-readable recording medium recording control program
CN102369510A (zh) * 2009-03-20 2012-03-07 惠普公司 使用存储器分段和基于acpi的上下文切换加载操作系统
CN103221919A (zh) * 2010-11-16 2013-07-24 英特尔公司 在操作系统(os)缺席的服务环境中供应固件的方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6560659B1 (en) * 1999-08-26 2003-05-06 Advanced Micro Devices, Inc. Unicode-based drivers, device configuration interface and methodology for configuring similar but potentially incompatible peripheral devices
US6587898B1 (en) 2000-08-10 2003-07-01 Dell Products, L.P. Universal serial bus PC synchronization algorithm for peripheral devices
US7502803B2 (en) * 2003-05-28 2009-03-10 Hewlett-Packard Development Company, L.P. System and method for generating ACPI machine language tables
US7558724B2 (en) * 2005-04-19 2009-07-07 Hewlett-Packard Development Company, L.P. Operation region describing a virtual device
US7596687B2 (en) 2005-06-06 2009-09-29 Dell Products L.P. System and method for information handling system interoperable firmware storage
TWI269174B (en) * 2005-07-05 2006-12-21 Istek Co Ltd Cross-platform driver-free driving method of peripheral device
US7904666B2 (en) 2005-07-06 2011-03-08 Panasonic Corporation Access control device, access control integrated circuit, and access control method
US7546487B2 (en) 2005-09-15 2009-06-09 Intel Corporation OS and firmware coordinated error handling using transparent firmware intercept and firmware services
US8074231B2 (en) 2005-10-26 2011-12-06 Microsoft Corporation Configuration of isolated extensions and device drivers
WO2007060664A2 (en) * 2005-11-25 2007-05-31 Continuity Software Ltd. System and method of managing data protection resources
US7953996B2 (en) * 2006-12-18 2011-05-31 Hewlett-Packard Development Company, L.P. ACPI to firmware interface
US9098354B2 (en) * 2008-12-23 2015-08-04 International Business Machines Corporation Management of application to I/O device communication requests between data processing systems
US8844025B2 (en) 2010-03-26 2014-09-23 Hewlett-Packard Development Company, L.P. Storage device access authentication upon resuming from a standby mode of a computing device

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5901312A (en) * 1994-12-13 1999-05-04 Microsoft Corporation Providing application programs with unmediated access to a contested hardware resource
US20030097496A1 (en) * 2001-11-16 2003-05-22 Microsoft Corporation Method and system for obtaining the status of a device
US20060020940A1 (en) * 2004-07-08 2006-01-26 Culter Bradley G Soft-partitioning systems and methods
US20100153765A1 (en) * 2008-12-16 2010-06-17 Microsoft Corporation Power state dependent wake-up alarm
CN102369510A (zh) * 2009-03-20 2012-03-07 惠普公司 使用存储器分段和基于acpi的上下文切换加载操作系统
US20110296409A1 (en) * 2010-05-28 2011-12-01 Dell Products, Lp System and Method for Pre-Boot Authentication of a Secure Client Hosted Virtualization in an Information Handling System
US20120011506A1 (en) * 2010-07-07 2012-01-12 Fujitsu Limited Information processor, control method, and computer-readable recording medium recording control program
CN103221919A (zh) * 2010-11-16 2013-07-24 英特尔公司 在操作系统(os)缺席的服务环境中供应固件的方法

Also Published As

Publication number Publication date
WO2014018037A1 (en) 2014-01-30
DE112012006333T5 (de) 2015-01-22
GB2515681A (en) 2014-12-31
US9600423B2 (en) 2017-03-21
US20150033236A1 (en) 2015-01-29
GB201416710D0 (en) 2014-11-05

Similar Documents

Publication Publication Date Title
CN107122321B (zh) 硬件修复方法、硬件修复系统以及计算机可读取存储装置
CN102207896B (zh) 虚拟机崩溃文件生成技术
US7577860B2 (en) Processor specific BIOS interface for power management
US9329885B2 (en) System and method for providing redundancy for management controller
EP2189901B1 (en) Method and system to enable fast platform restart
EP2891980A1 (en) Adjustment and control method and system for multi-core central processing unit
US20180032349A1 (en) Optimized UEFI Reboot Process
US9164784B2 (en) Signalizing an external event using a dedicated virtual central processing unit
EP1892626A2 (en) Method and apparatus for managing power from sequestered partition of a processing system
CN102279766B (zh) 并行模拟多个处理器的方法及系统、调度器
US20070150713A1 (en) Methods and arrangements to dynamically modify the number of active processors in a multi-node system
CN102792270A (zh) 经由bios配置概要文件的bios参数虚拟化
WO2020015203A1 (zh) 一种系统恢复方法及装置
CN101650647A (zh) 一种efi平台的兼容方法
CN104572161A (zh) 一种基于龙芯便携式计算机的uefi固件实现方法
KR20130068630A (ko) 임베디드 디바이스의 초기화 방법 및 장치
US20070260761A1 (en) Inter-module data communication control method and system for ACPI and BIOS
JP6198843B2 (ja) ハードディスクシステム操作方法、ストレージシステム及びプロセッサ
JP2014059733A (ja) 情報処理システム、画像処理装置
US20230305834A1 (en) Methods and apparatus to perform a pseudo-s3 protocol to update firmware and/or activate new firmware with a warm reset
JP2015060411A (ja) 情報処理装置のファームウェア更新方法
CN104285211A (zh) 硬件资源的周期性访问
US8312126B2 (en) Managing at least one computer node
US11347496B2 (en) Driver update via sideband processor
US10782764B2 (en) Techniques of emulating an ACPI controller on a service processor

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150114