西西河

主题:【原创】乱侃RISC与x86之争 -- 四月一日

共:💬4 🌺12 新:
分页树展主题 · 全看首页 上页
/ 1
下页 末页
  • 家园 【原创】乱侃RISC与x86之争

    上个世纪, Intel以x86架构的CPU搭配M$ OS席卷全世界, 发展出占有庞大商业利益的PC王国. 曾几何时, 被x86踢在一旁的RISC, 趁着PC-like的需求愈来愈大, 正悄悄的回到市场.

    相对于x86-based, RISC确实有其根本性的问题, 比如说开发过程必须是System-based, 起码主板H/W和S/W (BIOS, OS and Driver) 要一起做, 不像x86 PC是由不同的厂家各自开发设计, 彼此间利用共通的设计规范达到兼容 (Compatibility). 对RISC-based系统来说, 一个项目少说也要用上一年, 搭配的软件也会是专用的而不是兼容的, 这和x86 PC相差颇大. 以System-based为主的模式限制了新加入竞争者的基本规模, 这不是小厂玩得起的东西, 也是x86称霸全球多年的原因.

    循着PC产业趋势的变化, 愈来愈多的PC-like或Appliance PC成为新的开发重点, 使用RISC的PC-like产品在市场上已经占有重要的地位, 如曾经宣腾一时的IA, 或是已经相当普及的PDA, 不论是用Motorola Dragonball, ARM, MIPS或是Intel Xscale做为核心, 都是RISC-based的产品. RISC的主要用途在于专用机. 相对于x86架构, RISC-based的东西没有太多的Expansibility或Compatibility, 也就是规画到的功能有, 没想到的就没有, 不像x86 PC可以另外买卡来插, 或是买软件来增加功能. 但若是针对不需要太多用户自行扩充的成熟运用, 如PDA, STB, WebPAD, PacketPC等等的东西, RISC所拥有的竞争力便如Linux相对于Windows, 没有那幺多的 "预留资源" 也使RISC能做到x86办不到的事, 其中最重要的便是Power Consumption. 低功耗对于Mobile类的应用是至关重要的条件, 但是x86怎幺也办不到. 因使, 在特殊应用领域上, 即使RISC成本高过x86, 厂商也必须使用RISC, 因为x86办不到, 只有RISC才有机会Make it possible.

    在开发成本上, 缺乏兼容性的软件成本自然相对高昂, 不过对于有经验的厂家还是有些module可以通用, 不过要是相同系列的RISC. 硬件成本上RISC和x86不易对比, 以gatecom来算自然是RISC较有优势, 但x86拥有RISC比不上的量产优势. 但对于量大的应用来说, RISC还是有明显的优识的. 由于RISC的结构单纯, 只要是用在单一应用的东西, 如网络设备的Router, Switch, Hub等等的, 基本上还是RISC或RISC-based ASIC.

    x86-complaint RISC直接挑战x86的例子, 如曾经轰动一时的Transmetta Crusoe以及NS Geode (已卖给AMD), 都以RISC特有的Low Power Consumption的切点进入市场, 并能兼容x86 PC的OS与其它软件. 在非x86领域的MAC所使用的PowerPC或是服务器用的Alpha或Sparc更是应用已久.

    除了功耗之外, RISC还有个优势就是SoC结构, 不像x86是CPU配上南北桥chipset, 在板材使用上比较少, 适合做高密度小型化的嵌入式系统. 对于具有高需求量的消费性市场, RISC架构系统的硬件成本是x86架构所比不上的. x86架构主导厂商Intel也注意了这块市场很久, 以摆了一段时间的StrongARM为基础推出的Xscale在PDA (PXA) 与网通设备(IXP) 市场的采用状况还算不错. 在这些应用领域内, x86架构根本就插不上手. 不仅仅是功耗无法达到要求, 成本也无法竞争. 能和RISC竞价的对手也只有RISC或是RISC-based ASIC.

    当然开发RISC系统并不容易, 大约只比DSP容易一些, 比x86可难多了, 原因在于开发RISC需要一起开发从Boot-load一直到UI, 相当于BIOS, OS及AP. 不过这个 "难" 主要是针对习惯于x86纯硬件发的台湾厂家 (台湾的x86硬件技术称得上全球第一) 以及取得技术的大陆厂. 说穿了是因为不熟悉, 无法拥有像x86一样强的竞争力, 但也不见得就是做不到, 只是与美欧日韩印程度相当经验稍差罢了. (日韩的RISC可比x86强多了, 从芯片技术到软件系统都强.)

    RISC是一个泛称, 各家的RISC都不相同. RISC并不存在像Intel这种超级大厂, 从制定标准到设计制造样样世界第一, 所以还是多厂林立的战国时代, IBM, Motorola, ARM, MIPS, Intel Xscale, Hitachi SH, 以及最近针对IA市场加入竞争的日系韩系RISC, 各有特色各有擅场, 各有适合的应用, 也都有吃不到的市场. 比如说MIPS适合用在网通设备, 但需要显示效果好些的应用如PDA就根本不用考虑它. 由于不像Wintel有个业界标准, 所以竞争时小厂多半插不上手, 光一个系统开发费用就是个不小的开销, 更何况RISC的开发时程长, 对于变幻莫测的消费性IT产业来说实在是个不小的挑战. 这需要强大的企画能力, 能预测到一年后 (约相当于一个完整RISC的开发时程) 的市场需求, 以及能铺得出货的销售体系 (消费性产品的产业特性.)

    x86仍有其不易被取代的绝对优势, 只不过愈来愈多的应用不是它所能染指的. 诚然x86有强大的运算能力, 但随之而来的却是愈来愈高的功耗. 对于PC-like的应用, 不论它的名称是XPC, XC, IA或是其它, RISC这个偏门的小玩意儿在偏门的应用特别能发挥. 话说回来, 当年PC也只是个IBM看不上眼的 "玩具" 罢了.

    元宝推荐:蜜饯,
    • 家园 十年前,这个题目叫RISC与CISC之争.

      RISC主导力量是摩托罗拉,IBM,Apple。(Digital, Sun的芯片也是RISC)。而CISC则主要是Intel (以及AMD, Cyrix)。而微软呢,则支持双方。那时候,NT可以运行的平台包括PowerPC, Alpha,MIPS,X86等等。

      其实从Intel Pentium Pro起,X86的内核已经越来越像RISC了。复杂指令CI(Complex Instruction)是先被转化为简单指令RI(Reduced Instruction),然后才执行的。所以严格的说,X86也是RISC。指令简单了,才可以飞快的完成,CPU的频率才可以大幅度的提高,CPU的流水线也才会越来越长。

      • 家园 x86之于CISC, 便如PC之于Computer一样, 搞大后独立一门了.

        说难听些, 就是Wintel与当年被他们甩在背后的那群曾经的手下败将之争. 当然, 针对某些普遍性的应用, RI还是必要的.

        Intel Pentium Pro, 老轧一个例子就踩了Intel的痛脚. 一个出来时轰动江湖, 不多时及忙下?n的玩意儿.

      • 家园 【文摘】CPU术语详解: 多媒体指令集

          CPU依靠指令来计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一。从现阶段的主流体系结构讲,指令集可分为复杂指令集和精简指令集两部分,而从具体运用看,如Intel的MMX(Multi Media Extended)、SSE、 SSE2(Streaming-Single instruction multiple data-Extensions 2)和AMD的3DNow!等都是CPU的扩展指令集,分别增强了CPU的多媒体、图形图象和Internet等的处理能力。我们通常会把CPU的扩展指令集称为"CPU的指令集"。

        1、精简指令集的运用

          在最初发明计算机的数十年里,随着计算机功能日趋增大,性能日趋变强,内部元器件也越来越多,指令集日趋复杂,过于冗杂的指令严重的影响了计算机的工作效率。后来经过研究发现,在计算机中,80%程序只用到了20%的指令集,基于这一发现,RISC精简指令集被提了出来,这是计算机系统架构的一次深刻革命。RISC体系结构的基本思路是:抓住CISC指令系统指令种类太多、指令格式不规范、寻址方式太多的缺点,通过减少指令种类、规范指令格式和简化寻址方式,方便处理器内部的并行处理,提高VLSI器件的使用效率,从而大幅度地提高处理器的性能。

          RISC指令集有许多特征,其中最重要的有:

        指令种类少,指令格式规范:RISC指令集通常只使用一种或少数几种格式。指令长度单一(一般4个字节),并且在字边界上对齐。字段位置、特别是操作码的位置是固定的。

        寻址方式简化:几乎所有指令都使用寄存器寻址方式,寻址方式总数一般不超过5个。其他更为复杂的寻址方式,如间接寻址等则由软件利用简单的寻址方式来合成。

        大量利用寄存器间操作:RISC指令集中大多数操作都是寄存器到寄存器操作,只以简单的Load和Store操作访问内存。因此,每条指令中访问的内存地址不会超过1个,访问内存的操作不会与算术操作混在一起。

        简化处理器结构:使用RISC指令集,可以大大简化处理器的控制器和其他功能单元的设计,不必使用大量专用寄存器,特别是允许以硬件线路来实现指令操作,而不必像CISC处理器那样使用微程序来实现指令操作。因此RISC处理器不必像CISC处理器那样设置微程序控制存储器,就能够快速地直接执行指令。

        便于使用VLSI技术:随着LSI和VLSI技术的发展,整个处理器(甚至多个处理器)都可以放在一个芯片上。RISC体系结构可以给设计单芯片处理器带来很多好处,有利于提高性能,简化VLSI芯片的设计和实现。基于VLSI技术,制造RISC处理器要比CISC处理器工作量小得多,成本也低得多。

        加强了处理器并行能力:RISC指令集能够非常有效地适合于采用流水线、超流水线和超标量技术,从而实现指令级并行操作,提高处理器的性能。目前常用的处理器内部并行操作技术基本上是基于RISC体系结构发展和走向成熟的。

          正由于RISC体系所具有的优势,它在高端系统得到了广泛的应用,而CISC体系则在桌面系统中占据统治地位。而在如今,在桌面领域,RISC也不断渗透,预计未来,RISC将要一统江湖。

        2、CPU的扩展指令集

          对于CPU来说,在基本功能方面,它们的差别并不太大,基本的指令集也都差不多,但是许多厂家为了提升某一方面性能,又开发了扩展指令集,扩展指令集定义了新的数据和指令,能够大大提高某方面数据处理能力,但必需要有软件支持。

        MMX 指令集

          MMX(Multi Media eXtension,多媒体扩展指令集)指令集是Intel公司于1996年推出的一项多媒体指令增强技术。MMX指令集中包括有57条多媒体指令,通过这些指令可以一次处理多个数据,在处理结果超过实际处理能力的时候也能进行正常处理,这样在软件的配合下,就可以得到更高的性能。MMX的益处在于,当时存在的操作系统不必为此而做出任何修改便可以轻松地执行MMX程序。但是,问题也比较明显,那就是MMX指令集与x87浮点运算指令不能够同时执行,必须做密集式的交错切换才可以正常执行,这种情况就势必造成整个系统运行质量的下降。

        SSE指令集

          SSE(Streaming SIMD Extensions,单指令多数据流扩展)指令集是Intel在Pentium III处理器中率先推出的。其实,早在PIII正式推出之前,Intel公司就曾经通过各种渠道公布过所谓的KNI(Katmai New Instruction)指令集,这个指令集也就是SSE指令集的前身,并一度被很多传媒称之为MMX指令集的下一个版本,即MMX2指令集。究其背景,原来"KNI"指令集是Intel公司最早为其下一代芯片命名的指令集名称,而所谓的"MMX2"则完全是硬件评论家们和媒体凭感觉和印象对"KNI"的 评价,Intel公司从未正式发布过关于MMX2的消息。

          而最终推出的SSE指令集也就是所谓胜出的"互联网SSE"指令集。SSE指令集包括了70条指令,其中包含提高3D图形运算效率的50条SIMD(单指令多数据技术)浮点运算指令、12条MMX 整数运算增强指令、8条优化内存中连续数据块传输指令。理论上这些指令对目前流行的图像处理、浮点运算、3D运算、视频处理、音频处理等诸多多媒体应用起到全面强化的作用。S SE指令与3DNow!指令彼此互不兼容,但SSE包含了3DNow!技术的绝大部分功能,只是实现的方法不同。SSE兼容MMX指令,它可以通过SIMD和单时钟周期并行处理多个浮点数据来有效地提高浮点运算速度。

          在后来Intel为了应对AMD的3Dnow!+指令集,又在SSE的基础上开发了SSE2,增加了一些指令,使得其P4处理器性能有大幅度提高。到P4设计结束为止,Intel增加了一套包括144条新建指令的SSE2指令集。像最早的SIMD扩展指令集,SSE2涉及了多重的数据目标上立刻执行一单个的指令(即SIMD,一个计算低工控最好的方法是让每指令执行更多的工作)。最重要的是SSE2能处理128位和两倍精密浮点数学运算。处理更精确浮点数的能力使SSE2成为加速多媒体程序、3D处理工程以及工作站类型任务的基础配置。但重要的是软件是否能适当的优化利用它。

        3D Now !指令集

          由AMD公司提出的3DNow!指令集应该说出现在SSE指令集之前,并被AMD广泛应用于其K6-2 、K6-3以及Athlon(K7)处理器上。3DNow!指令集技术其实就是21条机器码的扩展指令集。

          与Intel公司的MMX技术侧重于整数运算有所不同,3DNow!指令集主要针对三维建模、坐标变换 和效果渲染等三维应用场合,在软件的配合下,可以大幅度提高3D处理性能。后来在Athlon上开发了Enhanced 3DNow!。这些AMD标准的SIMD指令和Intel的SSE具有相同效能。因为受到Intel在商业上以及Pentium III成功的影响,软件在支持SSE上比起3DNow!更为普遍。Enhanced 3DNow!AMD公司继续增加至52个指令,包含了一些SSE码,因而在针对SSE做最佳化的软件中能获得更好的效能。

分页树展主题 · 全看首页 上页
/ 1
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河