一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于动态输入/输出缩放的技术的制作方法

2022-02-24 19:02:35 来源:中国专利 TAG:

用于动态输入/输出缩放的技术
相关申请的交叉引用
1.本技术要求2020年8月14日提交的题为“动态i/o缩放”的临时申请63/065,858的权益,该临时申请通过引用以其整体被并入。


背景技术:

2.在诸如芯片上系统(soc)之类的计算设备中,功率密度和热管理可能是挑战。增加i/o端口的数量和i/o带宽通过增加使用时的soc功耗而加剧了该问题。芯片上计算功率可以通过诸如动态电压和频率缩放(dvfs)之类的技术来控制,但是通过引入低功率链路状态或降低数据速率来扼制i/o互连可能导致数据丢失、不佳的用户体验、或设备故障。在当前平台架构中,设备dvfs通常负责设备的热管理而不负责扼制互连。
附图说明
3.在附图中,以示例方式而不是以限制方式例示出本文中所描述的概念。出于说明简单和清楚起见,附图中所图示出的要素不一定是按比例绘制的。在认为适当的情况下,已在附图之间重复了附图标记以指示对应的或类似的要素。
4.图1是用于控制输入/输出功率使用的计算设备的至少一个实施例的简化框图;
5.图2是可由图1的计算设备建立的环境的至少一个实施例的简化框图;以及
6.图3-图4是可由图1的计算设备执行的用于控制输入/输出功率使用的方法的至少一个实施例的简化流程图。
具体实施方式
7.尽管本公开的概念易于具有各种修改和替代形式,但是,本公开的特定实施例已作为示例在附图中示出并将在本文中详细描述。然而,应当理解,没有将本公开的概念限制于所公开的特定形式的意图,而相反,意图旨在涵盖符合本公开和所附权利要求书的所有修改、等效方案和替代方案。
8.说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示所描述的实施例可包括特定特征、结构或特性,但是,每一个实施例可包括或可以不一定包括该特定特征、结构或特性。而且,此类短语不一定是指同一实施例。进一步地,当结合实施例来描述特定的特征、结构或特性时,认为结合无论是否被明确描述的其他实施例来实施此类特征、结构或特性均落在本领域技术人员的知识范围之内。附加地,应当领会,以“a、b和c中的至少一者”的形式包括在列表中的术语可意指(a);(b);(c);(a和b);(a和c);(b和c);或(a、b和c)。类似地,以“a、b或c中的至少一者”的形式列出的项可以意指(a);(b);(c);(a和b);(a和c);(b和c);或(a、b和c)。
9.在一些情况下,所公开的实施例能以硬件、固件、软件或其任何组合来实现。所公开的多个实施例也可被实现为由瞬态或非瞬态机器可读(例如,计算机可读)存储介质承载或存储于其上的可由一个或多个处理器读取并执行的指令。机器可读存储介质可被具体化
为用于以可由机器读取的形式存储或传送信息的任何存储设备、机制或其他物理结构(例如,易失性或非易失性存储器、介质盘、或其他介质设备)。
10.在附图中,一些结构或方法特征可按特定布置和/或排序示出。然而,应当领会,此类特定布置和/或排序可以不是必需的。相反,在一些实施例中,能以与在说明性附图中示出的不同的方式和/或次序来布置此类特征。另外,在特定附图中包括结构或方法特征不意味着暗示在所有实施例中都需要此类特征,并且在一些实施例中,可以不包括此类特征,或此类特征可以与其他特征组合。
11.现在参考图1,说明性计算设备100被配置成用于通过在必要时指令输入/输出(i/o)设备驱动器改变i/o设备的数据传输速率而控制i/o功率使用。例如,功率策略引擎202(参见图2)可指令用于存储设备的设备驱动器扼制i/o数据传输。设备驱动器随后可使去往存储设备的i/o请求延迟,从而降低由来自存储设备的i/o通信量引起的计算设备100的功耗。应当领会,功率策略引擎202不需要知晓由存储设备使用的具体协议,且不需要知晓设备驱动器可能采取用以降低功耗的具体动作。相反,功耗如何被改变的细节可由设备驱动器来实现,而无需功率策略引擎的额外参与。
12.另外,在一些实施例中,功率策略引擎202可使用动态电压和频率缩放来控制例如处理器102的功率使用,以保持在计算设备100的功率限制内。然而,应当领会,通过引入较低功率链路状态或降低数据速率来强制地扼制i/o互连可能导致数据丢失、不佳的用户体验、或者设备故障。如此,功率策略引擎202可通过指令设备驱动器改变i/o设备的数据传输速率来管理计算设备100上的这些i/o设备的功率影响。
13.如本文中所使用,i/o设备是指向处理器102、存储器104、或者计算设备100的其他组件提供输入和/或输出的任何设备。例如,i/o设备可指存储设备108、通信电路110、图形处理器112、外部或内部总线连接的设备(诸如usb设备、pcie连接的设备、雷电(thunderbolt)连接的设备)等。
14.计算设备100可被具体化为任何类型的计算设备。例如,不作为限制,计算设备100可被具体化为以下各项或者以其他方式被包括在以下各项中:服务器计算机、嵌入式计算系统、芯片上系统(soc)、多处理器系统、基于处理器的系统、消费者电子设备、智能电话、蜂窝电话、台式计算机、平板计算机、笔记本计算机、膝上型计算机、网络设备、路由器、交换机、联网计算机、可穿戴计算机、手持设备、消息收发设备、相机设备和/或任何其他计算设备。说明性计算设备100包括处理器102、存储器104、输入/输出(i/o)子系统106、数据存储108、通信电路110、图形处理器112、显示器114、以及一个或多个外围设备116。在一些实施例中,计算设备100的说明性组件中的一个或多个可以被合并在另一组件中,或能以其他方式形成另一组件的部分。例如,在一些实施例中,存储器104或其部分可以被合并在处理器102中。在一些实施例中,说明性组件中的一个或多个可物理地与另一组件分离。例如,在一个实施例中,具有处理器102和存储器104的soc可以通过通用穿行总线(usb)连接器连接至该soc外部的数据存储108。
15.处理器102可被具体化为能够执行本文中所描述的功能的任何类型的处理器。例如,处理器102可被具体化为(多个)单核或多核处理器、单插槽或多插槽处理器、数字信号处理器、图形处理器、神经网络计算引擎、图像处理器、微控制器或其他处理器或处理/控制电路。类似地,存储器104可被具体化为能够执行本文中所描述的功能的任何类型的易失性
或非易失性存储器或数据存储。在操作中,存储器104可存储在计算设备100的操作期间使用的各种数据和软件,诸如操作系统、应用、程序、库以及驱动程序。存储器104可经由i/o子系统106通信地耦合至处理器102,该i/o子系统106可被具体化为用于促进与处理器102、存储器104以及计算设备100的其他组件之间的输入/输出操作的电路系统和/或组件。例如,i/o子系统106可被具体化为或以其他方式包括:存储器控制器中枢、输入/输出控制中枢、固件设备、通信链路(即,点对点链路、总线链路、线路、电缆、光导、印刷电路板迹线等)和/或用于促进输入/输出操作的其他组件和子系统。i/o子系统106可使用任何合适的连接器、互连、总线、协议等(诸如,soc结构、usb2、usb3、usb4、等等)将计算设备100的各种内部和外部组件彼此连接。在一些实施例中,i/o子系统106可形成芯片上系统(soc)的部分,并可连同计算设备100的处理器102、存储器104及其他组件一起被合并在单个集成电路芯片上。
16.数据存储108可被具体化为被配置成用于短期或长期数据存储的任何类型的一个或多个设备。例如,数据存储108可包括任何一个或多个存储器设备以及电路、存储器卡、硬盘驱动器、固态驱动器或其他数据存储设备。
17.通信电路110可被具体化为能够诸如通过一个或多个有线或无线连接将计算设备100与其他计算设备对接的任何类型的接口。在一些实施例中,通信电路110可以能够与任何适当的缆线类型(诸如电缆或光缆)对接。通信电路110可被配置成用于使用任何一种或多种通信技术及相关联的协议(例如,以太网、wimax、近场通信(nfc)等)。通信电路110可以位于与处理器102分开的硅上,或者通信电路110可以与处理器102一起被包括在多芯片封装中,或者甚至与处理器102被包括在同一管芯上。通信电路110可被具体化为一个或多个插入式板、子卡、网络接口卡、控制器芯片、芯片组、专用组件(诸如现场可编程门阵列(fpga)或专用集成电路(asic))、或可以由计算设备102使用以与另一计算设备连接的其他设备。在一些实施例中,通信电路110可被具体化为包括一个或多个处理器的芯片上系统(soc)的部分,或者通信电路110可被包括在也包含一个或多个处理器的多芯片封装上。在一些实施例中,通信电路110可包括均位于该通信电路110本地的本地处理器(未示出)和/或本地存储器(未示出)。在此类实施例中,通信电路110的本地处理器可以能够执行本文中所描述的处理器102的功能中的一项或多项功能。附加地或替代地,在此类实施例中,通信电路110的本地存储器可以在板级、插槽级、芯片级和/或其他层级上被集成到计算设备102的一个或多个组件中。
18.图形处理器112被配置成用于执行图形计算,诸如对要在显示器114上显示的图形进行渲染。附加地或替代地,在一些实施例中,图形处理器112可执行通用计算任务,和/或可执行图形处理器112非常适合的转移任务,诸如大型并行操作。图形处理器112可被具体化为能够执行本文中所描述的功能的任何类型的处理器。例如,图形处理器112可被具体化为(多个)单核或多核处理器、单插槽或多插槽处理器、数字信号处理器、微控制器、或者其他处理器或处理/控制电路。
19.显示器114可被具体化为可在其上向计算设备100的用户显示信息的任何类型的显示器,诸如触屏显示器、液晶显示器(lcd)、发光二极管(led)显示器、阴极射线管(crt)显示器、等离子显示器、图像投影仪(例如,2d或3d)、激光投影仪、抬头显示器和/或其他显示技术。在一些实施例中,计算设备100可具有连接至该计算设备的多于一个的显示器114。计
算设备100可以能够使显示器114中的一些或全部断开连接,诸如以降低由显示器114使用的功率。类似地,在一些实施例中,计算设备100可以能够改变显示器114中的一些或全部显示器114的各种参数来降低功率使用,诸如改变刷新率、分辨率等。
20.在一些实施例中,计算设备100可包括其他或附加组件(诸如通常在计算设备中找到的那些组件)。例如,计算设备100还可具有外围设备116,诸如键盘、鼠标、扬声器、话筒、外部存储设备等。在一些实施例中,计算设备100可连接至对接装置,该对接装置可以与各种设备(包括外围设备116)对接。
21.在说明性实施例中,计算设备100的各种组件可以能够监视对应组件的当前功率使用和/或当前温度。例如,处理器102、存储器104等可具有分别能够确定该处理器102、存储器104的功率使用和/或温度的集成电路或组件。附加地或替代地,计算设备100可具有测量图1中示出的组件的功率和/或温度的分开的组件。
22.现参考图2,在说明性实施例中,计算设备100在操作期间建立环境200。说明性环境200包括功率策略引擎202、功率管理控制器204、功率递送控制器206以及设备驱动器208。环境200的各模块可被具体化为硬件、软件、固件或其组合。例如,环境200的各模块、逻辑和其他组件可形成处理器102或计算设备100的其他硬件组件的部分,或以其他方式由处理器102或计算设备100的其他硬件组件建立,计算设备100的其他硬件组件诸如存储器104、数据存储108等。如此,在一些实施例中,环境200的模块中的一个或多个模块可被具体化为电气设备的电路系统或集合(例如,功率策略引擎电路系统202、功率管理控制器电路系统204、功率递送控制器电路系统206等)。应当领会,在此类实施例中,电路(例如,功率策略引擎电路系统202、功率管理控制器电路系统204、功率递送控制器电路系统206等)中的一个或多个可形成处理器102、存储器104、i/o子系统106、数据存储108和/或计算设备100的其他组件中的一者或多者的部分。例如,在一些实施例中,这些模块中的一些或全部可被具体化为处理器102以及存储要由处理器102执行的指令的存储器104和/或数据存储108。另外,在一些实施例中,说明性模块中的一个或多个可形成另一模块的部分,和/或说明性模块中的一个或多个可彼此独立。此外,在一些实施例中,环境200的模块中的一个或多个模块可被具体化为虚拟化的硬件组件或仿真架构,该虚拟化的硬件组件或仿真架构可由处理器102或计算设备100的其他组件建立和维护。应当领会,环境200的模块中的一个或多个模块的功能中的一些功能可能要求硬件实现,在这种情况下,实现此类功能的模块的实施例将至少部分地被具体化为硬件。
23.如上文所讨论可以被具体化为硬件、固件、软件、虚拟化硬件、仿真架构和/或其组合的功率策略引擎202被配置成用于管理计算设备100的整体功率策略。功率策略引擎202从计算设备100的各种组件接收功率和操作信息,并且在必要时指令计算设备100的组件改变功耗或改变i/o数据传输速率。功率策略引擎202可从例如功率管理控制器204、功率递送控制器206、设备驱动器208、计算设备100的各种组件等接收信息。
24.功率策略引擎202可以以任何合适的方式从任何合适的组件接收功率信息。例如,功率策略引擎202可从诸如处理器102、通信电路110、图形处理器112、计算设备100的功率监视电路、计算设备100的温度监视电路等之类的组件接收当前功率使用、当前温度、和/或当前i/o数据传输速率。应当领会,计算设备100外部的设备的i/o数据传输引起计算设备100的、为了适当地处置该i/o数据传输的功率使用。结果是,降低i/o数据传输速率降低了
处理i/o所花费的功率,从而释放用于诸如处理器102之类的其他组件的功率。在一些实施例(诸如其中计算设备100是电池操作的实施例)中,功率策略引擎202可监视由计算设备100提供给设备的功率,该设备诸如连接至c型usb端口的外部存储设备。在一些实施例中,功率策略引擎202可基于先前发送给计算设备100的各组件的指令来监视当前功率使用,并且可以不要求接收任何附加信息来确定当前功率使用水平。
25.类似地,功率策略引擎202可以以任何合适的方式从任何合适的组件接收操作信息。例如,功率策略引擎202可接收与处理器102、数据存储108、通信电路110、图形处理器112等的当前或未来工作负荷有关的信息。该信息可包括工作负荷量、工作负荷类型、工作负荷优先级、工作负荷对其他组件的依赖性等。数据存储108和/或通信电路110的操作信息可包括队列深度、带宽速率等。
26.功率策略引擎202可处理功率信息和操作信息,以确定是否要对功率设置作出改变。功率策略引擎202可以以任何合适的方式(诸如通过将功率使用或温度或i/o数据传输速率与阈值进行比较)来处理信息。在一些实施例中,功率策略引擎202可监视当前以及过去功率使用,以确定是否要对功率设置作出改变。例如,功率策略引擎202可确定计算设备100可以处于较高功率状态达预定的时间量,诸如1毫秒与1000秒之间的任何时间。功率策略引擎202可以以任何合适的方式(诸如,通过将当前功率使用与阈值进行比较、随特定的时间帧对过去功率使用进行积分、计算预期热效应等)来计算功率使用是否超过阈值。功率策略引擎202还可监视诸如频率、电压、优先级、以及i/o带宽和吞吐量之类的操作信息,以确定是否要对功率设置作出改变。例如,功率策略引擎202还可允许高功率使用来处理高优先级任务,并且随后在高功率任务完成时降低功率使用。
27.功率策略引擎202被配置成用于在该功率策略引擎202确定i/o功率设置的改变是恰当的时指令计算设备100的其他组件改变操作。在说明性实施例中,功率策略引擎202指令设备驱动器208改变对应的i/o设备的数据传输速率。例如,功率策略引擎202可指令存储驱动器210延迟或以其他方式扼制存储设备108上的i/o操作。功率策略引擎202可指令网络驱动器212对向外发出的分组进行延迟,或者可指令网络驱动器212降低连接速度。功率策略引擎202可指令图形驱动器214以较低的帧率来渲染图形,以较低的刷新率来刷新显示器114,以较低的分辨率来渲染图形,以较低的分辨率在显示器114上显示图形等。在一些实施例中,功率策略引擎202可指令设备驱动器208降低对应的i/o设备的数据传输速率(或者增加可用数据传输限制),而不提供关于如何进行的具体指令,将如何降低数据传输速率的细节留给特定的设备驱动器208。应当领会,功率策略引擎202不要求关于针对特定通信协议可以如何降低数据传输速率的任何知识,从而允许功率策略引擎202针对任何合适的接口、协议、连接器、互连等来与任何合适的设备驱动器208对接。在一些实施例中,功率策略引擎202可指令设备驱动器208降低数据传输速率,而不提供设备驱动器208应当使数据传输减少的具体量。
28.在一些实施例中,功率策略引擎202可向设备驱动器208中的一些或全部发送设备功率状态的指示,诸如功率状态d0、d1、d2、d3等,包括诸如d0ax、d3热、d3冷等之类的可能的功率子状态。在一些实施例中,一些设备驱动器208和/或对应的设备可支持那些功率状态,并且一些可能不支持。
29.附加地或替代地,在一些实施例中,功率策略引擎202可指令其他组件(诸如,处理
器102、存储器104、和/或图形处理器112)降低功率使用。例如,功率策略引擎202可指令处理器102、存储器104、和/或图形处理器112实现动态电压和功率缩放。在一些实施例中,功率策略引擎202可指令存储器控制器诸如通过延迟存储器读取或写入请求、扼制存储器带宽等来降低功率使用。
30.功率策略引擎202可具有控制功率和热管理的一种或多种用户定义的策略。这些策略可定义平均功率使用、最大功率使用、平均i/o数据传输速率、最大i/o数据传输速率、针对何时降低或升高各种组件的i/o带宽可用性的各种阈值、在各种阈值被超过时要采取的各种动作等。应当领会,除了指令组件降低i/o数据传输速率之外,功率策略引擎202还可以指令组件增加i/o数据传输速率或者向组件通知增加的i/o数据传输速率是被准许的。在一些实施例中,功率策略可定义在何种情况下不同的组件应当被排定优先级。例如,如果处理器102具有高工作负荷量或高工作负荷优先级,则可以以用于i/o组件的减少的i/o数据传输为代价而向处理器102提供附加的功率。替代地,如果处理器102不具有高工作负荷或者处理器102具有低优先级工作负荷,则可向处理器102提供较少的功率,并且更多功率可被用来服务于i/o组件的i/o数据传输。
31.说明性功率管理控制器204(其可如上文所讨论被具体化为硬件、固件、软件、虚拟化硬件、仿真架构和/或其组合)被配置成用于管理与计算设备100的某些组件(诸如处理器102、存储器104、图形处理器112等)有关的功率。在说明性实施例中,功率管理控制器204可与处理器102、存储器104和图形处理器112一起被集成到soc上。功率管理控制器204可与未被集成到soc中的功率策略引擎202进行通信。在其他实施例中,功率管理控制器204和功率策略引擎202可以处于同一芯片上或者被集成到同一组件中。在一些实施例中,功率管理控制器204可部分地或完全地被集成到功率策略引擎202中。
32.功率管理控制器204被配置成用于与功率策略引擎202进行通信,以提供如上文所讨论的关于功率策略引擎202的功率信息和操作。例如,功率管理控制器204可将来自诸如处理器102、通信电路110、图形处理器112、计算设备100的功率监视电路、计算设备100的温度监视电路等之类的组件的当前功率使用、数据传输使用和/或当前温度发送至功率策略引擎202。类似地,功率管理控制器204可向功率策略引擎202发送与处理器102、数据存储108、通信电路110、图形处理器112等的当前或未来工作负荷有关的操作信息。
33.功率管理控制器204还被配置成用于接收并实现来自功率策略引擎202的指令以改变当前功耗。例如,功率管理控制器204可接收进入某个功率状态(诸如,功率状态d0、d1、d2、d3等)的指令。功率管理控制器204还可被配置成用于接收并实现用于实现与处理器102、存储器104和/或图形处理器112有关的动态电压和频率缩放的指令。
34.功率递送控制器206(其可如上文所讨论被具体化为硬件、固件、软件、虚拟化硬件、仿真架构和/或其组合)被配置成用于管理被递送至由计算设备100供电的设备(诸如usb3驱动器、usb4驱动器、usb4局域网(lan)设备等)的功率。功率递送控制器206可将来自被连接的设备中的每一者或全部的、指示当前功率递送合约和/或当前功率使用的信息发送至功率策略引擎202。功率递送控制器206还可接收来自功率策略引擎202的指令来减少功率递送。功率递送控制器206随后可与各种被连接的设备对功率递送合约进行重新协商。在一些实施例中,如果功率递送合约无法在由功率策略引擎202提供的约束内达成一致,则功率递送控制器206可切断对被连接的设备中的一些或全部的功率递送。
35.设备驱动器208(其可如上文所讨论被具体化为硬件、固件、软件、虚拟化硬件、仿真架构和/或其组合)被配置成用于管理计算设备100的各种设备,并且具体被配置成用于管理计算设备100的各种设备的i/o数据传输速率。如上文关于功率策略引擎202所讨论,设备驱动器208可将功率和操作信息发送至功率策略引擎202。设备驱动器208还可接收来自功率策略引擎202的、改变由该设备驱动器208管理的各种设备的i/o数据传输速率的指令。设备驱动器208可包括任何合适的驱动器,诸如存储驱动器210、联网驱动器212、和/或图形驱动器214。在计算设备100上电时,设备驱动器208可在枚举期间向计算设备100的操作系统或其他组件指示设备驱动器208的功率管理能力。
36.存储驱动器210可向功率策略引擎202提供功率和操作信息。功率和操作信息可包括i/o数据传输速率、设备功率比、总线链路状态、队列深度等。功率策略引擎202可指令存储驱动器210以任何合适的方式(诸如,通过降低存储数据速率、降低设备功率比、改变总线链路状态等)来改变i/o数据传输速率。在一些实施例中,存储驱动器210可管理如何在除了降低数据传输速率的指令之外没有来自功率策略引擎202的任何特定指令的情况下管理i/o数据传输速率降低。存储驱动器210可控制例如usb3驱动器、nvme驱动器、usb4驱动器等。
37.联网驱动器212可向功率策略引擎202提供功率和操作信息。功率和操作信息可包括联网数据速率、设备功率比、总线链路状态、队列深度等。功率策略引擎202可指令联网驱动器212以任何合适的方式(诸如,通过降低网络数据速率、降低设备功率比、改变总线链路状态等)来降低数据传输速率。联网驱动器212可例如降低wifi带宽速率、改变lan带宽速率、改变5g蜂窝带宽速率等。在一些实施例中,联网驱动器212可管理如何在除了降低数据传输速率的指令之外没有来自功率策略引擎202的任何特定指令的情况下管理数据传输速率降低。联网驱动器212可控制例如lan、wifi、5g、usb4 lan等。
38.图形驱动器214可向功率策略引擎202提供功率和操作信息。功率和操作信息可包括帧率、刷新率、分辨率、连接的显示器114的数量等。功率策略引擎202可指令图形驱动器214以任何合适的方式(例如,通过降低刷新率、降低帧率、降低分辨率或减少使用中的显示器114的数量)来减少数据传输。图形驱动器214可使显示器114断开连接,或者可指令用户使显示器114断开连接或关闭显示器114。在一些实施例中,图形驱动器214可管理如何在除了降低数据传输速率的指令之外没有来自功率策略引擎202的任何特定指令的情况下管理数据传输速率降低。图形驱动器可控制pcie图形处理器、pcie英特尔图形(intel graphics,igfx)显示器、usb4显示器等。
39.现参考图3,在使用中,计算设备100可执行用于动态i/o功率缩放的方法300。方法300可由计算设备100的任何合适的组件或组件的组合来执行,这些组件包括硬件、软件、固件等。例如,方法300中的一些或全部可由处理器102、存储器104、功率策略引擎202等执行。方法300开始于框302,其中计算设备100执行对被连接的设备的枚举。计算设备100可加载用于被连接的设备的设备驱动器208,并且确定设备驱动器208和对应设备的功率管理能力。例如,计算设备100可确定设备是否支持各种功率状态配置。
40.在框304中,计算设备100确定被连接的设备的功率状态。计算设备100可确定各种设备或组件的功率使用、由功率递送控制器206递送的功率、存储设备108的存储数据速率、通信设备110的网络数据速率等。
41.在框306中,计算设备100配置功率设置。计算设备100可在框308上确定阈值温度,
并且可在框310中确定功率策略。功率策略可以是控制功率和热管理的一种或多种用户定义的策略,诸如数据存储108中所存储的策略、接收自通信电路110的策略、和/或接收自计算设备100的用户的策略。这些策略可定义平均功率使用、最大功率使用、平均数据传输速率、最大数据传输速率、针对何时降低或升高各种组件的功率可用性或数据传输速率可用性的各种阈值、在各种阈值被超过时要采取的各种动作等。方法进行至图4中的框312。
42.现在参考图4,在框314中,计算设备100接收来自该计算设备100的各种组件的功率信息。计算设备100或其组件(诸如处理器102或功率策略引擎202)接收来自该计算设备100的各种组件的功率和操作信息。功率信息可接收自例如功率管理控制器204、功率递送控制器206、设备驱动器208、计算设备100的各种组件等。在框314中,计算设备100接收指示该计算设备100的一个或多个组件的一个或多个温度的当前温度信息。
43.计算设备100可以以任何合适的方式从任何合适的组件接收功率信息。例如,计算设备100可从诸如处理器102、通信电路110、图形处理器112、计算设备100的功率监视电路、计算设备100的温度监视电路等之类的组件接收当前功率使用、当前数据传输使用、和/或当前温度。在一些实施例中,计算设备100可接收指示提供给连接至该计算设备的设备(诸如,通过c型usb连接供电的外部存储设备)的功率的信息。
44.在框316中,计算设备100接收与该计算设备100的当前操作有关的操作信息。例如,计算设备100可接收与框318中的当前处理器102使用有关的信息。在框320中,计算设备100可接收与各种设备的当前i/o数据传输速率有关的信息。计算设备100可接收与当前图形处理器112使用有关的信息,并且在框324中,可接收与被递送至总线供电的设备的当前功率有关的信息。操作信息可包括工作负荷量、工作负荷类型、工作负荷优先级、工作负荷对其他组件的依赖性、存储数据速率、网络数据速率、总线链路状态、显示器帧率、显示器刷新率、显示器分辨率等。
45.在框326中,计算设备100基于接收到的功率信息和/或操作信息来确定是否要改变i/o功率设置。计算设备100可处理该信息,从而以任何合适的方式(诸如基于功率策略)确定是否要改变功率设置。例如,在框328中,计算设备100可将当前温度与阈值进行比较,或者在框330中,可将当前和/或过去功率使用与阈值进行比较。计算设备100可以以任何合适的方式(诸如,通过将当前功率使用与阈值进行比较、随特定的时间帧对过去功率使用进行积分、计算预期热效应等)来计算功率使用是否超过阈值。在一些实施例中,计算设备100可附加地或替代地监视操作信息,以确定是否要对功率设置作出改变。
46.在框332中,如果计算设备100将不改变i/o功率设置,则方法300循环回到框312,以接收附加功率信息。如果计算设备100要改变i/o功率设置,则方法300进行至框334,在框334中,计算设备100改变i/o功率设置。计算设备100可以以任何合适的方式改变i/o功率设置。在说明性实施例中,在框336中,计算设备100指令设备驱动器208改变数据传输速率。例如,计算设备100可指令存储驱动器210延迟、扼制或以其他方式减缓存储设备108上的操作。计算设备100可指令网络驱动器212对向外发出的分组进行延迟,或者可指令网络驱动器212降低连接速度。计算设备100可指令图形驱动器214以较低的帧率来渲染图形、以较低的刷新率来刷新显示器114、以较低的分辨率来渲染图形、以较低的分辨率在显示器114上显示图形等。在一些实施例中,计算设备100可指令设备驱动器208降低对应的i/o设备的数据传输速率(或者增加可用数据传输限制),而不提供关于如何进行的具体指令,将如何降
低数据传输速率的细节留给特定的设备驱动器208。应当领会,对于组件指令,设备驱动器208不需要关于针对特定的通信协议可以如何降低功率使用的任何知识。在一些实施例中,组件可指令设备驱动器208降低数据传输速率,而不提供设备驱动器208应当使数据传输减少的具体量。
47.应当领会,向计算设备100内的组件发送数据以及从计算设备100内的组件发送数据的设备的i/o数据传输引起计算设备100的、为了适当地处置该i/o数据传输的功率使用。结果是,降低i/o数据传输速率降低了处理i/o所花费的功率,从而释放用于诸如处理器102之类的其他组件的功率。
48.在一些实施例中,计算设备100可向设备驱动器208中的一些或全部发送设备功率状态的指示,诸如功率状态d0、d1、d2、d3等,包括诸如d0ax、d3热、d3冷等之类的可能的功率子状态。在一些实施例中,一些设备驱动器208和/或对应的设备可支持那些功率状态,并且一些可能不支持。
49.附加地或替代地,在一些实施例中,计算设备100可指令其他组件(诸如,处理器102、存储器104、和/或图形处理器112)降低功率使用。例如,计算设备100可指令处理器102、存储器104、和/或图形处理器112实现动态电压和功率缩放。方法300随后循环回到框312,以接收附加功率信息。示例
50.下文提供了本文中所公开的技术的说明性示例。这些技术的实施例可包括下文所描述的示例中的任何一个或多个示例及其任何组合。
51.示例1包括一种用于动态输入/输出(i/o)缩放的计算设备,该计算设备包括:处理器;存储器,该存储器通信地耦合至处理器;数据存储,该数据存储包括用于连接至计算设备的i/o设备的设备驱动器;以及功率策略引擎,该功率策略引擎用于:确定计算设备的i/o功率设置是否应当被改变;以及指令设备驱动器响应于确定计算设备的i/o功率设置应当被改变而改变i/o设备的数据传输速率,其中,设备驱动器用于响应于功率策略引擎的指令而改变i/o设备的数据传输速率。
52.示例2包括如示例1所述的主题,其中,确定计算设备的i/o功率设置是否应当被改变包括确定该计算设备的当前温度是否超过阈值。
53.示例3包括示例1和2中任一项所述的主题,并且其中,i/o设备是图形处理器,其中,改变i/o设备的数据传输速率包括改变图形处理器的输出的帧率或分辨率。
54.示例4包括如示例1-3中任一项所述的主题,并且其中,i/o设备是数据存储设备,其中,改变i/o设备的数据传输速率包括改变数据存储设备的数据存储速率。
55.示例5包括如示例1-4中任一项所述的主题,并且其中,i/o设备是通信电路,其中,改变i/o设备的数据传输速率包括改变通信电路的网络数据速率。
56.示例6包括如示例1-5中任一项所述的主题,并且其中,指令设备驱动器改变i/o设备的数据传输速率包括指令该设备驱动器将i/o设备置于预定义的多个功率状态中的一个功率状态。
57.示例7包括如示例1-6中任一项所述的主题,并且其中,计算设备用于在该计算设备启动时对多个设备进行枚举,以针对该多个设备中的每个设备确定对应的设备是否支持被置于多个功率状态,其中,该多个设备包括i/o设备。
58.示例8包括如示例1-7中任一项所述的主题,并且其中,功率策略引擎进一步用于响应于确定计算设备的i/o功率设置应当被改变而改变与i/o设备的功率递送合约。
59.示例9包括如示例1-8中任一项所述的主题,并且其中,i/o设备是存储设备、通信电路或图形处理器。
60.示例10包括一种用于动态输入/输出(i/o)缩放的方法,该方法包括:由计算设备的功率策略引擎确定该计算设备的i/o功率设置是否应当被改变;由功率策略引擎指令并且响应于确定计算设备的i/o功率设置应当被改变而指令用于计算设备的i/o设备的设备驱动器改变该i/o设备的数据传输速率;以及由设备驱动器并且响应于功率策略引擎的指令而改变i/o设备的数据传输速率。
61.示例11包括如示例10所述的主题,其中,确定计算设备的i/o功率设置是否应当被改变包括确定该计算设备的当前温度是否超过阈值。
62.示例12包括示例10和11中任一项所述的主题,并且其中,i/o设备是图形处理器,其中,改变i/o设备的数据传输速率包括改变图形处理器的输出的帧率或分辨率。
63.示例13包括如示例10-12中任一项所述的主题,并且其中,i/o设备是数据存储设备,其中,改变i/o设备的数据传输速率包括改变数据存储设备的数据存储速率。
64.示例14包括如示例10-13中任一项所述的主题,并且其中,i/o设备是通信电路,其中,改变i/o设备的数据传输速率包括改变通信电路的网络数据速率。
65.示例15包括如示例10-14中任一项所述的主题,并且其中,指令设备驱动器改变i/o设备的数据传输速率包括指令该设备驱动器将i/o设备置于预定义的多个功率状态中的一个功率状态。
66.示例16包括如示例10-15中任一项所述的主题,并且进一步包括:在计算设备启动时对多个设备进行枚举,以针对该多个设备中的每个设备确定对应的设备是否支持被置于多个功率状态,其中,该多个设备包括i/o设备。
67.示例17包括如示例10-16中任一项所述的主题,并且进一步包括:由功率策略引擎响应于确定计算设备的i/o功率设置应当被改变而改变与i/o设备的功率递送合约。
68.示例18包括一种或多种计算机可读介质,包括存储于其上的多条指令,这些指令在由计算设备执行时使得该计算设备:通过该计算设备的功率策略引擎确定计算设备的i/o功率设置是否应当被改变;通过功率策略引擎响应于确定计算设备的i/o功率设置应当被改变而指令用于计算设备的i/o设备的设备驱动器改变i/o设备的数据传输速率;通过设备驱动器并且响应于功率策略引擎的指令而改变i/o设备的数据传输速率。
69.示例19包括如示例18所述的主题,其中,确定计算设备的i/o功率设置是否应当被改变包括确定该计算设备的当前温度是否超过阈值。
70.示例20包括示例18和19中任一项所述的主题,并且其中,i/o设备是图形处理器,其中,改变i/o设备的数据传输速率包括改变图形处理器的输出的帧率或分辨率。
71.示例21包括如示例18-20中任一项所述的主题,并且其中,i/o设备是数据存储设备,其中,改变i/o设备的数据传输速率包括改变数据存储设备的数据存储速率。
72.示例22包括如示例18-21中任一项所述的主题,并且其中,i/o设备是通信电路,其中,改变i/o设备的数据传输速率包括改变通信电路的网络数据速率。
73.示例23包括如示例18-22中任一项所述的主题,并且其中,指令设备驱动器改变i/
o设备的数据传输速率包括指令该设备驱动器将i/o设备置于预定义的多个功率状态中的一个功率状态。
74.示例24包括如示例18-23中任一项所述的主题,并且其中,多条指令进一步使得计算设备在该计算设备启动时对多个设备进行枚举,以针对该多个设备中的每个设备确定对应的设备是否支持被置于多个功率状态,其中,该多个设备包括i/o设备。
75.示例25包括如示例18-24中任一项所述的主题,其中,多条指令进一步使得计算设备响应于确定该计算设备的i/o功率设置应当被改变而指令设备驱动器改变与i/o设备的功率递送合约。
76.示例26包括一种用于动态输入/输出(i/o)缩放的计算设备,该计算设备包括:用于通过计算设备的功率策略引擎确定该计算设备的i/o功率设置是否应当被改变的装置;用于通过功率策略引擎指令并且响应于确定计算设备的i/o功率设置应当被改变而指令用于计算设备的i/o设备的设备驱动器改变该i/o设备的数据传输速率的装置;以及用于通过设备驱动器并且响应于功率策略引擎的指令而改变i/o设备的数据传输速率的装置。
77.示例27包括如示例26所述的主题,其中,确定计算设备的i/o功率设置是否应当被改变包括确定该计算设备的当前温度是否超过阈值。
78.示例28包括示例26和27中任一项所述的主题,并且其中,i/o设备是图形处理器,其中,用于改变i/o设备的数据传输速率的装置包括用于改变图形处理器的输出的帧率或分辨率的装置。
79.示例29包括如示例26-28中任一项所述的主题,并且其中,i/o设备是数据存储设备,其中,用于改变i/o设备的数据传输速率的装置包括用于改变数据存储设备的数据存储速率的装置。
80.示例30包括如示例26-29中任一项所述的主题,并且其中,i/o设备是通信电路,其中,用于改变i/o设备的数据传输速率的装置包括用于改变通信电路的网络数据速率的装置。
81.示例31包括如示例26-30中任一项所述的主题,并且其中,用于指令设备驱动器改变i/o设备的数据传输速率的装置包括用于指令该设备驱动器将i/o设备置于预定义的多个功率状态中的一个功率状态的装置。
82.示例32包括如示例26-31中任一项所述的主题,并且进一步包括用于在计算设备启动时对多个设备进行枚举以针对该多个设备中的每个设备确定对应的设备是否支持被置于多个功率状态的装置,其中,该多个设备包括i/o设备。
83.示例33包括如示例26-32中任一项所述的主题,并且进一步包括:用于通过功率策略引擎响应于确定计算设备的i/o功率设置应当被改变而改变与i/o设备的功率递送合约的装置。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献