CPU的T-state

转自:http://blog.csdn.net/hgf1011/archive/2010/10/01/5918049.aspx

T-state

1. Overview

 

CPUC0状态下有两种手段降低功耗的方法,其一是之前介绍过的P-state,另一个就是T-stateT-sate全称就是Processor Throttling States,它为OSPM提供了一种通过降低Processor Performance进而降低系统负载和温度的能力,听上去可能和P-state很像,其实是有区别的,P-state通过调整CPU VID电压进而影响CPU的工作频率的方式调整系统系能,而T-state则是通过调整单位时间内CPU Clock On /Clock On + Clock Off)的时间(也即Clock On工作占整个CPU工作时间的占空比)的方式 ,影响系统的功耗和温度。

 

2. T-state Control

 

1)        MSR Based Control

 

BIOS可以通过IA32_CLOCK_MODULATIONEnable/Disable clock modulation,而且也可以通过该registerbit0:3 设置CPU Clock Duty Cycle。当FFH_PTC中被使用时,OSPM就会使用MSR IA32_CLOCK_MODULATIONT-state的转换。

 

2)        I/O Based Control

 

除了基于MSRClock Modulation,新的CPU也支持IO emulation Clock Modulation如果系统没有宣告 _PTC,则OSPM将会使用SystemIO 的方式支持Clock ModulationOSPM将会通过PROC_CNT register bit4:0T-state的转换。

 

3)        ACPI Structure For P-state

l  _PTC

 

Processor Throttling Control,该method用于告知OSPM使SystemIo还是MSR的方式调整 Clock Modulation的方式。它的格式如下所示:

 

Name (_PTC, Package()

{

    ResourceTemplate(){Throttling_Control_Register},    //Generic Register Descriptor

    ResourceTemplate(){Throttling_Status_Register}   //Generic Register Descriptor

}) // End of _PTC

 

下述是一个sample code

 

           //

              // T-State Control/Status interface

              //

              Method(_PTC, 0)

              {

                     //

                     // IF OSPM is capable of direct access to MSR

                     //    Report MSR interface

                     // ELSE

                     //    Report I/O interface

                     //

                     //  PDCx[2] = OSPM is capable of direct access to On

                     //            Demand throttling MSR

                     //

                     If(And(PDC0, 0x0004)) {

                            Return(Package() {

                                   ResourceTemplate(){Register(FFixedHW, 0, 0, 0)},

                                   ResourceTemplate(){Register(FFixedHW, 0, 0, 0)}

                            })

                     }

                     Return(Package() {

                            ResourceTemplate(){Register(SystemIO, 4, 1, 0x410)},

                            ResourceTemplate(){Register(SystemIO, 4, 1, 0x410)}

                     })

              }            

      

l  _TSS

 

Throttling Supported States用于告知OSPM该平台所支持的所有的T-sates,格式如下所示:

Name (_TSS, Package()

{       // Field Name                      Field Type

 

    Package ()                              // Throttle State 0 Definition – T0

    { 

        FreqPercentageOfMaximum,          // DWordConst

        Power,                              // DWordConst

        TransitionLatency,                 // DWordConst

        Control,                           // DWordConst

        Status                              // DWordConst

},

……

}

       Example code 如下所示:

       Method(_TSS, 0)

       {     

Package(){100, 1000, 0, 0x00, 0},

                     Package(){ 88,  875, 0, 0x1E, 0},

                     Package(){ 75,  750, 0, 0x1C, 0},

                     Package(){ 63,  625, 0, 0x1A, 0},

                     Package(){ 50,  500, 0, 0x18, 0},

                     Package(){ 38,  375, 0, 0x16, 0},

                     Package(){ 25,  250, 0, 0x14, 0},

                     Package(){ 13,  125, 0, 0x12, 0}   

}

      

l  _TPC

 

Throttling Present Capabilities,用于动态的通知OSPM该平台所支持的T-states0表示支持所有的T-state1表示支持[1,n],2表示支持[2,n]依此类推。为支持动态通知OSPM,当某些条件满足时可以通过通知Processor Object 0x82的方式促使OSPM重新评估_TPC

 

l  _TSD

 

T-state Dependency用于告知OSPM 该平台的logical processor之间的依赖信息,简单来讲就是当其中的一个核进入某一级的T-state,其它的核需要进行的动作等,下述是sample code

 

Name (_TSD, Package()

        {

            Package(){5, 0, 0, 0xFD, 2}       // 5 entries, Revision 0, Domain 0, OSPM

Coordinate, 2 Procs

        }) // End of _TSD object

 

REFF:

1.  ACPI Spec 3.0

2.  Intel Processor vendor-Specific ACPI

 

 

That’s all!

 

Peter

 

2010/10/01

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值