avatar
Today is 星期天
2010年09月5日

搜索结果 文章索引模板: 九月 2009

2009年09月8日

一些常用的WebService

由 晨笛 — 分类目录: 未分类评论暂缺

天气预报Web服务,数据来源于中国气象局
Endpoint
Disco
WSDL

IP地址来源搜索 WEB 服务(是目前最完整的IP地址数据)
Endpoint
Disco
WSDL

随机英文、数字和中文简体字 WEB 服务
Endpoint
Disco
WSDL

中国邮政编码 <-> 地址信息双向查询/搜索 WEB 服务
Endpoint
Disco
WSDL

验证码图片 WEB 服务 支持中文、字母、数字 图像和多媒体
Endpoint
Disco
WSDL

Email 电子邮件地址验证 WEB 服务
Endpoint
Disco
WSDL

中文简体字 <->繁体字转换 WEB 服务
Endpoint
Disco
WSDL

中文 <-> 英文双向翻译 WEB 服务
Endpoint
Disco
WSDL

火车时刻表 WEB 服务 (第六次提速最新列车时刻表)
Endpoint
Disco
WSDL

中国股票行情数据 WEB 服务(支持深圳和上海股市的基金、债券和股票)
Endpoint
Disco
WSDL

即时外汇汇率数据 WEB 服务
Endpoint
Disco
WSDL

腾讯QQ在线状态 WEB 服务
Endpoint
Disco
WSDL

中国电视节目预告(电视节目表) WEB 服务
Endpoint
Disco
WSDL

外汇-人民币即时报价 WEB 服务
Endpoint
Disco
WSDL

中国股票行情分时走势预览缩略图 WEB 服务
Endpoint
Disco
WSDL

国内飞机航班时刻表 WEB 服务
Endpoint
Disco
WSDL

中国开放式基金数据 WEB 服务
Endpoint
Disco
WSDL

股票行情数据 WEB 服务(支持香港、深圳、上海基金、债券和股票;支持多股票同时查询)
Endpoint
Disco
WSDL

2009年09月6日

游戏逻辑模块开发中的一点想法

由 晨笛 — 分类目录: 技术评论暂缺

关于CPU的省电模式

由 晨笛 — 分类目录: 技术评论暂缺

在G0工作状态下,ACPI定义系统处理器的电源状态,要么为活跃状态(正在执行),要么为睡眠状态(未执行)。处理器电源状态被设计为C0,C1,C2,C3。。。Cn。C0电源状态是活跃状态,即CPU执行指令。C1到Cn都是处理器睡眠状态,即和C0状态相比,处理器处理器消耗更少的能源并且释放更少的热量。当进入睡眠状态,处理器不执行任何指令。每个睡眠状态都有一个和省电多少对应的延迟。一般来说,进入和退出的延迟越长,这个状态越省电。为了保持能量,OSPM在空闲时将处理器置于其中一个支持的睡眠状态中。在C0状态下,ACPI允许处理器的性能通过一个定义的节制过程发生改变,通过改变进入多种性能状态(P-states)。

ACPI定义这样的逻辑在每个CPU的偏置上,即OSPM通过转换来切换不同的处理器电源状态。这个逻辑是可选的,在FADT表和处理器对象中有描述。FADT表中的这些字段和标志描述了硬件的对称性,以及处理器对象对特别的CPU时钟逻辑包含的位置(在P_BLK寄存器块和_CST对象中有描述)。

P_LVL2和P_LVL3寄存器提供可选的支持,将系统处理器置于C2或者C3状态。P_LVL2寄存器将排好序的处理器置于C2状态,P_LVL3讲排好序的处理器置于C3状态。C3状态的额外支持通过总线主状态和仲裁禁止位被提供(PM!1_STS寄存器中的BM_STS位和PM2_CNT寄存器中的ARB_DIS位)。系统软件通过读取P_LVL2或者P_LVL3寄存器数据来进入C2或者C3状态。硬件必须精确的将处理器放在恰当的时钟状态,通过对相应的P_LVLx寄存器的读操作。平台必须定义可选的接口来允许OSPM使用_CST对象进入C-state。
处理器的电源状态支持是对称的,通过FADT表和P_BLK接口;OSPM假设同一系统里的所有的处理器都在相同的电源状态下。如果处理器有不对称的电源状态支持,BIOS将通过FADT表选择和使用所有处理器最低的相同的电源状态。例如,如果CPU0支持所有的电源状态乃至C3,但是CPU1仅支持C1,那么OSPM将仅将空闲的处理器置于C1(CPU0将不会被置于C2和C3状态)。注意C1必须被支持,C2和C3是可选的。

处理器电源状态C1
所有的处理器必须支持这种状态。这种状态的支持是通过一个本地的处理器指令(HLT或者mwait),并且认为不需要芯片组的硬件支持。这种状态的硬件延迟必须足够的低,使得OSPM在决定是否使用该状态时不需要考虑延迟方面的问题。除了将处理器置于一种电源状态,这个状态没有其他的软件可见的效果。在C1状态下,处理器可以保持系统cache里面的内容。
硬件可以以任何理由退出该状态,但必须是在有中断到达处理器的情况下。

处理器电源状态C2
这种电源状态不是必需的。如果存在,该状态能够更好的省电,它通过使用P_LVL2命令寄存器或者由_CST提供的另一种机制来使处理器进入该状态。这个状态的最坏情况下的硬件延迟在FADT的表里面有声明,OSPM可以根据这个信息来决定什么时候C1状态应该被C2状态代替。除了将处理器置于一种电源状态,该状态没有其他的软件可见效果。OSPM假设C2比C1更省电,但是退出的延迟比C1要高。
C2电源状态是一种可选的ACPI时钟状态,需要芯片组的硬件支持。时钟逻辑由一个接口组成,可以用来被操纵使处理器精确的进入C2电源状态。在C2电源状态下,处理器被认为能够保持其cache的一致性;例如,总线控制器和多处理器的活动可以发生而不破坏cache里面的内容。
C2状态将处理器置于一种低功耗的状态,围绕多处理器和总线控制器系统做优化。当存在总线控制器或者多处理器活动时(这一条件将阻止处理器进入C3状态),OSPM将使一个空闲状态下的处理器群体进入C2状态。处理器簇能够在C2状态下监视总线控制器或者多核CPU访问内存的行为。
硬件可以以任何理由退出该状态,但必须是在有中断到达处理器的情况下。

处理器电源状态C3
系统对C3处理器电源状态的支持也是可选的。 如果存在,这种状态比C1和C2状态更加节省功耗。 使用P_LVL3命令寄存器或者_CST机制可以进入C3状态。 这种状态的最坏的硬件延迟在FADT表中声明了,OSPM可以通过这一信息来决定什么时候需要进入C3状态而不是C1或者C2状态。 当在C3状态中,处理器的cache保持着状态但是处理器没有窥视总线控制器,或者多核CPU进行访存。
硬件可以以任何理由退出这种状态,但必须是因为一个中断投递到了该处理器,或者当BM_RLD被设置时,一个总线控制器企图访存。
OSPM负责保证cache的一致性。在单处理器环境下,这可以通过使用PM2_CNT。ARB_DIS总线控制器仲裁寄存器来保证总线控制器的活动不会发生在C3状态下。 在多处理器环境下,处理器的cache可以通过flush和invalidate来保持一致性。
有两种机制支持C3电源状态:
1.在进入C3状态之前,让OSPM flush和invalidate cache
2.提供一种硬件机制,阻止控制器写内存(只支持UP)

在第一种情况下,OSPM将在进入C3之前flush系统的cache。 由于flush系统的cache通常有很大的延迟,OSPM只对多核平台的空闲处理器支持这种情况。 flush cache通过ACPI定义的一种机制来完成。

单处理器平台提供一种硬件功能,OSPM将尝试将平台置于一种模式,当处理器处于C3模式,这种模式组织系统总线控制器来写内存。一旦总线控制器请求一个访问,CPU将从C3中被唤醒,并且重新使能总线控制器访问。

OSPM使用BM_STS位来决定要进入的电源状态是C2还是C3。BM_STS是一个可选的bit位,表示总线控制器是活跃的。 OSPM使用这一位来决定在C2和C3之间的策略。 频繁的总线控制器活动将CPU的电源状态降到C2,没有总线控制器活动将CPU的电源状态提升到C3。 OSPM保持BM_STS的一个变化历史来决定CPU电源状态的策略。

用在C3里的最后一个硬件特性是BM_RLD位。 这一位决定总线控制器的访问是否导致Cx电源状态的退出。 如果这一位被设置,一旦有总线控制器访问,Cx将退出。 如果该位被复位为零,总线控制器的访问将不会导致电源状态的退出。 在C3状态中,总线控制器的申请需要CPU转换回C0状态,但是在C2状态中,这样的转换将不是必须的。在C3状态下,OSPM可以设置这一位,在C1或C2状态下,可以清除该位。

© 2010 晨笛的博客 All rights reserved - Wallow theme by TwoBeers Crew - Powered by WordPress - 使用愉快!