到了今天这个环境下,其实无论使用什么样的芯片都可以达到目的。但是为什么至今没有出现所谓的集大成的片子来供所有人使用呢。我想,至少有这样几个原因:一个是需求的多样性;一个是性价比;甚至还应该有技术上的原因。
譬如说功耗,现在没有那个soc不谈低功耗,有些应用对低功耗的要求的确苛刻,不但要求无风扇,甚至连散热片也不能有(这里就不谈手机了 :-) ),普通一点的,譬如像是放在一个密封环境,又是室外,光这一点,功耗就不能高,1~2W最多了,再高就有随时重启的危险,这的确是低功耗,但是并不是一般意义上的低功耗,譬如我用一个8核的cpu,或者32核,64核的cpu,每个core也就1~2w,但是加起来有几十,上百W,那这算不算低功耗呢?当然这种cpu的应用方向显然不是个人用户或者局端,一般都会用在高端路由器,vpn,web server这种数据流量大,并发连接多的领域。
如此看来,对于低功耗这个问题不能一概而论,需要根据需求来选择合适的芯片。
接着看soc的集成度,无论是arm,mips,ppc,又或是x86,都有soc的产品,其实无外乎就是加上内存控制器,local bus,不同的总线接口(pci/pci-x/pic-e/i2c/i2s/usb/ht/srio/spi4 ... 太多枚举不过来),mac/phy,协处理器(arm就是cp15,cp0/x/x;mips就是cp0 cp2;ppc就是cpm/qe,x86的soc偶不太熟) ...。无论从哪一类cpu,都可以找到可以满足功能需求的cpu,从技术的角度看,也没并没有本质上的区别。
譬如说:
boot时的启动特点各自不同
(arm从0x0开始启动,然后将flash重新映射; mips从kseg1的0xbfc00000启动,由kseg0/kseg1共享低端512M内存;
ppc从 0xfff00100/0xfffffffc启动,x86从实模式启动,通过激活保护模式进入32位地址模式)
mmu管理模式不同
(arm支持从1k/4k/64k/1M等不同的映射模式; mips使用无需映射的kseg0/kseg1加上 普通的tlb管理模式;
ppc使用4K到4G的映射模式;x86使用基于段页式及pae扩展的管理模式)
还有很多,但这些技术上的细节都是可以被屏蔽的,换句话说都是可以解决的。
从cpu自身的发展上来看,大家都在互相学习,借鉴。譬如以前arm的功耗一直控制的比较好,一枝独秀,但是现在其他体系的
cpu的功耗也都控制的不错。从指令集上看,以前arm有thumb指令集以便压缩代码尺寸,mips也出现了对应的mips16指令集,x86
则本身是cisc的变长指令。x86有mmx,sse,ppc则有altivect,mips有dsp ase,arm也在v6版本中加入了simd的支持。另外,mips
最早出现64位结构,现在x86,ppc也都有对应的cpu,多核就更是如此,x86不必多谈,intel,amd的比比皆是,mips也有像是rmi的
xlr732系列,ppc的mpc8572,970mp,cell等等。这些都说明一个问题,不同的架构并不是问题。
从价格上来看,arm的cpu普遍比较便宜,这也是为什么arm能占据嵌入式市场最大一块份额的一个重要因素,毕竟在很多中低端市场价格是最敏感的要素。这也是每一种cpu都不遗余力降低成本的原因。剩下的几大类cpu,x86由于雄踞个人市场,需求量非常大,价格能控制的很好,这也是x86契入嵌入式市场的一个优势,可以利用x86平台在个人市场上的人气和拉低的成本打入嵌入式领域。对于mips这样的老牌risc cpu,以前的风光现在已经减退不少,目前主要集中在中高端市场,像是路由器,vpn等,而ppc则是最不可预测的,除了在通信领域的巨大优势外,现在在个人市场,譬如游戏机(我们知道无论是wii,xbox360还是ps3都是使用基于powerpc的cpu)也发展的红红火火。因为这后面有ibm的巨大推动能量,ibm的强大研发实力足以和intel,amd相匹敌,另外工艺上的先进也保证了其功耗控制在一个合理的范围内。
那既然这样,回到开始的问题上,选择一个合适的芯片,当然首要是要满足功能的需求,在这个基础上价格相比较有优势,
技术上最成熟最可靠的当然是优先考虑的。未来的发展如何,厂家,商家的推动会引领市场导向,从技术的角度看,既然没有本质上不同,如果能精通了某一种结构,我想其他的体系也是手到擒来,以不变应万变!