具有总线主控设备的计算机系统中的功率降低方法

文档序号:6404093阅读:171来源:国知局
专利名称:具有总线主控设备的计算机系统中的功率降低方法
技术领域
本发明一般地涉及功率管理领域。更具体地说,本发明涉及用于使得处理器进入低功率状态的方法和系统。
背景技术
高级配置和电源接口(ACPI)规范所定义的硬件和软件环境使得操作系统(OS)软件能够完成系统配置和功率管理的可视性及控制。ACPI为计算机系统将功率管理和即插即用功能结合起来。ACPI描述了一组有效的处理器工作状态以及这些状态之间所允许的转换。为处理器所定义的前四个状态是C0、C1、C2和C3。C0状态是一个正常工作状态。C1状态是一个低功率、低延迟(latency)的状态,它无需芯片集逻辑的任何支持并且保留着所有缓存的上下文。C2状态是一个比C1具有更低功率以及略长延迟的状态,它需要芯片集的支持,但仍然保留着缓存的上下文。C3状态是一个具有更低功率以及更长延迟的状态,它也需要芯片集的支持,但是在该状态中,所缓存的上下文有可能丢失。基于IA-32体系结构的系统一般将HALT(HLT)指令的使用映射到C1状态,将STOPGTANT/QUICKSTART断言(assertion)映射到C2状态,并且将Deep Sleep(对处理器时钟输入信号的清除)操作映射到C3状态。在C1和C2状态,系统处理器可以侦听(snoop)总线。在C3状态中,系统处理器无法侦听总线。
在启用ACPI的OS中,基于输入/输出(I/O)活动以及处理器的可用状态及其属性,OS需要就“处理器应当进入何种低功率状态”决定一种策略。为了帮助OS做出这种策略决定,ACPI系统提供了一个总线主控状态(BM_STS)位和仲裁器禁止(ARB_DIS)位。ACPI系统还提供了多种控制方法,这些方法描述了处理器的各种可用状态。BM_STS和ARB_DIS位使得OS能够决定何时将处理器置入C3状态,以及何时将处理器置入功率高得多的C2状态。
用于在C2或C3低功率状态之间做出决定的策略是基于系统在C3状态中的能力。如上所述,处理器处于C3状态时不能进行侦听,此外在总线主控访问当中还发生了存储器/缓存一致性问题。因此,OS策略通过BM STS位来跟踪总线主控访问的活动。如果几乎没有活动,则它通过置位(set)BM_STS位来禁止总线仲裁器(其阻止总线主控的执行),并将处理器置入C3状态。
另外,OS确定C2/C3策略所持续的时间间隔将会影响系统的功率性能。对于一个ACPI OS而言,每个抢先(preempt)间隔都执行一次用于确定处理器的C状态的策略。抢先被定义为周期性定时器所产生的中断,也被称为定时器中断。一般而言,这个间隔是10ms-20ms之间的量级(该间隔与OS有关)。处理器在这一抢先时间内调度其所要执行的工作,当处理器完成这项工作时,它进入低功率状态。
在将处理器置入低功率状态的过程中,OS查看所述抢先期间内的剩余时间以及总线主控访问的频率。为了进入C3状态,OS要确保剩余的抢先时间大于C3退出延迟,然后(通过检查BM_STS位)判定在剩余抢先时间内总线主控访问的可能性。如果有时问用于C3退出,并且一直没有总线主控活动,则OS将处理器置入C3状态。
可见,空闲的低功率系统希望进入可能的最低功率处理器状态(Cx状态越高,功率就越低,例如,C3具有比C1低得多的功率)。另外,为了进入C3状态,系统必须确保在处理器不能在这一状态进行侦听时,不会发生任何将影响存储器和/或缓存的一致性的活动。此外,每个抢先间隔内都要至少执行一次用于确定将发生哪个Cx状态的策略,或者每10ms左右执行一次该策略。这些条件定义了一个空闲C3状态。然而,如果有什么东西引发了缓存一致性问题,并且和抢先间隔一样频繁发生,那么处理器将永不进入C3状态。OS通过BM_STS位跟踪所有的缓存一致性问题,并且如果BM_STS位被置位,则OS推断它不能进入C3状态。


以示例而非限制的方式图示了本发明,在附图中用相同的标号来表示类似的元件,其中图1是图示了根据本发明一个实施例的、具有不可缓存的存储器的计算机系统示例的框图。
图2是图示了根据本发明一个实施例的、具有写通式(write-through)可缓存存储器的计算机系统示例的框图。
具体实施例方式
在一个实施例中,公开了这样一种方法,该方法能够避免通过置位BM_STS位以使处理器进入C3状态,同时保持了存储器一致性。通过改变总线主控缓冲区的缓存策略,许多总线主控活动就可以不产生缓存一致性问题,因此无需BM_STS位的跟踪,从而使得处理器可以更经常地进入C3状态。
在下面的描述中,出于解释的目的,阐述了大量具体的细节,以提供对本发明的充分理解。然而,本领域的技术人员将会清楚,没有这些具体的细节也能够实现本发明。此外,为了在解释中避免一些不必要的细节,一些公知的结构、过程和设备是以框图的形式示出的,并以总体的方式进行引用。
一般,利用总线主控读操作或写操作来置位总线主控状态(BM_STS)位。例如,在带有USB设备的系统中,USB主控制器从存储器中读取描述符,以确定是否有什么USB主控制器需要执行的操作。每毫秒都要从存储器读取描述符。大多数时间内,所述描述符都指示出没有什么USB主控制器需要执行的操作。传统上,因为驱动器缓冲区是写回式(write-back)可缓存的,所以要对BM_STS位进行置位,因此如果对其处的实际数据驻留在处理器缓存内的存储区执行总线主控读操作,并且处理器处于C3状态,那么在处理器被唤醒之前无法继续总线主控操作。这是因为处理器在C3状态中不能服务于侦听周期。为了防止这种状况,给定可能引起侦听周期(BM_STS被置位)的任何先前流量,OS就置位ARB_DIS位以阻止任何总线主控操作。
至于对写回式可缓存存储器区域的总线主控写操作,该存储器区域的副本可能驻留于处理器的缓存内。为了保持一致性,任何对写通式可缓存存储器区域的总线主控写操作都需要由处理器的缓存来侦听。为了防止这种状况的出现,OS对ARB_DIS位进行置位,以阻止任何总线主控操作。
通过可避免缓存和存储器一致性问题的设计方案,处理器可进入低功率状态。当驱动器所用的存储器空间被标记并保持为不可缓存时,存储器一致性问题就消失了。将这个存储器空间标记为不可缓存的,这样就能够确保这一存储器空间的副本不存在于处理器的缓存中,并且无需为由使用这一存储器区域的设备所进行的总线主控访问而侦听处理器的缓存。当BM_STS被设计为在某一设备生成对不可缓存的存储器空间的总线主控操作时不被置位的时候,OS可以更经常地将处理器置入低功率C3状态。
或者,当驱动器所使用的存储器空间被标记并保持为写通式可缓存时,某些存储器一致性问题就得到了解决。写通式可缓存存储器指的是在存储器和处理器缓存中可以具有多份数据副本,但是这些副本都被维护为具有一致性的;任何读操作都只是读取本地副本,而对这一数据的某一副本的写操作必须被复制到其它位置(存储器或缓存)。这样一来,总线主控存储器读操作就不需要处理器的任何交互,而对存储器的总线主控写操作需要处理器的缓存被侦听(以更新它的数据副本)。对于这类配置,如果总线主控设备的存储器被标记为写通式可缓存的,则BM_STS位可被设计为,只有当这些设备产生对写通式存储器区域的总线主控写访问时才被置位。然而,对写通式可缓存存储器区域的总线主控读访问则不需要对BM_STS位进行置位,就使得OS能够将CPU置入低功率C3状态。
为了优化C3状态的进入,下面的表图示了应当如何根据正被访问的存储器区域的缓存能力来置位BM_STS


如该表所示,如果将总线主控缓冲区变为完全不可缓存的,就可以避免对BM_STS位的置位,而如果将总线主控缓冲区变为写通式可缓存的,则对任何读周期都可避免对BM_STS位进行置位。根据总线主控的行为,可以使用这些技术中的一种,使得处理器能够更经常地进入C3状态。
图1是图示了根据本发明一个实施例的、具有不可缓存的存储器的计算机系统示例的框图。USB设备135和140都通过USB主控制器120与计算机系统100相连。计算机系统100包括处理器102、存储器控制器单元(MCU)105和存储器110。一般来说,计算机系统100中的OS在每个时间段(例如,每11秒)上都调度一个周期性的抢先中断。利用每个抢先中断,OS为处理器102安排了一定量的工作来做。当处理器102完成所述工作时,处理器102在下一个抢先中断之前被空闲起来。接着,处理器102做一些OS所安排的其他工作,然后处理器102再次空闲。
当处理器102空闲时,OS将处理器102置入先前所述的C1、C2或C3状态之一。这些状态中的每一个都具有不同的属性。例如,C1状态是大约2瓦的低功率状态,并具有大约0.5微秒的退出延迟。C2状态是大约1.5瓦的低功率状态,并具有大约100微秒的退出延迟时间。C3状态是大约0.2瓦的超低功率状态,并具有约3微秒退出延迟。C3状态是一种超低功率的处理器状态。退出延迟时间是在发生抢先中断时处理器102重新启动所用的时间。
为了在存储器缓存103和存储器110之间保持一致性,侦听是很重要的。当处理器102被置入C3状态时,处理器102无法侦听总线。例如,当处理器处于C3状态时,如果USB主控制器120(或总线主控制器)原本想要控制总线并将数据写入存储器110,而对应的数据正好位于处理器缓存103中,那么将会出现存储器一致性问题。存储器110中的数据将会比处理器缓存103中的数据更新,但由于处理器102无法侦听总线,所以它不会注意到这一点。
为了防止存储器一致性问题,ACPI规范要求禁止总线主控仲裁器145。通过对仲裁器禁止(ARB_DIS)位进行置位,就可以禁止总线主控仲裁器145。这可以防止总线主控仲裁器145将总线授予任何总线主控制器(包括USB主控制器)或设备。然而,置位ARB_DIS位将会影响USB主控制器120读其帧列表的能力。如上所述,USB主控制器120经常(例如,每1毫秒)生成对存储器110的总线主控访问。
在本发明的一个实施例中,存储器110中由总线主控设备使用的部分被设置为不可缓存的,并且对于由总线主控设备(USB主控制器120)进行的任何总线主控访问,都不置位BM_STS位。这将导致OS忽略来自这个不可缓存总线主控设备的任何总线主控活动,而且它将不会影响到用于将处理器102置入C3状态的OS策略。例如,当USB主控制器120执行总线主控写操作以写入不可缓存的存储器110时,没有什么好担心的缓存一致性问题。当USB主控制器120执行总线主控读操作以从不可缓存的存储器110读取时,也没有什么存储器一致性问题。因此,处理器102在由USB主控制器120进行的任何总线访问期间,都无需对总线进行侦听,因而可被置入低功率C3状态。
为了优化这一类型的配置,MCU 105对于来自“不可缓存”总线主控设备(USB主控制器120)的任何总线主控访问,都必须不向处理器102发出侦听周期。有很多种方法可用来执行这类存储器定型(typing)。例如,可将存储器属性寄存器编程到MCU中,以辨别存储器的哪些部分是不可缓存的,或者,来自总线主控设备的一个单独信号可以作为总线周期操作的发起者。
此外,由于“不可缓存”总线主控设备(USB主控制器120)不再产生缓存一致性问题,并且MCU 105不再生成到处理器102的侦听周期,因此在ARB_DIS位被置位(正常情况下,这将迫使所有总线主控设备不工作)时,“不可缓存”总线主控设备也被允许工作。注意,这仅仅适用于“不可缓存”总线主控设备,其它可能产生一致性问题的所有总线主控设备在ARB_DIS位被置位时都需要被禁止。
图2是图示了根据本发明一个实施例的、具有写通式可缓存存储器的计算机系统示例的框图。存储器210被设置为对于总线主控设备(这种情形下,即USB主控制器220)所使用的存储器来说是写通式可缓存的,并且仅对于来自这一“写通式可缓存”总线主控设备的总线主控写操作而置位BM_STS位,但在来自这一“写通式可缓存”总线主控设备的总线主控读操作期间不置位BM_STS位。这使得缓存203和存储器210在发生总线主控写操作时可相互一致。虽然缓存203被图示为处理器缓存,但是这一技术同样适用于其它缓存实现。
为了优化这一类型的配置,MCU 210对于来自这一特定“写通式可缓存”总线主控设备(USB主控制器220)的任何总线主控读操作,都不向处理器202发送侦听周期。有多种方法可用来执行这类存储器定型。例如,可将存储器属性寄存器编程到MCU中,以辨别存储器的哪些部分是写通式可缓存的,或者,来自总线主控设备的一个单独信号可以作为总线周期操作的发起者。
此外,由于“写通式可缓存”总线主控设备对于存储器读周期不再产生缓存一致性问题,并且MCU 210对于来自这一“写通式可缓存”总线主控设备的总线主控读操作,不再向处理器202生成侦听周期,因此在ARB_DIS位被置位(正常情况下,这将迫使所有总线主控设备不工作)时,允许“写通式可缓存”总线主控设备执行总线主控读操作。在ARB_DIS位被置位时,仍要阻止这一“写通式可缓存”总线主控设备生成总线主控写周期,但是总线主控读操作可以继续。注意,这仅仅适用于“写通式可缓存”总线主控设备;其它可能产生一致性问题的所有总线主控设备在ARB_DIS位被置位时都需要被禁止。
本发明中各种方法的操作都可由数字处理系统中的处理单元来实施,所述处理单元可以执行计算机程序指令序列。所述操作可以包括带有辅助处理器的硬件电路,所述辅助处理器专门用于执行功率管理的功能。可以使用包括存储在存储器中的指令的应用软件来执行所述操作,所述存储器可被视为一种机器可读存储介质。所述存储器可以是随机访问存储器、只读存储器、诸如大容量存储器件的永久存储型存储器、或者这些器件的任何组合。执行指令序列将使得处理单元执行根据本发明的操作。所述指令可从一个存储器件或者通过网络连接而从一个或多个其它数字处理系统(例如,一个服务器计算机系统)中被载入所述计算机的内存。所述指令可被同时存储在几个存储器件(例如,DRAM和诸如虚拟内存的硬盘)中。结果,可由所述处理单元来直接执行这些指令。
在其它情况下,不可以直接执行所述指令,或者它们不可由所述处理单元直接执行。在这些环境下,通过让处理器执行用于解释所述指令的解释器,或者通过让处理器执行将所接收的指令转换为可由处理器直接执行的指令的指令,就可以实现上述执行过程。在其它实施例中,可以使用硬连线电路取代软件指令,或者将两者结合起来实现本发明。因而,本发明并不限于硬件电路和软件的任何特定组合,也不限于由计算机或数字处理系统执行的指令的任何特定源。
虽然已参考特定的示例性实施例描述了本发明,但是很清楚,在不偏离如本发明权利要求所述的更宽精神和范围的前提下,可以对这些实施例做出多种修改和改变。由此,本说明书和附图将被视为示例性的而非限制性的。
权利要求
1.一种方法,包括将总线主控设备所使用的存储器设置为不可缓存的,所述存储器和所述总线主控设备位于一个计算机系统中;对于由所述总线主控设备对所述存储器进行的任何总线主控存储器操作,都不置位总线主控状态位;以及将所述计算机系统中的处理器置入低功率状态。
2.如权利要求1所述的方法,其中,所述低功率状态是一种深度睡眠状态。
3.如权利要求1所述的方法,其中,所述低功率状态是C3状态。
4.如权利要求1所述的方法,其中,所述存储器耦合到一个存储器子系统,该子系统在由所述总线主控设备执行的任何总线主控访问期间都不向所述处理器生成侦听周期。
5.如权利要求4所述的方法,其中,在仲裁器禁止位被置位时,允许所述总线主控设备生成总线主控读和写操作。
6.一种其上存储有指令序列的计算机可读介质,所述指令可由一个系统来执行,并且所述指令在由所述系统执行时,使得所述系统执行一种方法,包括将总线主控设备所使用的存储器设置为不可缓存的,所述存储器和所述总线主控设备位于一个计算机系统中;对于由所述总线主控设备对所述存储器进行的任何总线主控存储器操作,都不置位总线主控状态位;以及将所述计算机系统中的处理器置入低功率状态。
7.如权利要求6所述的计算机可读介质,其中,所述低功率状态是一种深度睡眠状态。
8.如权利要求6所述的计算机可读介质,其中,所述低功率状态是C3状态。
9.如权利要求6所述的计算机可读介质,其中,所述存储器耦合到一个存储器子系统,该子系统在由所述总线主控设备执行的任何总线主控访问期间都不向所述处理器生成侦听周期。
10.如权利要求9所述的计算机可读介质,其中,在仲裁器禁止位被置位时,允许所述总线主控设备生成总线主控读和写操作。
11.一种系统,包括设置为不可缓存的存储器;与所述存储器相耦合的总线主控设备;以及与所述存储器和所述总线主控设备相耦合的处理器,其中,当所述总线主控设备对所述不可缓存的存储器执行存储器操作,并且对于这些总线操作未置位总线主控状态位时,所述处理器被置入低功率状态。
12.如权利要求11所述的系统,其中,所述低功率状态是一种深度睡眠状态。
13.如权利要求11所述的系统,其中,所述低功率状态是C3状态。
14.如权利要求11所述的系统,还包括一个与所述存储器相耦合的存储器子系统,其中所述存储器子系统在由所述总线主控设备执行的任何存储器操作期间都不向所述处理器生成侦听周期。
15.如权利要求14所述的系统,其中,在仲裁器禁止位被置位时,允许所述总线主控设备生成总线主控读和写操作。
16.一种方法,包括将总线主控设备所使用的存储器设置为写通式可缓存的,所述存储器和所述总线主控设备位于一个计算机系统中;在所述总线主控设备对所述存储器执行存储器读操作时,不置位总线主控状态位;以及将所述计算机系统中的处理器置入低功率状态。
17.如权利要求16所述的方法,还包括在所述总线主控设备对所述存储器执行存储器写操作时,置位所述总线主控状态位。
18.如权利要求17所述的方法,其中,在所述总线主控设备对所述存储器执行存储器写操作时,不将所述处理器置入低功率状态。
19.如权利要求17所述的方法,其中,所述低功率状态是C3状态。
20.如权利要求16所述的方法,其中,所述存储器耦合到一个存储器子系统,该子系统在由所述总线主控设备执行的任何总线主控读操作期间都不向所述处理器生成侦听周期。
21.如权利要求20所述的方法,其中,在仲裁器禁止位被置位时,允许所述总线主控设备生成总线主控读操作。
22.一种其上存储有指令序列的计算机可读介质,所述指令可由一个系统来执行,并且所述指令在由所述系统执行时,使得所述系统执行一种方法,包括将总线主控设备所使用的存储器设置为写通式可缓存的,所述存储器和所述总线主控设备位于一个计算机系统中;在所述总线主控设备对所述存储器执行存储器读操作时,不置位总线主控状态位;以及将所述计算机系统中的处理器置入低功率状态。
23.如权利要求22所述的计算机可读介质,还包括在所述总线主控设备对所述存储器执行存储器写操作时,置位所述总线主控状态位。
24.如权利要求22所述的计算机可读介质,其中,在所述总线主控设备对所述存储器执行存储器写操作时,不将所述处理器置入低功率状态。
25.如权利要求22所述的计算机可读介质,其中,所述低功率状态是C3状态。
26.如权利要求22所述的计算机可读介质,其中,所述存储器耦合到一个存储器子系统,该子系统在由所述总线主控设备执行的任何总线主控读访问期间都不向所述处理器生成侦听周期。
27.如权利要求26所述的计算机可读介质,其中,在仲裁器禁止位被置位时,允许所述总线主控设备生成总线主控读操作。
28.一种系统,包括设置为写通式可缓存的存储器;与所述存储器相耦合的总线主控设备;以及与所述存储器和所述总线主控设备相耦合的处理器,其中,当所述处理器处于低功率状态,而没有置位总线主控状态位时,允许所述总线主控设备执行存储器读操作。
29.如权利要求28所述的系统,其中,当所述总线主控设备对所述存储器执行存储器写操作时,不将所述处理器置入低功率状态。
30.如权利要求28所述的系统,其中,当所述总线主控设备对所述存储器执行存储器写操作时,所述总线主控状态位被置位。
31.如权利要求28所述的系统,其中,所述低功率状态是C3状态。
32.如权利要求28所述的系统,还包括一个与所述存储器相耦合的存储器子系统,其中所述存储器子系统在由所述总线主控设备执行的任何总线主控读操作期间都不向所述处理器生成侦听周期。
33.如权利要求32所述的系统,其中,在仲裁器禁止位被置位时,允许所述总线主控设备生成总线主控读操作。
全文摘要
将由总线主控制器(145、245)访问的系统存储器(110、210)设置为不可缓存的。当系统处理器(102、202)处于低功率状态时,对于涉及所述不可缓存的存储器的任何总线主控制器传输周期,都不置位总线主控状态位。
文档编号G06F12/08GK1639671SQ03804416
公开日2005年7月13日 申请日期2003年2月25日 优先权日2002年2月27日
发明者詹姆斯·卡尔达什 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1