打印

引用别人的**,希望能够有更好的解释

[复制链接]
3798|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
telnet|  楼主 | 2007-2-9 14:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下是关于功耗问题:

1)在一个系统中功耗最大的应该是周边电路,而不应该是cpu 本身,
但是如果cpu 消耗少其提供支持的周边电路的功耗也就降低了,所以整体功耗降低。举例说明:arm cpu 消耗为 1,外围消耗为2,另一种cpu 消耗为 2,外围消耗为 4,虽然比重相同 1/2 = 2/4,但是 (2 + 4) >(1+ 2),换句话说cpu 是问题的主因,外围电路是结果。 -这是否正确。
这里的CPU是经过抽象的结构,也就是仅进行计算(如果是5级,就只有IF,ID, EXE,MEM,WB)。
2)如果是五级流水的RISC话,能够省电的主要核心技术应该在 ID 阶段?(暂时不考虑芯片中对电源的管理的技术方法,并且假设大家都使用16bit指令长度,扔掉 CACHE,memory,flash,软件的设计,指令的使用,等等这方面的考虑,仅仅是 单纯的PIPELINE)。

谢谢!




相关帖子

沙发
平常人| | 2007-2-9 21:40 | 只看该作者

楼主的理论好像有问题

为什么CPU耗电多,周边电路就一定耗电多呢?两者没有必然联系。

为什么说“能够省电的主要核心技术应该在ID阶段”?有何道理?如何得出这样的结论?

使用特权

评论回复
板凳
wangkj| | 2007-2-10 07:27 | 只看该作者

好的cpu在全速和慢速功耗差百倍多

外围电路同样,所以,关键的设计是软件硬件的综合控制。

使用特权

评论回复
地板
telnet|  楼主 | 2007-3-21 16:27 | 只看该作者

补充

1)对于第一条更正补充一下,我们知道thumb 指令与arm指令的区别,虽然arm指令密度大同样的操作,thumb 需要多条指令,但是总体来说thumb指令的程序长度要更少30-40%,虽然说thumb简单的decode会节省功耗,但是我们看到thumb指令同样被decompressed to be compatible with arm instruction(还是在id 阶段).这方面的减少功耗优势被抵消了,所以问题归结到程序的长度。因为thumb 程序少,所以对外设的访问较少,功耗也就相应降低了。

2)对于是id 阶段,因为一个有趣的现象,arm 五级流水中的id阶段没有使用累加器(用于计算跳转指令的目的地址),所以产生如果跳转指令成立将会使用3个时钟周期,但是如果不成功将不会延迟:),这是个了不起的设计,因为写代码的人都知道,我们之所以用if是因为在多数情况下if是不成立的。当然不可以否定if多数是成立的情况,符合双峰分布。但这种情况较小,如果if经常成立,我就会让他成为主流代码。所以在id阶段省掉了硬件自然省电,而总体性能不差。


以上包含猜测的成分,做过cpu的朋友更有发言权!


使用特权

评论回复
5
平常人| | 2007-3-21 20:30 | 只看该作者

楼主的理论没有根据;现在的CPU都是静态设计,功耗与频率

谁说“thumb简单的decode会节省功耗”?

你的理论确实有问题!

要想说明一个理论,最好的办法是用事实说话,不要猜测,楼主最好去做一个模拟。

使用特权

评论回复
6
telnet|  楼主 | 2007-3-22 12:07 | 只看该作者

to 平常人

首先在多数情况下,同样的任务thumb 指令集编写的程序 一定会比arm 指令集耗电少。而省电的原因在于用thumb 指令集编写的程序小,所以对外设的访问少。

我们从各种资料都可以获得对指令长度起决定作用是cpu 的译码阶段。

thumb 得译码比arm 简单,我们可以很容易的从他的指令结构看到。

thumb 使用2个寄存器, arm 使用3个,而且thumb 没有判定条件。。
对于简单的操作来说当然会节省功耗。这里重述一下,但这不意味着
arm 一条指令的功耗 会小于 同样完成工作的thumb多条指令。这里也暂时不包括 cpu 强制将thumb指令转换成arm 指令的逻辑单元的功耗。

使用特权

评论回复
7
HWM| | 2007-3-22 12:38 | 只看该作者

ARM核的设计初衷之一就是为了降低功耗,以便采用电池供电

所以采用了先进的RISC技术(从ARM的本意就知道)。
从CISC到RISC,CPU的结构大大地简化了,而一个MCU或ARM芯片的耗能主角就是CPU,至于片上的外围设备在不使用的时候可以“关掉”。所以在总体上说,只要CPU的功耗降下来了,整个芯片的功耗就会下降。

使用特权

评论回复
8
XZL| | 2007-3-22 13:44 | 只看该作者

同意楼上的意见

现在问题是CPU的功耗下不来

使用特权

评论回复
9
平常人| | 2007-3-22 16:20 | 只看该作者

对telnet理论的质疑

不错,Thumb指令比ARM指令简单,因此Thumb指令的译码和执行也简单,但关键的问题是,在执行Thumb指令时,ARM指令的译码和执行电路并没有关闭,这部分电路仍在耗电;ARM的芯片还没有设计成“隔离暂时不用的电路而减少耗电”这种理想的状态。

同样,设想指令存放于外部的Flash中,Flash并没有被设计成闲置状态比读状态省电,只有在被Disable时(片选失效)Flash才进入低功耗状态。

任何设备在不需要时可以被“关掉”达到省电目的,但待命不是“关掉”,待命与运行的功耗没有明显差异,至少对CPU是这样。

RISC比CISC因电路简化而省电,但不等于“待命”部分的电路也省电。


楼主所说的是理想状态,但因为控制太复杂,目前没有一款芯片能实现。

使用特权

评论回复
10
telnet|  楼主 | 2007-3-22 16:36 | 只看该作者

还有问题

我们都知道最耗电的是状态的变化。
比如 0到1 ,1到0, 而保持某种状态,倒不是矛盾的主要方面。
设计的简单就代表更少的电路参与了状态的变化。

同样的道理,取数据的时候如果指令少,外设的变化也就会相应的降低,功耗一定会降低下来。

我们写代码的时候也知道,减少进程的冗余调用,比精简几句代码效果更好,实际上它的本质也是减少状态的变化.


使用特权

评论回复
11
telnet|  楼主 | 2007-3-22 19:02 | 只看该作者

引用别人的**,希望能够有更好的解释

使用特权

评论回复
12
telnet|  楼主 | 2007-3-30 11:16 | 只看该作者

好了,引个arm 公司的人结束这个帖子

听从了ST的浪淘沙的建议直接问了arm公司的支持得到的结果

英语很烂不要介意!
Q(我):ID determin the length of instruction,so program may be shorter,cpu access memory in fewer times. e.g Program made of thumb instruction set consume less energy than arm instruction set. As well known, arm remove AlU in ID. It is quite smart approach! Here integrate compiler ideal.in one word, what we do is to decrease state change.

A(support):Yes, 16-bit Thumb
instructions do use less power than 32-bit ARM instructions, because
fewer I/O pins change state. Using a cache can also save power if it
results in significantly less off-chip accesses.

哈哈,他/她 对ALU的问题没有给与回答。


使用特权

评论回复
13
HWM| | 2007-3-30 12:44 | 只看该作者

相对而论,用Thumb指令当然要比ARM(32bit)指令省电。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

23

帖子

1

粉丝