硬件设备的对象到健康控制信息的转换的制作方法

文档序号:6498611阅读:104来源:国知局
硬件设备的对象到健康控制信息的转换的制作方法
【专利摘要】本文公开的各示例涉及硬件设备的对象到健康控制信息的转换。各示例包括从面向对象的数据库采集硬件设备的对象,所述对象包括由所述硬件设备确定的运行参数值。各示例进一步包括将所述对象转换成健康控制器可用的健康控制信息。
【专利说明】硬件设备的对象到健康控制信息的转换

【背景技术】
[0001]诸如台式计算机、笔记本计算机等之类的计算设备可以针对该计算设备的各组件监视其运行的物理特性,如所产生的热量、功耗,等等。这样的计算设备还可以尝试将这样的物理特性维持在期望的操作范围内。例如,计算设备可以操作冷却风扇,以将该计算设备的组件的工作温度维持在期望的操作范围内。

【专利附图】

【附图说明】
[0002]下面的详细描述参照附图,其中:
[0003]图1是包括健康控制器以及与该健康控制器交互的健康驱动器的示例性计算设备的框图;
[0004]图2是包括用于存储与硬件设备关联的对象的面向对象的数据库的示例性计算设备的框图;
[0005]图3是用于将面向对象的数据库的对象转换成可由健康控制器使用的健康控制信息的示例性计算设备的框图;
[0006]图4是用于利用计算设备的健康控制器控制该计算设备的运行参数的示例性方法的流程图;并且
[0007]图5是用于在经过更新时间段之后采集硬件设备的更新对象的示例性方法的流程图。

【具体实施方式】
[0008]如上面提到的,计算设备可以尝试将各种计算设备组件的物理特性维持在期望的操作范围内。例如,计算设备的健康控制器可以监视该计算设备的各组件的运行参数,如温度、功耗、频率等等。在这样的示例中,健康控制器可以从该计算设备的诸如温度传感器和功率传感器之类的各传感器接收读数,且可以响应于这些读数而控制该计算设备的运行参数。例如,健康控制器可以基于从温度传感器接收到的读数来控制该计算设备的冷却风扇的速度,以平衡可接受的组件温度和风扇噪音水平。
[0009]在一些示例中,与计算设备的扩展槽连接的扩展卡,如外围组件互联(PCI)卡以及快速PCI (PCI Express)卡,可能对该计算设备的运行参数具有相当的大的影响。例如,像图形处理单元(GPU)这样的扩展卡可能比计算设备的中央处理单元(CPU)消耗更多功率,并且可能生成更多热量。因此,一些扩展卡包括内部健康管理功能,以监视并调整扩展卡的运行参数。
[0010]通过访问由扩展卡取得的内部测量结果,计算设备的健康控制器可以更好地管理该计算设备的整体运行参数以及声学性能。然而,由扩展卡内部地取得的运行参数测量结果经常不可由与该扩展卡连接的计算设备的健康控制器利用。例如,许多健康控制器包括专用集成电路(ASIC),该ASIC监视来自与该ASIC的专用寄存器直接连接的传感器的运行参数测量结果。然而,在连接至扩展槽时,许多扩展卡不具有与健康控制器ASIC的直接硬件连接,且不支持可以允许健康控制器轮训扩展卡内部测量结果的硬件接口协议。
[0011]为了解决这些问题,本文描述的各示例提供了一种包括面向对象的数据库的计算设备,该面向对象的数据库用于存储与硬件设备关联的对象,该与硬件设备关联的对象包括硬件设备确定的运行参数值。本文描述的各示例还包括一种健康驱动器,用于从数据库采集对象,并将对象转换成计算设备的健康控制器可用的且表示硬件设备所确定的运行参数值的健康控制信息。在这样的示例中,像扩展卡这样的硬件设备的设备驱动器可以将内部运行参数测量结果存储在面向对象的数据库的对象中,且健康驱动器可以获得该对象,并将该测量结果以健康控制器可用的格式提供给健康控制器。
[0012]以这样的方式,本文描述的各示例可以使得扩展卡所确定的运行参数值能够被传递到计算设备健康控制器,而不需要对现有的扩展卡进行硬件改变,不需要使用复杂的硬件协议或设备专用的软件应用程序。此外,本文描述的各示例可以允许健康控制器利用来自具有关联驱动器的任意扩展卡的内部测量结果,其中该关联驱动器用于向面向对象的数据库发布测量结果。此外,通过发布面向对象的数据库的对象中的内部测量结果,本文描述的各示例可以使健康驱动器能够解释并适当地设置测量结果的格式,以为健康控制器使用,而不需要硬件设备的先验知识。
[0013]现在参考图各图,图1是一种示例性计算设备100的框图,计算设备100包括健康控制器160以及与健康控制器160交互的健康驱动器120。如本文所用的,“计算设备”可以为台式机、笔记本电脑、工作站、服务器、计算机网络设备、芯片组、或任意其它处理设备或装置。在图1的示例中,计算设备100包括面向对象的数据库110、健康驱动器120以及健康控制器160。
[0014]在图1的示例中,面向对象的数据库110可以将对象130存储在数据库110中。如本文所用的,“对象”为被格式为适于作为在面向对象的编程中的对象运行的数据结构的信息的集合。因此,本文中,对象可以称作“面向对象的编程对象”。在一些示例中,对象可以包括至少一个数据字段,可以与至少一种方法关联,或其结合。此外,如本文所用的,“面向对象的数据库”为用于管理并存储面向对象的编程对象的数据库。尽管图1在面向对象的数据库110中显示了一个对象,但数据库110可以存储并管理多个对象。
[0015]对象130可以与硬件设备关联。在一些示例中,对象130可以包括硬件设备标识字段,用于存储识别关联的硬件设备的硬件设备标识信息132。在其它示例中,对象130可以包括在另一个对象中,用于存储硬件设备的各种类型的数据。在一些示例中,硬件设备可以为连接至计算设备100的扩展槽的扩展卡。例如,硬件设备可以为连接至计算设备100的PCI槽的PCI扩展卡,连接至计算设备100的PCI Express槽的PCI Express扩展卡,或连接至计算设备100的适当扩展槽的任意其它类型的扩展卡。示例性扩展卡包括例如:包括图形处理单元(GPU)的显卡或其它卡,声卡等等。在其它示例中,硬件设备可以为计算设备100的任意其它类型的硬件设备,例如,处理器、ASIC、存储设备,等等。例如,硬件设备可以为处理器、ASIC、或计算设备100的主板的其它电路、或连接至计算设备100的主板的其它电路。
[0016]在图1的示例中,对象130可以包括至少一个运行参数值字段,用于存储运行参数值134。如本文所用的,“运行参数值”表示与硬件设备的运行关联的物理特性。运行参数值可以为表示例如与硬件设备关联的温度、风扇速度、功率、电压、电流、湿度、高度等的值。在一些示例中,硬件设备可以测量、估计、或确定硬件设备的至少一个运行参数的值。例如,扩展卡可以包括用于测量扩展卡的处理器附近的温度的温度传感器,用于确定扩展卡的风扇速度的传感器,或用于测量扩展卡的功耗的传感器等,或其结合。
[0017]在图1的示例中,面向对象的数据库110可以将硬件设备所确定的硬件设备的运行参数值134存储在与硬件设备关联的数据库110的对象130中。在一些示例中,数据库110可以将硬件设备所确定的运行参数值134存储在与硬件设备关联的对象130的运行参数值字段中。例如,数据库110可以将利用扩展卡的温度传感器测量的扩展卡的温度值存储在与该扩展卡关联的数据库110的对象中。可以以编码在机器可读存储介质上的可执行指令的形式、电路的形式、或其结合的形式实现面向对象的数据库110的功能。
[0018]在一些示例中,数据库110可以将硬件设备所确定的运行参数值存储为与从硬件设备采集的运行参数值的格式不同的格式。例如,数据库110可以从与硬件设备交互的设备驱动器接收硬件设备所确定的运行参数值。在这样的示例中,设备驱动器可以在数据库110存储之前,改变从硬件设备采集的运行参数值的格式。在其它示例中,数据库110可以将硬件设备所确定的运行参数值存储为从硬件设备采集的运行参数值的格式。
[0019]如上面所提到的,计算设备100包括健康控制器160。健康控制器160可以包括用于根据接收到的运行参数值管理计算设备100的运行参数的电路和机器可读指令的结合。例如,健康控制器160可以接收表示计算设备100的组件(例如,处理器,等)或连接至计算设备100的组件(例如,扩展卡)的温度、风扇速度、功耗、电压、电流、湿度、高度等的运行参数值,并根据至少一个接收到的运行参数值直接或间接控制计算设备100的运行参数(例如,风扇速度、功耗,等等)。
[0020]在一些示例中,健康控制器160可以包括健康管理ASIC(例如,风扇控制器、超级1/0,等等)以及编码在机器可读存储介质上的、可由健康管理ASIC (例如,健康管理固件)执行的指令。在一些示例中,机器可读存储介质可以与健康管理ASIC分开,且健康管理ASIC可以采集、解码并执行存储在机器可读存储介质上的指令,以实现本文关于健康控制器160描述的功能。
[0021]在图1的示例中,计算设备100还包括健康驱动器120,用于与健康控制器160交互。健康驱动器120包括采集模块122以及转换模块124。在一些示例中,健康驱动器120可以包括其它模块。健康驱动器120可以为与健康控制器160的电路(例如,健康管理ASIC,等等)交互的设备驱动器。如本文所用的,“设备驱动器”为包括提供硬件设备与计算设备的操作系统和计算设备的至少一个应用程序中的至少一个之间的接口的机器可读指令集的信息。
[0022]在一些示例中,包括健康驱动器120的任意模块的健康驱动器120可以被实现为编码在机器可读存储介质上的可执行指令的形式。如本文所用的,“机器可读存储介质”可以为任意电的、磁的、光的或其它物理存储设备,用于包含或存储像可执行指令、数据等这样的信息。例如,本文描述的任意机器可读存储介质可以为随机存取存储器(RAM)、闪存、存储驱动(例如,硬盘)、只读光盘存储器(CD-ROM)等等中的任意一种,或其组合。此外,本文描述的任意机器可读存储介质可以为非瞬态的。
[0023]采集模块122可以从数据库110采集对象130。在一些示例中,模块122可以询问数据库110至少一次,以发现对象130。例如,通过询问数据库110至少一次,模块122可以确定数据库110是否包括包含健康控制器160可以使用的运行参数值的任意对象。例如,模块122可以针对连接至计算设备100的指定类型的硬件设备(例如,视频卡)询问数据库110,识别健康控制器感兴趣的硬件设备,然后询问数据库110哪个感兴趣的硬件设备包括健康控制器160感兴趣的运行参数值(例如,温度值)。在其它示例中,模块122可以执行其它询问,以在数据库110中发现感兴趣的对象。
[0024]在数据库110响应于模块122的询问而识别出包括健康控制器160感兴趣的运行参数值的对象之后,模块122可以从数据库110采集该对象,以获得该对象中包括的运行参数值。例如,如果模块122通过对数据库110的至少一次询问确定对象130包括健康控制器160感兴趣的运行参数值,那么模块122可以采集对象130,以获得运行参数值134。例如,模块122可以通过使用之前在询问过程中从数据库110接收的识别信息来访问数据库110中的对象130。在一些示例中,模块122可以定期采集对象130,以随着运行参数值134被更新而采集其更新版本。
[0025]转换模块124可以将采集的对象130转换成健康控制器160可用的且表示硬件设备所确定的运行参数值134的健康控制信息182。在运行参数值134为健康控制器160可用的格式的示例中,模块124可以通过从对象130中提取运行参数值134,来将对象130转换成健康控制信息182。在这样的示例中,模块124可以从对象130中提取值134,并将值134作为健康控制信息182提供给健康控制器160。在一些示例中,模块124可以进一步将提取的值134转换成健康控制器160可以接收并使用信息的格式。
[0026]在其它示例中,模块124可以根据包括在对象130中的、用于提供运行参数值134的上下文的信息,将运行参数值134转换成健康控制信息182。在这样的示例中,模块124可以进一步将值134转换成具有健康控制器160可以接收并使用信息的格式的健康控制信息182。例如,对象130可以包括提供运行参数值134的上下文的至少一个字段,例如,值134的测量结果的单位(例如,摄氏、华氏,等)、值134的格式(例如,整数、浮点,等等)、值134的精度、值134的范围(例如,最小值和最大值)、值134的临界极限、值134的更新速率,等等。在其它示例中,对象130中可以具有额外的或其它字段。
[0027]在一些示例中,模块124可以利用此附加信息中的一些或全部,以将值134转换成健康控制器160可用的健康控制信息182。例如,模块124可以至少利用指示的范围值,以将值134归一化为以对象130中指示的值范围的比例表示值134的值。此外或可替代地,模块124可以转换对象130,使得所产生的健康控制信息182具有健康控制器160的寄存器可以接受的格式(例如,8位值)。例如,模块124可以通过将值134转换为相对于对象130中指示的范围值归一化的8位值,来将采集的对象130转换成健康控制信息182。在一些示例中,将对象130转换成健康控制信息182之后,健康驱动器120可以将健康控制信息182提供给健康控制器160。例如,健康驱动器120可以将健康控制信息182存储在健康控制器160的寄存器中,例如,健康控制器160的健康管理ASIC的通用寄存器。
[0028]在图1的示例中,健康控制器160包括控制模块162,用于根据从健康驱动器120接收的健康控制信息182来控制计算设备100的运行参数。控制模块162的功能可以被实现为编码在机器可读存储介质上的可执行指令的形式、电路的形式或其结合。例如,控制模块162可以被实现为编码在机器可读存储介质(例如,固件)上的由健康控制器160的电路(例如,健康管理ASIC)可执行的指令的形式。在一些示例中,本文与图1关联描述的功能可以与本文与图2-5中的任意图关联描述的功能结合提供。
[0029]图2是示例性计算设备200的框图,计算设备200包括面向对象的数据库110,用于存储与硬件设备关联的对象230。计算设备200可以包括操作系统(OS)模块250,用于实现计算设备200的操作系统。在图2的示例中,OS模块250可以包括如上面与图1关联描述的面向对象的数据库110,且附加地包括通信模块212。OS模块250还可以包括数据库接口模块252。包括数据库110的OS模块250的功能可以被实现为编码在机器可读存储介质上的可执行指令的形式、电路的形式或其结合。
[0030]计算设备200还包括如上面与图1关联描述的健康控制器160以及健康驱动器120。在图2的示例中,健康控制器160还包括寄存器264和266,且健康驱动器120还包括提供模块226。计算设备200还可以包括扩展槽246,用于容纳硬件设备。在图2的示例中,扩展卡240可以连接至扩展槽264。计算设备200还可以包括扩展卡驱动器248,用于与扩展卡240交互。扩展卡240可以为如上面与图1关联描述的任意类型的扩展卡。在一些示例中,扩展卡240可以包括处理器242以及温度传感器244,温度传感器244与处理器242相邻,用于确定(例如,测量、检测等)处理器242附近的温度。如本文所用的,“处理器”可以为以下中的至少一种:中央处理单元(CPU)、基于半导体的微处理器、GPU、配置用于检索并执行指令的现场可以编程门阵列(FPGA)、适用于检索并执行存储在机器可读存储介质上的指令的其它电路或其结合。在一些示例中,扩展卡240可以为显卡,且处理器242可以为GPU。扩展卡驱动器248可以为扩展卡240的设备驱动器。例如,驱动器248可以为扩展卡240与至少OS模块250之间的接口的设备驱动器。
[0031]在图2的示例中,面向对象的数据库110可以将对象230存储在数据库110中。尽管图2在面向对象的数据库110中显示了一个对象,但数据库110可以存储并管理多个对象。对象230可以与硬件设备关联。在一些示例中,硬件设备可以为上面与图1关联描述的任意硬件设备。在图2的示例中,对象230可以与扩展卡240关联。在这样的示例中,对象230可以将识别关联的扩展卡240的扩展卡标识信息232存储在对象230的硬件设备标识字段中。在其它示例中,对象230可以包括在可以存储关联的扩展卡240的各种类型的数据的另一个对象中。对象230还可以包括至少一个运行参数值字段,用于存储运行参数值。在图2的示例中,对象230的运行参数值字段可以包括温度值字段,用于存储温度值234。
[0032]如上面与图1关联描述的,面向对象的数据库110可以将由硬件设备确定的硬件设备的运行参数值存储在与该硬件设备关联的数据库110的对象中。例如,数据库110可以将由扩展卡240确定的扩展卡240的温度值234存储在与扩展卡240关联的对象230中。
[0033]例如,扩展卡240可以利用温度传感器244确定扩展卡240的温度值234 (例如,处理器242附近的温度)。在一些示例中,扩展卡驱动器248可以经由扩展槽246从扩展卡240采集所确定的温度值234。在这样的示例中,数据库110可以从扩展卡驱动器248接收温度值234。在这样的示例中,数据库110可以将由扩展卡240确定的扩展卡240的温度值234存储在与扩展卡240关联的对象230的运行参数值字段中。在一些示例中,数据库110可以以与从硬件设备获得的温度值234的格式不同的格式存储硬件设备所确定的温度值234。例如,扩展卡驱动器248可以在数据库110存储之前改变从硬件设备采集的温度值234的格式。在其它示例中,数据库110可以以从扩展卡240获得的温度值234的格式存储扩展卡240所确定的温度值234。
[0034]在图2的示例中,计算设备200的操作系统可以包括数据库接口模块252,用于作为数据库110和计算设备200的各应用程序(例如,设备驱动器)之间的接口。例如,OS模块250可以包括数据库接口模块252。在图2的示例中,扩展卡驱动器248和健康驱动器120可以经由OS模块250的数据库接口模块252与数据库110通信。例如,扩展卡驱动器248可以经由数据库接口模块252向数据库110提供运行参数值(例如,温度值234),且健康驱动器120可以经由数据库接口模块252询问数据库110以及从数据库110接收对象。在一些示例中,像驱动器248和120这样的设备驱动器可以经由应用程序接口(API)消息与OS模块250的数据库接口模块252通信。在一些示例中,面向对象的数据库110可以与OS模块250分开。在这样的示例中,OS模块250的数据库接口模块252可以与和OS模块250分开的数据库110交互。
[0035]在一些示例中,数据库110可以包括通信模块212,用于经由数据库接口模块252与计算设备200的各应用程序(例如,设备驱动器)通信。例如,通信模块212可以经由计算设备的操作系统的数据库接口模块252接收来自与硬件设备关联的设备驱动器的运行参数值。在图2的示例中,通信模块212可以经由OS模块250的数据库接口模块252接收来自扩展卡驱动器248的与扩展卡240关联的温度值234。在这样的示例中,数据库110可以将利用通信模块212接收的温度值234存储在数据库110的对象中,例如对象230中。
[0036]计算设备200还包括健康控制器160,如上面与图1的计算设备100关联描述的,健康控制器160可以接收硬件设备的运行参数值,并直接或间接控制计算设备200的运行参数。如上面与图1的计算设备100关联描述的,健康控制器160可以包括根据接收的运行参数值管理计算设备200的运行参数的电路和机器可读指令的结合。
[0037]在一些示例中,健康控制器160可以包括至少一个寄存器,用于接收来自健康驱动器120的至少一个值(或其它信息),以在确定如何控制计算设备200的至少一个运行参数中使用。在图2的示例中,健康控制器160包括多个这样的寄存器,包括控制寄存器264以及阈值寄存器266。在一些示例中,健康控制器160的电路(例如,健康管理ASIC)可以包括这些寄存器。尽管图2显示了健康控制器160的两个寄存器,但健康控制器160可以包括任意数量的寄存器。在一些不例中,健康控制器160的、用于接收来自健康驱动器120的信息的至少一个寄存器可以为通用寄存器,其不是在硬件中专用于固定功能寄存器(例如,连接在硬件中,接收温度传感器的读数),而可以通过由电路执行的机器可读指令(例如,固件)用于任意合适的目的。例如,寄存器264和266中的至少一个可以为通用寄存器。在其它示例中,健康控制器160的至少一个寄存器可以为用于接收指定类型的信息(例如,温度信息)的固定功能寄存器。在一些不例中,健康控制器160可以包括通用寄存器和固定功能寄存器的结合,用于接收来自健康驱动器120的信息。
[0038]在图2的示例中,如上面与图1关联描述的,健康驱动器120包括采集模块122和转换模块124。采集模块122可以经由数据库接口模块252从数据库110采集对象230。如上面与图1关联描述的,模块122可以询问数据库110至少一次,以发现对象230。模块122可以经由数据库接口模块252询问数据库110。如上面与图1和对象130关联描述的,转换模块124可以将采集的对象230转换成健康控制器160可用的且表示硬件设备所确定的运行参数值的健康控制信息182。在图2的示例中,转换模块124可以将采集的对象230转换成健康控制器160可用的且表示扩展卡240所确定并包括在对象230中的温度值234的健康控制信息182。
[0039]在图2的示例中,健康驱动器120进一步包括提供模块226,提供模块226可以将模块124生成的健康控制信息182提供给健康控制器160的控制寄存器264。在这样的示例中,模块124可以生成健康控制信息182,使得其具有控制寄存器264可接收的格式。例如,如果控制寄存器264为8位寄存器,那么模块124可以将对象230转换成具有8位值的健康控制信息182。
[0040]如上面与图1的计算设备100关联描述的,健康控制器160包括控制模块162,用于根据从健康驱动器120接收的健康控制信息182来控制计算设备200的运行参数。在一些示例中,计算设备200可以包括至少一个风扇215,并且模块162所控制的计算设备200的运行参数可以为风扇215的风扇速度。例如,模块162可以向风扇215提供风扇控制信号286,用于控制风扇215的速度。在这样的不例中,模块162可以根据在控制寄存器264接收的健康控制信息182确定信号286的电平。
[0041]在一些示例中,转换模块124可以进一步推出与对象230的运行参数值关联的阈值信息284。在这样的示例中,如上面与图1的对象130关联描述的,对象230可以包括用于提供对象230的运行参数值的上下文的信息。例如,对象230可以包括温度值234(例如,运行参数值)以及值范围信息236。在一些示例中,值范围信息236可以表示值234的可接受范围、值234的临界极限等,或其结合。
[0042]在这样的示例中,模块124可以根据范围值信息236推出阈值信息284。例如,模块124可以根据信息236推出表示值234的可接受范围的上边界、值234的临界极限等的阈值信息284。在一些示例中,模块124可以生成阈值寄存器266可接收的格式(例如,8位数据值)的信息284。在这样的示例中,提供模块226可以将阈值信息284提供给健康控制器160的阈值寄存器266。
[0043]在一些示例中,健康控制器160可以根据健康控制信息182和阈值信息284控制计算设备200的运行参数。例如,健康控制信息182可以表示温度值234,且阈值信息284可以表示值234的范围或临界极限。在这样的示例中,控制模块162可以将在寄存器264接收的健康控制信息182与在寄存器266接收的阈值信息284作比较,以确定风扇控制信号286的电平。例如,如果信息182指示温度值234超过阈值信息284所表示的阈值,则模块162可以经由信号286提高风扇215的速度。
[0044]在其它示例中,健康驱动器120可以向寄存器266提供不同于信息182的健康控制信息。在一些示例中,健康驱动器120可以分别向健康控制器160的多个寄存器提供至少一个硬件设备的健康控制信息。例如,健康控制器160的多个寄存器可以接收一个硬件设备的不同健康控制信息,健康控制器160的多个寄存器可以接收不同硬件设备的健康控制信息,健康控制器160的至少一个寄存器可以接收与提供的健康控制信息关联的阈值信息,或其结合。在一些示例中,本文与图2关联描述的各功能可以和本文与图1和图3-5中任意图关联描述的各功能结合提供。
[0045]图3是示例性计算设备300的框图,计算设备300用于将面向对象的数据库110的对象转换成健康控制器160可用的健康控制信息182。在图3的示例中,如上面与图1和图2关联描述的,计算设备300包括面向对象的数据库110以及健康控制器160。计算设备300还包括处理器313以及编码有健康驱动器320的指令322、324、325、326和328的机器可读存储介质317。在其它示例中,存储介质317可以包括其它指令。在一些示例中,指令322、324、325、326和328以及本文与存储介质317关联描述的任意其它指令可以远程存储在本地计算设备300外。健康驱动器320可以为与健康控制器160交互的硬件驱动器。
[0046]在图3的示例中,处理器313可以提取、解码并执行存储介质317上存储的指令,以实现下面描述的功能。在其它示例中,存储在存储介质317上的任意指令的功能可以被实现为电路形式、编码在机器可读存储介质上的可执行指令形式、或其结合。
[0047]在一些示例中,数据库110可以包括多个硬件设备中的每一个的对象。例如,数据库110可以包括各自与相应硬件设备关联并包括关联的硬件设备的信息的对象370、372和374。本文中,包括硬件设备信息的对象370、372和374中的每一个可以称作“硬件设备对任”象。
[0048]在图3的示例中,硬件设备对象370可以与连接至计算设备300的扩展槽346的扩展卡340关联。计算设备300可以包括扩展卡驱动器348 (例如,设备驱动器),用于与扩展卡340交互。硬件设备对象372可以与连接至计算设备300的扩展槽347的扩展卡342关联。计算设备300可以包括扩展卡驱动器349 (例如,设备驱动器),用于与扩展卡342交互。数据库110还可以包括其它硬件设备对象,例如,与其它硬件设备(例如,计算设备300的显卡或存储设备)关联的硬件设备对象374。
[0049]在图3的示例中,对象370可以包括表示扩展卡340 (即,关联的硬件设备)的至少一个属性的硬件设备属性371。硬件设备的硬件设备属性可以包括例如以下中的至少一种:硬件设备的类型(例如,视频卡、声卡、存储设备,等等)、设备供应商、设备连接的扩展槽的标识、设备的功耗属性、或设备的任意其它属性,或其结合。硬件设备对象372可以包括表示与对象372关联的扩展卡342的至少一个属性的硬件设备属性373,且硬件设备对象374可以包括表示与对象374关联的硬件设备的至少一个属性的硬件设备属性375。
[0050]在一些示例中,硬件设备对象370和372可以额外分别包括对象330和331,对象330和331均包括由关联硬件设备所确定的该关联硬件设备的至少一个运行参数值。在本文中,包括运行参数值的对象330和331均可以称作“运行参数对象”。在图3示例中,运行参数对象330可以包括与对象370关联的扩展卡340的至少一个运行参数值332。例如,数据库110可以将扩展卡340所确定的且从驱动器348接收的运行参数值332存储在运行参数对象330中。类似地,在一些示例中,数据库110可以将扩展卡342所确定的且从驱动器349接收的运行参数值333存储在运行参数对象331中。在图3的示例中,驱动器348和349可以如上面与图2关联描述的与数据库110通信。在一些示例中,数据库110的一些硬件设备对象(例如,硬件设备对象374)可以不包括运行参数对象。
[0051]在图3的示例中,指令322可以询问数据库110,如上面与图1关联描述的。在图3的示例中,指令322可以针对连接至计算设备300的任意指定类型的硬件设备的标识询问数据库110。例如,指令322可以针对视频卡或任意其它类型的设备的标识询问数据库110。在一些示例中,数据库110可以根据硬件设备对象的硬件设备属性确定与该对象关联的硬件设备是否为指定类型的设备。指令322可以从数据库110接收指定类型的硬件设备的标识。指令322可以经由询问通信392询问数据库110。由处理器313执行的指令可以与数据库110通信,如上面与图1和图2的健康驱动器120关联描述的。
[0052]在指令322接收硬件设备的标识之后,指令324可以从数据库110采集数据库110所识别的指定类型的至少一个硬件设备中的每一个的运行参数对象,且该指定类型的至少一个硬件设备中的每一个的运行参数对象存储在数据库110中。例如,如果指令322针对显卡询问数据库110,且作为响应,数据库110识别出与硬件设备对象370关联的扩展卡340,则指令324可以经由至少一个对象通信394采集硬件设备对象370的运行参数对象330。
[0053]指令326可以将采集的运行参数对象330转换成健康控制信息182,其中健康控制信息182表示由硬件设备确定的且包括在运行参数对象330中的与对象330关联的硬件设备的运行参数值332。在这样的示例中,如上面与图1转换模块124关联描述的,指令326可以将对象330转换成健康控制器160可用其控制计算设备300的运行参数的健康控制信息182。在一些示例中,指令326可以通过根据对象330中包括的提供运行参数值332的上下文的信息,将运行参数值332转换成健康控制器160可用的格式,来将采集的运行参数对象330转换成健康控制信息182。在这样的示例中,除了包括至少一个运行参数值之外,运行参数对象可以包括至少一个运行参数值的上下文信息,例如,与至少一个运行参数值关联的范围信息。
[0054]在图3的示例中,例如,运行参数对象330可以包括至少一个运行参数值332的范围信息334,且运行参数对象331可以包括至少一个运行参数值333的范围信息335。在这样的示例中,指令326可以通过根据范围信息334,将运行参数值332转换成健康控制器160可用的格式,来将采集的运行参数对象330转换成健康控制信息182。
[0055]在一些示例中,指令326将对象330转换成健康控制信息182,其中健康控制信息182以范围信息334所表示的值范围的比例表示运行参数值332。在这样的示例中,以这样的方式,指令326可以根据范围信息334表示的范围归一化运行参数值332。在一些示例中,指令326还可以生成健康控制器160的寄存器(例如,通用或固定功能寄存器)可接受的格式的健康控制信息182。
[0056]例如,健康控制器160的寄存器可以为可接收O至255之间的值的8位寄存器。在这样的示例中,指令326可以将对象330转换成以范围信息334所表示的值范围的比例的8位格式表示运行参数值332的健康控制信息182。在这样的示例中,指令326可以根据等式[(V-LL)/(UL-LL) X255] = H,将运行参数值(“V”)332转换成归一化的8位值的健康控制信息(“H”)182,以包括下极限(“LL”)和上极限(“UL”)的值范围的比例表示该值。例如,运行参数对象330可以包括由扩展卡340(例如,GPU)确定的扩展卡340的温度值332 (例如,80摄氏度),且还可以包括表示扩展卡340的温度值332的可接受范围(例如,5-120摄氏度)的范围信息334。在这样的示例中,指令326可以根据上述等式(例如,[(80-5)/(120-5) X 255] = 166),将温度值332转换为归一化的8位值的健康控制信息182。
[0057]指令328可以如上面与图2的提供模块226关联描述的,将健康控制信息182提供给健康控制器160。如上面与图1和图2关联描述的,健康控制器160可以根据接收的健康控制信息182控制计算设备300的运行参数。
[0058]在其它示例中,响应于指令322查询连接至计算设备300的任意指定类型的硬件设备的标识,数据库110可以识别指令322所指定的类型的多个硬件设备。在这样的示例中,对于数据库110所识别的指定类型的每个硬件设备,指令322可以确定与该硬件设备关联的运行参数对象是否存储在数据库110中。例如,对于每个识别的设备,指令322可以询问数据库110,以确定数据库110是否包括该设备的运行参数对象。在一些示例中,数据库110的硬件设备对象可以包括不同类型运行参数值的不同运行参数对象。例如,包括温度值的硬件设备对象可以包括用于存储温度值的温度对象,包括功耗值的硬件设备对象可以包括用于存储功耗值的功率对象,等等。在这样的示例中,对于所识别的硬件设备,指令322可以询问数据库110,以确定该设备是否包括特定类型的运行参数对象,例如,温度对象。
[0059]在一些示例中,指令324包括选择指令325,且如果针对数据库响应于查询指定类型的硬件设备所识别的多个硬件设备,确定对应的运行参数对象存储在数据库中,则可以触发选择指令325。在一些示例中,健康控制器160可以不具有足够的寄存器来接收具有关联运行参数对象的每个硬件设备的健康控制信息182。在这样的示例中,选择指令325可以选择至少一个目标硬件设备,针对其向健康控制器160的可用寄存器提供控制信息。例如,响应于指令322的查询,数据库110可以指示硬件设备对象370和372分别包括运行参数对象330和331。响应于此,指令324可以确定多个指定类型的硬件设备的运行参数对象存储在数据库110中,并触发选择指令325。
[0060]指令325可以根据识别的硬件设备各自的属性,在数据库110所识别的多个硬件设备中识别目标硬件设备。例如,指令325可以根据包括在与识别的硬件设备关联的硬件设备对象中的硬件设备属性,来识别目标硬件设备。例如,指令325可以根据硬件供应商、设备连接的扩展槽、设备的功耗信息等,或其结合,来选择健康控制器160感兴趣的硬件设备。指令325还可以经由对象通信394采集与识别的目标硬件设备关联的运行参数对象。在这样的示例中,指令326可以将采集的运行参数对象转换成健康控制信息182,指令328可以向健康控制器160提供该健康控制信息182。在一些示例中,指令325可以根据健康控制器160的多少个寄存器可以用于从健康驱动器320接收信息,来选择多个目标硬件设备。
[0061]在其它示例中,如果指令324确定数据库110所识别的多个硬件设备对应的运行参数对象存储在数据库中,则指令324可以采集该多个硬件设备的运行参数对象。例如,指令324可以经由至少一个对象通信394采集对象。然而,健康控制器160可以不具有足够的寄存器来接收从每个运行参数对象转换的健康控制信息182。在这样的示例中,指令326可以将每个运行参数对象转换成多个健康控制值,并选择至少一个健康控制值以提供给健康控制器160的可用寄存器,其中每个健康控制值表示对象之一的运行参数值。
[0062]例如,指令326可以将采集的每个运行参数对象(例如,对象330和331)转换成各自表示来自对应的运行参数对象的运行参数值的健康控制值。在一些示例中,指令326可以将各对象转换成健康控制值,如上面与利用图1的转换模块124将各对象转换成健康控制信息关联所描述的。在转换采集的运行参数对象之后,指令326可以根据健康控制值的相应级数选择至少一个健康控制值。在一些示例中,所选的值的数量取决于健康控制器160可用的寄存器的数量。指令328可以将选择的健康控制值作为健康控制信息182提供给健康控制器160。
[0063]在一些示例中,各指令可以在生成的那些健康控制值中选择最大的健康控制值。例如,指令326可以将采集的每个运行参数对象转换成表示包括在对象之一中的运行参数值(例如,温度值)的健康控制值,该健康控制值是被归一化为以对象中指示的运行参数值的范围的比例表示该值的值。在一些示例中,在转换各对象之后,指令326可以选择一个或多个最大的健康控制值,且指令328可以将所选的值作为健康控制信息182提供给健康控制器160。在一些示例中,本文与图3关联描述的功能可以和本文与图1-2和图4-5关联描述的功能结合提供。
[0064]图4是利用计算设备的健康控制器控制计算设备的运行参数的示例性方法400的流程图。尽管下面参照图2的计算设备200描述方法400的执行,不过还可以利用其它合适的组件(例如,计算设备100或300)描述方法400的执行。此外,方法400可以被实现为编码在机器可读存储介质上的可执行指令的形式、电路的形式,或其结合。
[0065]在方法400的405,联接至计算设备200的硬件设备可以确定硬件设备的运行参数值。例如,硬件设备可以为连接至计算设备200的扩展槽246的扩展卡240。在一些示例中,运行参数值可以为由扩展卡240的温度传感器244确定的扩展卡240的温度值234。在其它示例中,扩展卡240可以确定扩展卡240的不同运行参数的值。
[0066]在410,硬件设备的驱动器可以将确定的运行参数值存储在计算设备200的面向对象的数据库110的对象230中。该驱动器可以例如为用于与扩展卡240交互的扩展卡驱动器248。在一些示例中,驱动器248可以将确定的运行参数值(例如,温度值234)存储在对象230中。在415,用于与计算设备200的健康控制器160交互的健康驱动器120可以从数据库110采集对象230。驱动器248和120可以如上面与图2关联描述的与数据库110通信。
[0067]在420,如上面与图1关联描述的,健康驱动器120可以将采集的对象230转换成健康控制器160可用的且表示对象230中存储的运行参数值的健康控制信息182。例如,健康控制信息182可以表示扩展卡240所确定的温度值234。在425,健康控制器160可以根据健康控制信息182来控制计算设备200的运行参数。例如,如上面与图2关联描述的,健康控制器160可以根据健康控制信息182的值来控制计算设备200的风扇215的速度。
[0068]图5是在经过更新时间段之后采集硬件设备的更新对象的示例性方法500的流程图。尽管下面参照图2的计算设备200描述方法500的执行,不过还可以利用其它合适的组件(例如,计算设备100或300)描述方法500的执行。此外,方法500可以被实现为编码在机器可读存储介质上的可执行指令的形式、电路的形式,或其结合。
[0069]在方法500的505,联接至计算设备200的硬件设备可以确定硬件设备的运行参数值。例如,连接至计算设备200的扩展槽246的扩展卡240可以确定扩展卡240的运行参数。在510,硬件设备的驱动器(例如,扩展卡驱动器248)可以将确定的运行参数值存储在计算设备200的面向对象的数据库110的对象230中。在515,用于与计算设备200的健康控制器160交互的健康驱动器120可以从数据库110采集对象230。计算设备200的驱动器可以如上面与图2关联描述的与数据库110通信。
[0070]在520,健康驱动器120可以根据采集的对象230中指示的更新速率来确定运行参数值的更新时间段。例如,采集的对象可以包括运行参数值(例如,温度值234)在对象230中更新的速率。在其它示例中,采集的对象230可以不包括运行参数值的更新速率。在这样的示例中,健康驱动器120可以将运行参数值的更新时间段设置为健康驱动器120中指定的默认时间段,或其自身确定运行参数值的更新时间段。在525,如上面与图1关联描述的,健康驱动器120可以将采集的对象230转换成健康控制器160可用的且表示对象230中存储的运行参数值(例如,温度值234)的健康控制信息182。健康驱动器120可以进一步将健康控制信息182提供给健康控制器160。在530,如上面与图2关联描述的,健康控制器160可以根据接收的健康控制信息182来控制计算设备200的运行参数。
[0071]在535,健康驱动器120可以确定从采集对象230开始,是否已经过了更新时间段。如果否,则健康驱动器120可以继续检查是否已经过了更新时间段。如果已经过了更新时间段,则方法500可以继续到515,在515,健康控制器120可以从数据库110采集硬件设备(例如,扩展卡240)的更新对象230。在这样的示例中,硬件设备的驱动器可以用硬件设备所确定的新的值更新运行参数值。在一些示例中,方法500可以继续到520并根据包括在更新对象230中的更新速率确定新的更新时间段。在其它示例中,如果健康控制器120已经确定了运行参数值的更新时间段,则方法500可以继续到525而不确定更新时间段。
[0072]在525,健康驱动器120可以将更新对象230转换成健康控制器160可用的且表示包括在更新对象230中的更新运行参数值的更新健康控制信息182。健康驱动器120可以将更新健康控制信息182提供给健康控制器160。在530,健康控制器160可以根据更新健康控制信息182来控制计算设备200的运行参数。以这样的方式,健康驱动器120可以根据更新运行参数值定期生成更新的健康控制信息。
【权利要求】
1.一种计算设备,包括: 面向对象的数据库,用于将由硬件设备确定的所述硬件设备的运行参数值存储在所述数据库的与所述硬件设备关联的对象中; 健康控制器;以及 健康驱动器,用于与所述健康控制器交互,所述健康驱动器包括: 采集模块,用于从所述数据库采集所述对象;和 转换模块,用于将所采集的对象转换成所述健康控制器可用的且表示所述硬件设备所确定的所述运行参数值的健康控制信息, 其中所述健康控制器包括控制模块,用于根据从所述健康驱动器接收的所述健康控制信息控制所述计算设备的运行参数。
2.根据权利要求1所述的计算设备,进一步包括: 扩展端口,用于容纳所述硬件设备,其中所述硬件设备包括扩展卡, 其中所述数据库用于从与所述扩展卡交互的扩展卡驱动器接收所述运行参数值。
3.根据权利要求2所述的计算设备,其中: 所述硬件设备包括温度传感器,用于确定所述硬件设备的处理器附近的温度; 所述硬件设备的所述运行参数值包括利用所述温度传感器确定的温度值;并且 所述计算设备的所述运行参数包括所述计算设备的风扇的风扇速度。
4.根据权利要求2所述的计算设备,其中所述数据库包括: 通信模块,用于经由所述计算设备的操作系统的数据库接口模块,从与所述硬件设备关联的设备驱动器接收所述运行参数值。
5.根据权利要求1所述的计算设备,所述健康驱动器进一步包括: 提供模块,用于将所述健康控制信息提供给所述健康控制器的第一寄存器,所述健康控制信息具有所述第一寄存器可接收的格式。
6.根据权利要求5所述的计算设备,其中: 所述转换模块进一步用于推出与所述对象的所述运行参数值关联的阈值信息; 所述提供模块进一步用于将所述阈值信息提供给所述健康控制器的第二寄存器,所述范围信息具有所述第二寄存器可接收的格式; 所述第一寄存器和所述第二寄存器为通用寄存器;并且 所述健康控制器用于根据所述健康控制信息以及所述阈值信息控制所述计算设备的所述运行参数。
7.一种非瞬态机器可读存储介质,被编码有由计算设备的处理器可执行的指令,所述存储介质包括用于以下操作的指令: 针对连接至所述计算设备的指定类型的任意硬件设备的标识,询问所述计算设备的面向对象的数据库; 从所述数据库采集所述数据库所识别的所述指定类型的硬件设备的运行参数对象,且所述数据库所识别的所述指定类型的硬件设备的运行参数对象存储在所述数据库中; 将所采集的运行参数对象转换成健康控制信息,所述健康控制信息表示由所述硬件设备确定的且包括在所述运行参数对象中的所述硬件设备的运行参数值,其中所述健康控制信息可由所述健康控制器使用,以控制所述计算设备的运行参数;以及 将所述健康控制信息提供给所述健康控制器。
8.根据权利要求7所述的存储介质,其中用于询问的指令包括用于以下操作的指令: 针对所述数据库所识别的所述指定类型的每个硬件设备,确定该硬件设备的运行参数对象是否存储在所述数据库中。
9.根据权利要求8所述的存储介质,其中用于采集的指令包括选择指令,和用于在针对所述数据库所识别的多个硬件设备确定相应的运行参数对象存储在所述数据库中时触发所述选择指令的指令,所述选择指令包括用于以下操作的指令: 根据所识别的硬件设备的相应属性,在所述多个硬件设备中识别目标硬件设备;以及 采集与所述目标硬件设备关联的所述运行参数对象。
10.根据权利要求8所述的存储介质,其中用于采集的指令包括用于以下操作的指令: 如果针对所述数据库所识别的多个硬件设备确定相应的运行参数对象存储在所述数据库中,则采集所述多个硬件设备的所述运行参数对象。
11.根据权利要求10所述的存储介质,其中: 用于转换的指令包括用于以下操作的指令: 将所采集的运行参数对象转换成健康控制值,每个所述健康控制值表示包括在所述运行参数对象中相应的一个中的运行参数值;以及 根据所述健康控制值的相应级数选择所述健康控制值中的一个;并且用于提供的指令包括用于将所选择的健康控制值作为所述健康控制信息提供给所述健康控制器的指令。
12.根据权利要求7所述的存储介质,其中: 所采集的运行参数对象包括与所述运行参数值关联的范围信息;并且 所述健康控制信息以所述范围信息所指示的值范围的比例表示所述运行参数值。
13.—种方法,包括: 利用联接至计算设备的硬件设备,确定所述硬件设备的运行参数值; 利用所述硬件设备的驱动器,将所确定的运行参数值存储在所述计算设备的面向对象的数据库的对象中; 利用所述计算设备的健康控制器的驱动器,从所述数据库采集所述对象; 利用所述健康控制器的所述驱动器,将所采集的对象转换成所述健康控制器可用的且表示所述运行参数值的健康控制信息;以及 利用所述健康控制器,根据所述健康控制信息控制所述计算设备的运行参数。
14.根据权利要求13所述的方法,进一步包括: 根据所述对象中指示的更新速率确定所述运行参数值的更新时间段;以及从采集所述对象开始,在经过所述更新时间段之后,从所述数据库采集所述硬件设备的更新对象。
15.根据权利要求14所述的方法,进一步包括: 利用所述健康控制器的所述驱动器,将所述更新对象转换成所述健康控制器可用的且表示包括在所述更新对象中的更新运行参数值的更新健康控制信息;以及 利用所述健康控制器,根据所述更新健康控制信息控制所述计算设备的运行参数。
【文档编号】G06F1/00GK104272213SQ201280073081
【公开日】2015年1月7日 申请日期:2012年6月28日 优先权日:2012年6月28日
【发明者】安德鲁·L·威尔特齐乌斯, 罗伯特·李·克莱恩 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1