ISC(Complex Instruction Set Computers,复杂指令集计算集)和RISC(Reduced Instruction Set Computers)是两大类主流的CPU指令集类型,其中CISC以Intel,AMD的X86 CPU为代表,而RISC以ARM,IBM Power、PowerPC、MIPS、RISC-V为代表。RISC的设计初衷针对CISC CPU复杂的弊端,选择一些可以在单个CPU周期完成的指令,以降低CPU的复杂度,将复杂性交给编译器。举一个例子,CISC提供的乘法指令,调用时可完成内存a和内存b中的两个数相乘,结果存入内存a,需要多个CPU周期才可以完成;而RISC不提供“一站式”的乘法指令,需调用四条单CPU周期指令完成两数相乘:内存a加载到寄存器,内存b加载到寄存器,两个寄存器中数相乘,寄存器结果存入内存a。按照此思路,早期的设计出的RISC指令集,指令数是比CISC少些,后来,很多RISC的指令集中指令数反超了CISC,因此,引用指令的复杂度而非数量来区分两种指令集。
当然,CISC也是要通过操作内存、寄存器、运算器来完成复杂指令的。它在实现时,是将复杂指令转换成了一个微程序,微程序在制造CPU时就已存储于微服务存储器。一个微程序包含若干条微指令(也称微码),执行复杂指令时,实际上是在执行一个微程序。这也带来两种指令集的一个差别,微程序的执行是不可被打断的,而RISC指令之间可以被打断,所以理论上RISC可更快响应中断。
目前常见使用RISC的处理器包括DEC Alpha、ARC、ARM、MIPS、PowerPC、SPARC和SuperH等。
常见使用CISC的处理器主要有X86.
RISC和CISC的区别:
(1) 指令系统:RISC 设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,常通过组合指令来完成。因此,在RISC 机器上实现特殊功能时,效率可能较低。但可以利用流水技术和超标量技术加以改进和弥补。而CISC 计算机的指令系统比较丰富,有专用指令来完成特定的功能。因此,处理特殊任务效率较高。
(2) 存储器操作:RISC 对存储器操作有限制,使控制简单化;而CISC 机器的存储器操作指令多,操作直接。
(3) 程序:RISC 汇编语言程序一般需要较大的内存空间,实现特殊功能时程序复杂,不易设计;而CISC 汇编语言程序编程相对简单,科学计算及复杂操作的程序设计相对容易,效率较高。 (4) 中断:RISC 机器在一条指令执行的适当地方可以响应中断;而CISC 机器是在一条指令执行结束后响应中断。
(5) CPU芯片电路:RISC CPU 包含有较少的单元电路,因而面积小、功耗低;而CISC CPU 包含有丰富的电路单元,因而功能强、面积大、功耗大。
(6) 设计周期:RISC 微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术;CISC 微处理器结构复杂,设计周期长。
(7) 用户使用:RISC 微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,实现特殊功能容易。
(8) 应用范围:由于RISC 指令系统的确定与特定的应用领域有关,故RISC 机器更适合于专用机;而CISC 机器则更适合于通用机。
商业壁垒
在电脑市场基本都是选择CISC的X86处理器。而X86处理主要是Intel和AMD两家。
在完全自由竞争条件下,电脑芯片市场最终只能有极个别厂商称霸。
芯片市场与互联网产品类似,都属于极端的垄断性行业。一旦巨头占领市场,其它厂商基本没有插入的空间。芯片的垄断性,其原因是芯片产业的启动成本高到无法想象,后续制造的边际成本无限低。
启动成本极高无比,包括以下这些:
- 难以估量的研发费用。
- 难以估计的研发周期。
- 要实际生产需要大型芯片制造厂参与,而芯片制造比芯片设计恐怕还要更难。目前Intel有自家的芯片制造厂,而AMD更多借助其它公司的生产力比如台积电。
- 即便熬过了以上设计和生产问题,也依然会在“软件生态”这块翻车。“软件生态”是另一个难以逾越的鸿沟。
软件生态,简单来说就是能够在你设计的CPU上面跑的软件,所有不兼容的软件都需要重新编写。
知识产权壁垒
有的同学可能会问:那把新CPU设计成与Intel兼容的不就可以了吗?问题就出在这里,X86系列指令集是Intel和AMD的知识产权,任何人未经允许不可设计制造能运行X86指令集的芯片。(有一个特例:VIA威盛电子有X86芯片授权)
在80386之前,有十几家厂商生产x86 CPU。绝大多数是得到了英特尔授权的,因为当时半导体行业有“第二供应商”的行规。其实没授权也能做,NEC就做了两款,NEC V20是翻版的8088,V30是翻版的8086。八十年代初,英特尔在其主营业务DRAM内存上,遭受日货冲击,几乎面临破产,最终不得不放弃内存业务。为了让当时还很弱小的CPU业务顶上,英特尔决定打破“第二供应商”的行规,终止向其他半导体公司提供80386的技术资料。386是承前启后继往开来的一款产品,带领PC走进32位新时代,对英特尔、对整个行业,都有极其重要的意义。凭着80386,英特尔从第二梯队一跃成为世界第一的半导体公司。英特尔成功自然引起他人眼红,也想从x86市场分一杯羹。比如台湾的联华电子UMC就在1993年推出了一款486芯片。
UMC's 486
结果被英特尔在多个国家和地区告了,起诉它侵犯了英特尔的4972338号专利。4972338号专利涉及内存管理,又称Crawford Patent,是一个绕不过去的专利。结果自然是联华电子输了官司,退出x86市场。AMD也因侵犯Crawford专利,赔了英特尔五千八百万美元。但是八十年代初英特尔找AMD做8088的第二供应商时签过一份长期协议。到386,英特尔反悔了,双方就此打起了官司。最后调解协议里,AMD最终获得了英特尔一系列授权,由此得以在x86市场分一杯羹。凭着Crawford专利,英特尔起诉过几乎所有意图染指x86市场的半导体公司,而且成功地把绝大部分挡在市场外面,只剩下两家AMD和Cyrix。
Cyrix是如何逃脱英特尔淫威呢?说出来你可能不会相信。Cyrix是一家fabless半导体公司,它只做设计,CPU则委托SGS-Thomson、德州仪器、IBM等公司生产。Cyrix本身没有Crawford专利授权,但是三家晶圆代工厂都有。法官判定,因为代工厂有授权,所以Cyrix的x86 CPU不算侵权。在与Cyrix打官司的同时,英特尔正面临司法部反垄断起诉,迫于压力也就没把官司继续打下去。后没过多久,Cyrix反诉英特尔侵犯自家两条专利,一条关于功耗调节,一条关于寄存器。官司最后和解了,Cyrix由此获得了一系列的英特尔授权。随着x86 CPU里的知识产权壁垒越来越高,这块肥肉就Intel、AMD、Cyrix三家分割了。
Wintel联盟
自上个世纪80年代起,微软和英特尔为推动PC产业的发展,而组成了所谓的Wintel联盟,即两家公司在PC产业内密切合作,以推动Windows操作系统在基于英特尔CPU的PC机上运行。
早在IBM在1981年推出业界第一台个人电脑前,微软和英特尔就开始合作了,当时那台电脑使用微软的DOS操作系统和英特尔X86芯片。
自此以后,这一组合就成为了个人电脑市场的主要驱动力量,2010年全球大约销售了3.75亿台的个人电脑,而几乎所有的电脑都采用了英特尔(或者AMD)的X86处理器,而Windows则是主流的操作系统。Wintel联盟制定的一些技术规范,已成为PC产业事实上的标准,该联盟也因此在全球PC产业形成了所谓的“双寡头垄断”格局。
正是由于X86占领了PC、服务器绝大多数市场,而X86的处理器被牢牢的把控在美国公司Intel和AMD手上。当前美国切断X86的供货,对于华为相关的业务(PC、服务器),形成毁灭性的打击。
本文部分内容参考整理自:《为什么电脑芯片只有intel与amd?》作者:马遥 知乎
https://www.zhihu.com/question/330735504/answer/1274523923
《CISC和RISC的区别》CSDN 作者:gongxsh00
https://blog.csdn.net/gongxsh00/article/details/81048671
《为什么x86 CPU只有Intel和AMD两家呢?》作者:王知 知乎
链接:https://www.zhihu.com/question/66330012/answer/633805670
,