打印

对C8051f的100MIPS总是心存疑惑

[复制链接]
5366|31
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
machunshui|  楼主 | 2008-1-31 13:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
对C8051f的100MIPS总是心存疑惑.

刚才在一个网站上看到一个网友的质疑,觉得很有道理,盼高手解答:

"
问题是:8051的指令是不规则的,最短的指令有1字节(NOP),最长的指令有4字节,这个不规则的指令体系,导致流水和缓存效率比较低,因为在CPU设计时候难于预则每个指令后下一条指令到底是什么,所以只能设计一个4字节缓存、效率低下。

即使这条指令命中,也只不过缓解了跳转后下一条指令预取指,但是,再下一条指令呢?还要等待。这个措施能够缓解跳转带来的流水冻结,但是不能消除它的影响。

还有另外的复杂因素。8051体系不同于RISC,指令不规则导致译码困难,多字节指令译码难于在一个周期内完成,很可能要多个周期才能完成,所以,CISC流水线普遍比RISC深。而深的流水线,也只不过是把译码逻辑分散到各个流水周期。您提到的取指-译码-执行逻辑,只适应在RISC上, CISC是很难实现的,它非要拉长流水才能实现。
 
    指令长度的问题,Datasheet上已经明确说明了:运行周期至少等于指令长度。原因很简单,CPU平均每周期只能从Flash取一个字节。不过这个等待已经算入了指令运行周期了,例如,ADD一个立即数比ADD一个寄存器要多一个周期。

C8051译码流水线有多少?Datasheet好像没写。
 

用最常见的桌面系统比较:

苹果G4使用的RISC CPU流水线是7级,32位处理器;同等的32位CISC CPU P4的流水线是20级(另一个增强版本是31级)。

明显地,CISC的流水线比RICS要深,以弥补指令集和体系结构的不足,但是就是这样,大家也知道,在同等主频下,G4的处理能力比P4强、即便是P4采用了更深的流水线。
 

    对1-4个字节组成的指令系统,每次从Flash取一个字节,然后要译码、执行,还要保持1MIPS/MHz的处理能力,那么流水线应该多深?最坏情况下,最少1个取指周期、4个译码周期、1个执行周期,再加上回写吧,没有7个流水级能做到吗?

我反复说过了:越深的流水在发生跳转时候,性能下降越明显。这是C8051F避而不谈的
 
    我个人和Cygnal 公司没有任何利害关系,我只不过是从技术角度分析C8051F120到底能达到多大的处理能力。

我们工程师讲的是实事求是,而不能相信商人的商业宣传;更不能以这种商业噱头为准,去评估自己设计的系统的技术性能。那样,不但损害了用户的利益、最终也砸了自己的饭碗。"

相关帖子

沙发
mohanwei| | 2008-1-31 13:43 | 只看该作者

肯定没有那么高了……用脚趾头都可以想出来


以前intel拼命鼓吹CPU时钟,现在呢……

使用特权

评论回复
板凳
wlq_9| | 2008-1-31 13:54 | 只看该作者

主要是内建

cache,flash本身取指速度跟不上,所以c8051内建了cache来弥补不足,这才是它吹嘘的关键.
这个时候用流水线来分析就显得意义不大了,关键是内建的cache容量是多大.

使用特权

评论回复
地板
machunshui|  楼主 | 2008-1-31 13:54 | 只看该作者

intel的P4超常31级别流水线

intel的P4超常31级别流水线,在运行游戏等不规则的程序时,效率低下,
说明并不是流水线越长越好,
越长流水线重整返工的代价越大.

使用特权

评论回复
5
machunshui|  楼主 | 2008-1-31 13:56 | 只看该作者

cache不能避免流水线返工

cache不能避免流水线返工

使用特权

评论回复
6
machunshui|  楼主 | 2008-1-31 13:59 | 只看该作者

DMIPS、/

使用特权

评论回复
7
winloop| | 2008-1-31 14:04 | 只看该作者

还有其抗干扰性也堪忧

SILICON鼓吹C8051F在汽车上的应用。。。。。没有什么实例说明,而且从口别上来讲它的抗干扰性不太好,易坏。。。。

使用特权

评论回复
8
machunshui|  楼主 | 2008-1-31 14:09 | 只看该作者

其实我就是对CISC指令cpu,能实现1MIPS/MHZ的能力感到惊奇

其实我就是对CISC指令cpu,能实现1MIPS/MHZ的能力感到惊奇。

有点不敢相信。

或许C8051f真的实现了,那成本应该不低,
或许这是C8051f必须卖高价的一个原因????????

使用特权

评论回复
9
mohanwei| | 2008-1-31 16:50 | 只看该作者

综合处理能力才是最重要的,以前RISC总喜欢和CISC

比MIPS,却往往对人家CISC一条指令所干的事自己需要多少条来完成避而不谈……

某些16位机也是,总喜欢和32位机比功耗、价格,掉头又去和8位机比性能……

所以楼主的担心有点多余了……

使用特权

评论回复
10
machunshui|  楼主 | 2008-1-31 16:54 | 只看该作者

确切地说是好奇

确切地说是好奇。

居然实现了CISC的1MIPS/MHz的速度.

使用特权

评论回复
11
mohanwei| | 2008-1-31 17:20 | 只看该作者

CISC和RISC结合似乎是发展方向?这年头,微软都开始搞linux了

使用特权

评论回复
12
三块石头| | 2008-2-1 20:11 | 只看该作者

re

C8051F手册上写的好象是"峰值"……
所以人家有充分的理由,如果程序写的好,都用单周期指令,都别跳转,那就1MIPS/MHZ,否则还是要慢下来
不过我觉得那也比老51,12T好很多了

使用特权

评论回复
13
machunshui|  楼主 | 2008-2-1 21:07 | 只看该作者

其实说白了,就是寄存器操作1MIPS/MHZ

其实说白了,就是寄存器操作1MIPS/MHZ.
要是实现了CISC的每条指令1MIPS/MHZ,那还了得?

不过这种低位数高价100M,确实没什么意思.

运算速度,功耗,抗干扰,能保证吗?

实际上,大家设计应该用达到要求的情况下,尽量用低频率的器件.

越是高频率抗干扰能力越差,对外干扰也越大,功耗也是与频率成正比.

使用特权

评论回复
14
IceAge| | 2008-2-1 22:04 | 只看该作者

尽管 CISC 下的 pipeline 存在效率的问题

但不可否认,pipleline 用提高全速执行几率的方式极大的提高了执行速度。就像 cache 也不能保证 cpu 100% 全速运行,但可以保证 90% 以上的机会。 

使用特权

评论回复
15
jjg| | 2008-2-1 22:18 | 只看该作者

51的12T也确实太慢了,已经越来越难以适应当前的应用。

1T的C8051F120在实际应用中虽然达不到100MIPS,毕竟比12T的51快多了,51在12MHZ晶振下毕竟连1MIPS都达不到。C8051F120的出现毕竟给我们多了一种选择,在你需要的时候你就可以想到它。没有最好的,只有最适合的。

使用特权

评论回复
16
hotpower| | 2008-2-1 22:20 | 只看该作者

哈哈~~~地基不好铺金都白搭~~~现在是放弃51的最佳时机~~~

使用特权

评论回复
17
machunshui|  楼主 | 2008-2-2 08:27 | 只看该作者

16说的好

16说的好。

总是觉得低位数,高频率的cpu,有点舍本逐末.

使用特权

评论回复
18
ayb_ice| | 2008-2-2 13:37 | 只看该作者

LZ在哪里看到51有4字节的指令。。。

目前号称MIPS/MHZ的MCU都是假的,说的只是最大的性能,平均是没有的,C8051的最大确实可能是100MIPS,流水线的MCU指令的执行也可以做到固定的执行时间,有些2周期的51就是固定的执行时间的。

使用特权

评论回复
19
gyt| | 2008-2-2 13:38 | 只看该作者

各有各用

使用特权

评论回复
20
三块石头| | 2008-2-2 14:30 | 只看该作者

问hotpower

放弃51,用啥替代好?
cortex? arm7? avr?

使用特权

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

本版积分规则

153

主题

3224

帖子

4

粉丝