共1条
1/1 1 跳转至页
有关微处理器的十条谎言
对处理器过于频繁的选择导致了一场宗教战争。揭穿占统治地位的神话是作出理性选
择的第一步。
讨论有关球队,政治,宗教,或者你所感兴趣的乐队的话题时,人们通常连眼皮也懒
得抬一下。但是当一群工程师和程序员们凑在一起,争论哪一种处理器是最好的选择的时
候,你会很倾向于选择x86系列。
人们讨论处理器时会充满热情,与讨论DRAMs 或解码器时截然相反。每个人都有其所
钟爱的选择,同时也有令他不愿再次使用的实例。传说与常识同时环绕在微处理器的周围
。有一些很有用,但很多都是迷信,由于惯例而根深蒂固。
神话1:只有很少的处理器可以选择
这是最容易被忽视的误解。当你正在设计一个嵌入式系统时,可以在多少种32位处理
器中进行选择?10种?20种?事实上,现在有超过100种不同的32位嵌入式处理器在销售(
并且还没有算进不同的封装选择以及速度等级)。好几十家公司生产32位处理器,代表着
超过15种不同的CPU架构以及指令集。另外还有几百种16位处理器以及几百种8位处理器可
供选择,你甚至会由于资源过于丰富而感到窘迫。
神话2:Intel 处理器统治世界
一说到“微处理器”,很多人就会想到“奔腾”。主流媒体应该负部分责任。报纸上
宣称Intel占有微处理器市场95%的份额,这与实际数据几乎差了两个数量级。
从一月份所公布的情况来看,所有微处理器中只有2%左右用于制造PC(见 “The Tw
o Percent Solution,”p.29)。Intel的奔腾系列在PC产业中占有支配性地位(联邦贸易
委员会由于缺乏证据终止了宣称其垄断地位的声明),不过PC在整个微处理器这块蛋糕中
只占很小的一片。另外的98%是嵌入式CPU;Intel甚至没有进入该领域的前5名。
即使我们不算入数量庞大的8位和16位芯片,只讨论32位的情况,Intel的名字也只能
排在后面。光ARM的卖主们销售的处理器就比Intel卖出的奔腾要多出3倍。
神话3:指令集无关紧要
不管你用的编程语言是 C/C++,BASIC,Ada,或是Java,你的代码最终会变成运行它
的处理器上的汇编指令。你可能并不需要知道你的CPU所提供的所有机器指令,不过指令集
确会对你的代码造成相当的影响。几行优美简练的C语言代码可能会生成一堆杂乱冗长的汇
编代码,反之亦然。
系统的性能,可预测性,甚至耗电量在很大程度上都倚赖于处于最底层的处理器指令
集,高级语言对此根本无能为力。
让我们举一个两数相乘的简单例子。这在任何语言中都是微不足道的,程序员们也不
会为此花费心思。然而不同的芯片是以不同的方式执行乘法。目前,许多RISC芯片甚至根
本不能进行乘法运算-它被认为是“不纯粹的”,并且不能成为RISC标准的一部分。许多
语言中把乘法运算美其名曰“加法和移位运算”,因此早期的RISC编译器不得不加入自己
的整数乘法功能。虽然能用,但速度不快。
现在大多数(但不是所有的)处理器都有一个内置的乘法指令。不过不是所有的乘法
器都是一样的。有些芯片对两数的乘法运算执行起来比其它芯片要快得多,并且和时钟频
率没有关系。如图1所示,一些芯片(如Hitachi的SH7604和SH7708)在至多4个时钟周期内
可以进行任意两个32位数的乘法。其它芯片(比较明显的是Motorola的68020和030)执行
相同运算要花超过40个时钟周期的时间。http://www.21icsearch.com/buzi/upimage/upf
ile/20037222204340.gif
还有更怪的,就是大多数芯片的性能都无法预测。进行一次乘法的最短时间可能还不到最
长时间的一半。这有什么不同呢?更大的数需要更长的运算,并且要花更长的时间。
最终,相乘两数的顺序起了作用。在小学的时候,老师教我们乘法是可交换的,也就
是说两个乘数的顺序不会影响到计算结果。这个结论是正确的,不过两个乘数的顺序确会
影响到执行该运算的时间。在许多芯片上,相乘的时间决定于两个操作数之一。交换它们
的次序,可能会使运算时间减半。虽然如此,到底那一种次序最好,就要看运气了。
以上所述在高级源代码中是无法获得的。几乎没有C编译器会说明这些不同,因为大多
数用户-嵌入式系统开发者们-从来不会问。许多处理器的用户根本不知道芯片壳子下面
到底在进行着什么。
神话4:RISC比CISC要优秀
我们在3月份时谈到了这个话题,所以这里我只说RISC与CISC是不同的("RISCy Busi
ness," p.37);没有一个会一直都比另一个好,两者都有其优势。CISC芯片提供了更好的
代码深度(更少的内存引脚)以及更成熟的软件工具,而RISC芯片有更高的时钟速度和更
诱人的市场。选择那一种由个人决定,但最好是大家比较熟悉的型号。
神话5:Java芯片就要来到
圣诞节也是如此。事实上,圣诞节离我们要近得多,因为它今年就会来到。相对于圣
诞节,Java芯片与圣诞老人有更多的相似之处:对于天真的年轻工程师们是一个美妙的神
话,而他们还不够成熟,无法知道更多。
Java在很多方面都令人关注,其中的多数都与市场有关。不过将它在硬件上实施也是
非同一般的困难。很多公司都尝试过生产一种“全Java”微处理器,最终都在某一阶段失
败了。这一趋势看来还会继续。
如果不去考虑这一绝妙的讽刺-针对Java的硬件独立性-的话,那么Java处理器最终
义无返顾地踏入了低级逻辑的门槛。Java语言从来就没有意味着直接在硬件上运行,现在
也表明了这一点。废物收集,线程,面向栈,以及目标管理等特性几乎要占用1M字节左右
的Java虚拟机,并且转换成为即使今天最快的微处理器都只能勉强执行的代码。计算机科
学经过了几十年的发展,并且全世界范围的高校和公司都进行了研究,然而对于开发Java
机器仍然一事无成,这并非偶然。
今天,Java“加速”芯片从Nazomi,Zucotto,inSilicon,Octera以及很多其它的公
司都可以得到。其中大多数都可以在硬件上执行30%~60%的Java字节码。剩下的代码都
在软件上操作,原因很简单,不这样不行。依照标准的80/20准则,这些芯片加速了最常用
的Java指令的执行,并对Java整体性能有明显的提升。不过离100%的Java硬件执行的大话
还差得远。
经过几年快速发展,Java芯片看来已经稳定在60%的水平上。Sun自己已经退出了它J
ava芯片的研究。现在已经到了收益递减的阶段,在硬件上执行剩下的Java指令已经没有什
么价值了。如果你有Java芯片的市场需要的话,现在是时候了。
神话6:Dhrystone MIPS是一个很有用的基准测试
MIPS这个术语在微处理器领域传播得比任何其它术语都要广泛。现在它完全就是空谈
,除非你把它作为毫无意义的性能指标,介绍给推销人员。
就像前面说的, 处理器之间的指令是不一样的,因此对它们的比较与计算也是无益的
。就好像说德语中的挡风玻璃擦(Windschutzscheibewischerbl鋞ter)比英语中的要长一
样。
MIPS一般来说起源于所谓的Dhrystone 基准测试。Dhrystone已经有30多年的历史,是
用PL/I编写的,用来对VAX 11/780 与其它型号的主机进行比较。它仅有4KB的代码,很适
合在cache中运行,不进行任何有意义的工作。由于它体积很小,而重要性确被夸大,因此
我们不得不说,Dyrystone被进行了相当多的优化。有的C编译器带有一个dhrystone开关,
可以大大提高测试结果。今天的MIPS等级通过用Dhrystone测试的分数除以1757得到,因为
1757是1970s第一台VAX的分数。现在,人们用已经翻译为C语言的一段4KB的PL/I代码来衡
量VAX级的主机,不知道在重复执行了多少次后,最终得到一个分数,而行销商们会在这个
分数后面“不小心”额外地印上一个0。现在它还有什么用?
神话7:价格与性能成正比
微处理器的销售现在和卖香水一样:标签上的价格与组件的成本根本没有关系。试着
把成本与价格扯上点关系确实挺吸引人的,不过还是省省吧-根本就没那回事。成本是制
造一个芯片的花费;而价格是行销部门给这个芯片的定位。很幸运,由于市场的压力,我
们的行业总是使产品的价值上升,而价格下降。作为芯片的购买者,我们获益于残酷的成
本削减以及市场份额的贸易竞争。
制造一个硅芯片的成本和其内部硅的量没有关系。成本主要决定于分期偿还的企业管
理费用,以及生产线的折旧费。但是,价格确要决定于市场的导向-良好的供应与需求。
如果你的芯片能运行Windows XP,你就要为其付出相当代价。如果它不能,则同样多的硅
的价格就会大大降低。
即使在嵌入式领域,也存在$15的处理器性能超过$150处理器的情况。价格是可以商量
的,有回旋余地的,并且完全无法预测。多逛逛市场吧。
神话8:ARM的能耗最低
在微处理器领域有很高声誉的品牌很少,而ARM是其中名声最棒的。按照它们自己的说
法,ARM的芯片具有几乎不可思议的能力,只要有一些太阳能,或是摩擦一只猫产生的电能
,它就可以运行。看起来一个ARM处理器,两个柠檬,再加上一些铜线,就足够制造出最先
进的PDA。
象许多神话一样,这个神话也来源于事实,不过这个事实已经改变,而神话却传播开
来。在上世纪90年代初,ARM是嵌入到ASIC中的首批32位处理器之一,而不是需要焊接安装
的分立芯片。与当时的大型芯片68030,29000以及486DX相比,小巧的ARM6要消耗更少的能
量,并以热量形式散发出去。这是因为ARM没有浮点运算单元,没有高速缓存,没有外部总
线,也称不上拥有什么指令系统。
现在有大量的ASIC核心的32位处理器芯片可供选择。许多都比ARM7要小,更不要说更
新的ARM10或ARM11了。许多处理器的功耗更低,在待机和工作状态都是如此。如果功耗是
你首要考虑的项目,无论如何也要考虑一下ARM。不过10年的技术进步和竞争已经使ARM落
入能耗排名的中游。
神话9:
第二供应商渠道曾经是任何公司采购部门的暗语。通常硬件工程师无法指定任何组件
,除非有两种以上的资源可供选择。如果是电阻器的话这是好事-减少了风险以及对任何
供应商的依赖-不过现在对于微处理器来说这是不可能的。
的确,你可以从几十个不同的供应商那里得到MIPS芯片,比如NEC、PMC-Sierra、IDT
、以及Intrinsity等,不过它们相互之间是不可互换的。它们都执行同样的指令集,但它
们的总线、引脚、外围设备、速度以及封装都不相同。顶多程序员可以保留他们的大部分
代码不变,而硬件工程师们就不得不重新设计一个系统。
曾经有一个时期Motorola和Hitachi都提供同一种68k处理器,DMA控制器以及其他一些
芯片。Intel 和 AMD也曾经互相作为对方的第二供应商(还记得Intel和AMD成为朋友的那
段时间吗?)。很多8051或6805系列中的低端部分过去也曾经有过同时存在双方甚至三方
供应商的情况。然而,竞争结束了那段岁月。现在,每一个处理器芯片都是独一无二的,
即使指令集不是。
神话10:处理器市场大波动
现在市场上有100多种32位嵌入式处理器在销售,那么市场上就必须有非常多的机会来
支持。谁赢谁输?变革就要来了,谁会第一个成功度过?
可能没有。实际上,嵌入式处理器的数量还会增长,而不会缩减。100种以上的芯片都
在进行批量生产,并且有大量满意的客户不想再用其他产品。这些芯片都有出现的理由,
而这种理由会越来越多。MP3播放机,数字-视频摄像机,汽车控制电路,以及其他新型玩
具都无时无刻不在涌现,而它们每一种都需要一个不同种类的新型的处理器。典型的嵌入
式系统和典型的嵌入式处理器简直就是绝无仅有的。只要嵌入式开发人员发明了新的设备
,新的嵌入式处理器就会出现在那,供人使用。
本文作者Jim Turley 简介:Jim Turley是一位独立分析家,专栏作家,主要在微处理器和
半导体知识产权领域发表文章。他过去曾是"Microprocessor Report" 以及 "Embedded P
rocessor Watch"的编辑。他的E-MAIL是 jim@jimturley.com
※ 来源:.碧海青天 bbs.dlut.edu.cn.
关键词: 有关 微处理器 十条 谎言 处理器 选择 神话 一
共1条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |