0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于CPU芯片江湖中的门派标志指令集

中科院半导体所 来源:芯论语 作者:芯论语 2020-12-30 09:29 次阅读

摘要:以前的文章说过,芯片的分类方法很多,种类犹如夜空的繁星,多到无法枚举。本文把芯片的范围缩小,聚焦高端通用芯片CPU这一分支,我们会发现CPU芯片的种类也不少,而且“门派”林立,俨然像一个CPU芯片“江湖”,指令集和微架构就是这个江湖中的门派标志。什么是CPU指令集和微架构?为什么指令集和微架构是江湖门派标志?本文试图用通俗的语言加以说明。

CPU是中央处理器(Central Processing Unit)的英文简称,是一种高端通用芯。它在计算机(电脑)和智能设备中用来指挥各个部件协同高效地工作。它是电脑和智能设备的控制中枢,是电脑中的大脑。

电脑的部件需要CPU来指挥,而CPU内的部件也需要受到指挥协调才能工作,这个指挥官就是程序,由程序发出的指挥CPU内部电路协同工作的命令,简称为指令。例如,如果要让CPU完成一次A+B->C的计算,就要发2条存取指令,从存储器把A和B取出来送到运算器中;再发1条加法指令,让运算器执行加法运算;最后发1条存取指令,把C存入存储器。这个例子中用到了两种指令:存取指令和加法指令。

实际上,一个通用CPU要完成各类计算、推理、判断和控制工作,它的指令种类少则几十种,多则数百种,CPU的各种指令的集合称为CPU的指令集。指令集确定了CPU的工作方式和与之相适应CPU内部的硬件架构,这种硬件架构称为CPU的微架构。指令集和微架构是一个公司研发出新款CPU后形成的核心知识产权。指令集是CPU的顶层设计规范,微架构是这个顶层规范的物理实现,这种实现可以有多种,实现方法可以有变化。一般说的CPU架构就包含了CPU指令集和微架构两个东西。

图1.新的指令集和微架构可以创立一个新的CPU芯片江湖门派

图1描述了指令集、微架构、CPU芯片和芯片用户群之间的关系。可以看到,研发一款新的指令集和微架构,就相当于在CPU芯片江湖中创立了一个门派。具体地讲,A公司开发了一款新的CPU,意味着创建了新的指令集和微架构,不但A公司的CPU芯片形成了用户群A,而且A公司还可以授权其他公司开发CPU芯片,并形成相应的用户群B、C、D等。新的指令集和微架构可以开发一个CPU芯片家族,可以产生一个芯片用户集群,就好像产生了一个江湖门派。指令集和微架构设计得好,CPU的性能就好,用户就多,追捧者就多,门派就兴旺发达。

图2.指令集是连接软件和硬件的纽带

图2表明,指令集是连接软件和硬件的纽带。如论是应用程序还是操作系统中的系统代码,最终都被编译成可以在CPU芯片内部执行的符合指令集规范的机器代码程序。机器代码程序中的指令控制着CPU内部部件协调高效工作,并实现CPU的整体功能,进而由CPU控制整机系统工作。指令集是系统软件和硬件工程师共同遵从的法条,只有遵守了这个法条,软件工程师编写的软件才能在不同型号的整机系统上运行。硬件工程师开发的整机系统才能运行现有的应用软件。

讲了这么多概念,也分析了这些概念的关系,如果还不好理解的话,让我们来看看三个代表性的CPU指令集和微架构的例子吧。第一个是代表单片机微控制器(MCU)的MCS-51指令集。第二个是代表复杂指令集计算机(CISC)的x86指令集。第三个是代表精简指令集计算机(RISC)的ARM指令集。举例这些指令集和微架构的目的不是为了研究,只是为了展示,目的是使读者对CPU芯片江湖的门派标志——指令集和微架构有个宏观印象。

为什么要把MCU指令集拿来和CPU指令集一同展示?让我们先了解一下MCU、CPU和SoC三者的关系吧。MCU是微控制器(Micro ControllerUnit)的英文简称,是一种中低端的通用芯片,主要用于中小电子产品和系统的控制。SoC是系统级芯片(System on Chip)的英文简称,是一种包含低、中、高端处理功能的面向应用领域的专用芯片。MCU、CPU和SoC难以绝对划界,但是,如果研究了三者的特点后,您就可以对它们进行清晰的区分了。

三者的共同特点:它们都是智能电子产品和系统的控制中枢,都有要遵循的指令集和微架构。三者的差别:MCU一般是4位、8位和16位微架构,工作频率不会太高。控制性任务较多,计算和信息处理性工作较少。与CPU相比,单芯片上集成了一些外部接口和功能部件。CPU一般是16位、32位和62位微架构,工作频率很高,更重视处理速度和运算能力,单芯片上很少集成外部接口和功能部件。SoC更加重视单芯片的系统集成度,各种位宽微架构、工作频率、集成度的SoC都可以有,单芯片上包含多种外部接口和功能部件。

MCU与CPU的区别是处理能力小与大,偏向控制与偏向计算的区别。SoC处理能力可小可大,如果在MCU或者CPU芯片上集成更多的外部接口和功能部件,这个MCU或者CPU芯片就变成了SoC芯片。

一、指令集与微架构的三个代表

基于上述原因,以及ARM CPU通常被嵌入到SoC芯片中,本文选择了MCS-51作为MCU指令集的代表,x86既作为CISC指令集的代表也作为了CPU指令集的代表,ARM既作为RISC指令集的代表也作为了SoC指令集的代表,下文对它们做简要介绍和展示。

1.MCS-51指令集和微架构

MCS-51指令集是Intel公司1980年前后开发的单片机指令集,该指令集包含数据传送、位操作、逻辑运算及转移、算术运算、控制转移5个大类共计111条指令(图3)。该指令集对应的单片机微架构如图4所示。

通过对该微架构硬件的增、减、改变,Intel先后开发了兼容MCS-51指令集的系列单片机芯片,共计16个型号(图3)。另外Intel也向许多公司开放MCS-51指令集和微架构,允许他们生产兼容MCS-51指令集的单片机。这些公司包括ATMEL、PHILIPS、NXP、OKI等,以及日本、台湾和国内的一些公司。因此,MCS-51单片机在全球应用十分普及。MCS-51开辟了一个规模庞大、应用甚广的单片机大家族。

05f78a40-462d-11eb-8b86-12bb97331649.jpg

图3.MCS-51单片机指令集(来源:无忧文档)

066df266-462d-11eb-8b86-12bb97331649.jpg

图4. MCS-51单片机内部的微架构(来源:百度百科)

069b7d30-462d-11eb-8b86-12bb97331649.jpg

图5. MCS-51单片机家族(来源:参考资料5)

2. x86指令集和微架构

1978年,Intel公司开发出了16位的CPU,并命名为i8086,同时还开发出与之相配合的数学协处理器i8087,这两种芯片使用相互兼容的指令集,再加上i8087用于对数、指数和三角函数等数学计算的指令集,就形成了今天人们常说的x86指令集。随后的40年间,Intel陆续研制出i80286、i80386、i80486、奔腾(Pentium)系列、酷睿(Core)系列等后续CPU型号。研制这些CPU芯片时,为了保持向前软件兼容,Intel所有CPU继续使用x86指令集,并根据CPU功能提升和性能增强的需要,增加了286、386、486、Pentium、Pentium Ⅱ等扩展类指令。“新三年旧三年,修修补补又三年”,可以说x86指令集是与时俱进,不断生长和变复杂的典范,因而x86指令集成了名副其实的复杂指令集(CISC)。

x86指令集包括数据传送、逻辑运算、移位运算、程序控制、算术运算、串操作、处理器控制、286扩展、386扩展、486扩展、Pentium扩展、Pentium Ⅱ扩展12个大类共计190多条指令(图7)。图8分别是Intel Core和AMD K8的CPU微架构。

Intel和AMD是全球最大的两家x86指令集CPU芯片开发商。Intel多达上百个型号的CPU都属于x86系列。另外,加上AMD多达80多个型号的兼容x86 CPU,x86指令集CPU芯片家族的阵容可谓是十分壮观(图10)。两家公司的CPU芯片不断迭代升级,相互竞争,型号品种繁多,形成了令世人瞩目的CPU产品发展轨迹。

06d80d04-462d-11eb-8b86-12bb97331649.jpg

图7. x86 CPU指令集(来源:参考资料1)

图8. x86 CPU的两种微架构举例(来源:参考资料3)

08116ecc-462d-11eb-8b86-12bb97331649.jpg

图9. Intel和AMD开发的x86 CPU芯片型号图谱(来源:网络资料整理)

3. ARM指令集和微架构

ARM公司成立于1990年,是全球领先的CPU IP(Intellectual Property)提供商,全世界超过95%的智能手机和平板电脑都采用ARM架构处理器。ARM公司自己不设计和销售CPU芯片,只向其他公司销售和授权使用ARM架构的系列CPU IP。ARM授权从高到低大体分为三种,包括架构授权、内核授权和使用授权,本文只关心前两种。架构授权对设计团队的要求很高,许可费用也很昂贵,只适合有实力的大公司,中小企业一般选择购买内核授权。

架构授权(也称为指令集授权)是指用户购买了架构级的ARM处理器设计、制造的许可权后,可以从整个指令集和微架构入手,对ARM架构进行改造,甚至可以对ARM指令集进行裁减或扩展,实现更适合自用、更高性能、更低功耗、更低成本的目的。拥有ARM架构授权的公司包括高通、苹果、三星、微软、海思等。

内核授权(也可称为方案授权)是指用户可以将其所购买的ARM核心(IP核)应用到自己设计的芯片中,但用户不得对ARM核心进行修改。拥有内核授权的公司多如牛毛,国际上包括德州仪器博通、飞思卡尔、富士通以及Calxeda等,国内中小芯片设计公司也很多,不胜枚举。

图10展示了ARM指令集。ARM指令集包括跳转指令、数据处理、乘加指令、PSR访问、加载/存储指令、数据交换、移位指令、协处理器8个大类共计50条指令(其中,ARM指令16条,Thumb指令18条,Thumb-2 16条)。加上15条控制伪指令合计65条指令。图11展示了一款可内核授权的ARM核心微架构,它的型号命名为ARM Cortex A9。

全球1500多家企业获得了ARM公司授权,可以研发和生产ARM架构的处理器芯片和包括含ARM内核的SoC芯片。图12是全球采用ARM架构处理器技术的用户、工具商、合作伙伴的Logo图谱。ARM CPU门派在移动通信领域一家独大,并正在向其它领域渗透,包括物联网、台式电脑、服务器等,让x86 CPU门派老大Intel公司十分不安。

083315c2-462d-11eb-8b86-12bb97331649.jpg

图10. ARM CPU指令集及功能描述(来源:免费文档网)

图11. ARM Cortex A9微架构及单核接口(来源:参考资料11)

二、CPU芯片江湖的指令集门派

1. MCU类的指令集

MCU作为缩减版的CPU和SoC,它也有指令集和微架构,同样是智能电子产品和系统的控制中心。因此,它可以作为CPU芯片江湖的一员,被写入到这一部分来,让读者看看MCU指令集门派都有哪些种类。

这个门派下的指令集包括:Zilog公司的Z80指令集、Intel的MCS-51指令集、MicroChipPIC指令集、ATMEL的AVR指令集、TI的MSP430指令集、Motorola的68K、ARM公司的ARM-Thumb等等。

2.CISC类的指令集

CISC类指令集也可称为复杂指令集。CISC是复杂指令集计算机(Complex Instruction SetComputer)的英文缩写。在CISC指令处理器中,程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。顺序执行的优点是控制简单,但计算机各部分的利用率不高,执行速度较慢。

这个门派下的指令集包括:Intel的x86指令集(x86、x86-64、IA-32、IA-64等)、AMD的兼容x86指令集(x86、AMD64等)、威盛VIA的兼容x86指令集(x86、AIS等)。

3.RISC类的指令集

RISC类指令集也可称为精简指令集。RISC是精简指令集计算机(Reduced Instruction SetComputing)的英文缩写。它是在CISC指令系统基础上发展起来的,CISC各种指令的使用频度相当悬殊,最常使用的是一些比较简单的指令,它们仅占指令总数的20%,但在程序中出现的频度却占80%。复杂指令系统必然增加微处理器的复杂性,并且指令解码执行过程复杂并且费时,必然会降低计算机的速度。20世纪80年代诞生了RISC型CPU。相对于CISC型CPU,RISC型CPU不仅精简了指令集,还采用了超标量和超流水线结构,大大增加了并行处理能力。RISC指令集是高性能CPU的发展方向。RISC的指令格式统一,种类比较少,寻址方式也比复杂指令集少。当然处理速度就提高了很多。

这个门派下的指令集包括:DEC公司的Alpha指令集、MIPS公司的MIPS指令集、Sun公司的SPARC指令集、IBM联合Apple与Motorola开发的PowerPC指令集、IBM的POWER服务器CPU 指令集、ARM公司的ARM32和ARM64指令集、开源RISC-V指令集等。

4.EPIC类的指令集

EPIC类指令集也称为精确并行指令集。EPIC是精确并行指令计算机(Explicitly ParallelInstruction Computers)的英文缩写。EPIC是否是RISC和CISC体系的继承者的争论不少,单以EPIC体系来说,它更像Intel的处理器迈向RISC体系的重要步骤。EPIC体系设计的CPU,在相同的主机配置下,处理Windows的应用软件比基于Unix下的应用软件要好很多。

Intel采用EPIC技术的服务器CPU是安腾Itanium(开发代号Merced)。它是64位处理器,也是IA-64系列中的第一款。

图13. 全球流行的CPU指令集的分类

三、实现CPU自主可控的梦想

发展自主可控的国产CPU,首先要解决指令集和微架构的自主可控问题,其次是软件生态和生产的问题。图14列出了目前主要的国产CPU指令集及技术来源,这是我们发展自主可控国产CPU的基础,这些资源已得到业界的高度重视。希望政府能顶层规划和统一协调,加大资金支持力度,在业界共同努力下实现国产CPU自主可控的梦想。

09049aa2-462d-11eb-8b86-12bb97331649.jpg

图14.主要的国产CPU指令集及技术来源(来源:由参考资料9整理)

如何实现我国CPU芯片自主可控,公认途径归纳起来有以下几个方面,一是购买流行CPU架构授权,开发国产CPU产品;二是用好开源CPU指令集RISC-V,走国产CPU自强之路。三是用好已有可控CPU架构,加大投入和研发力度,补齐国产CPU短板。四是创立新的CPU架构,走自力更生的国产CPU发展之路。发展国产CPU,实现安全、自主和可控是最终目的,方法可以多样化,不一定什么都要靠自己从零做起,即未必一定要创立新CPU门派。

1.购买流行CPU架构授权,开发国产CPU产品。

目前,国内大部分国产MCU、CPU和SoC芯片研发都是走这个途径。之前这条路子走的很顺利,国内芯片设计销售额多年实现两位数增长,2020年有望超过3800亿元。大部分公司都以购买授权方式,在自研CPU芯片中采用国外流行的CPU架构,包括华为海思自研的多款SoC芯片,都是基于ARM架构的CPU。中美科技战以来,大家发现这是一种自主但不可控的CPU发展之路。

2.用好开源CPU指令集RISC-V,走国产CPU自强之路。

美国对我国芯片产业的打压和围堵,让业界把发展自主可控国产CPU的希望寄托在了开源指令集RISC-V上来,这可能是目前希望最大的一条途径。原因是RISC-V架构已比较成熟,性能也比较优异,已经过许多商业化应用验证。并且国内已具有一定的人才和技术积累。人们认为RISC-V最有希望改变当前由ARM和x86主导CPU芯片江湖的局面,它将对ARM在消费类、IoT嵌入式CPU市场的优势地位造成巨大冲击。RISC-V是国产自主可控CPU的曙光。RISC-V目前的唯一短板还是软件生态不够完善,需要业界同仁奋发努力。

3.用好已有可控CPU架构,加大投入和研发力度,补齐国产CPU短板。

国内有些公司多年前陆续继承了一些国外老旧CPU架构的产权,有些公司也获得了国外较成熟CPU架构永久授权,也有些公司自创了CPU和GPU架构。例如阿里平头哥(收购中天微)、苏州国芯、中晟宏芯、深圳中微电等。华为海思也获得了ARM v8架构的永久授权,这些都是开发自主可控国产CPU的良好基础。建议政府和企业加大投入和研发力度,在这些CPU架构基础上创新发展,不断完善软件生态,抓住补短板和国产替代的良机,实现国产CPU产品的迭代升级和技术进步。

4.创立新的CPU架构,走自力更生的国产CPU发展之路。

这就相当于要设计一款新的CPU,建立新的CPU指令集和微架构。这是一条最困难的途径。最困难体现两方面,一是设计的新款CPU能否具备性能和功能的先进性、高效性和经济性;二是如何能快速搭建好新款CPU的软件生态,包括汇编和高级语言编程工具、系统开发验证工具等。软件生态建设需要时间,需要市场,也需要研发团队和用户的通力协作。而且,创立一个CPU行业门派后,要让这个门派发扬光大并不是一件容易的事情。因此,许多人对这条途径不太看好。

结语:1.指令集是软件和硬件的纽带,电子产品中的软件不论是高级语言还是汇编,最后都是转换为一条条的指令,指挥硬件各部件协调工作,硬件是为完成指令的任务而生的。2.指令集是软件和硬件工程师共同遵从的法条,只有遵守了这个法条,开发的软件才能在不同型号的硬件上兼容运行。3.指令集是CPU芯片江湖门派的标志,公司名和产品名不过是它的代名词罢了。只有指令集相同,产品才能兼容互换。只有大家都认可这个指令集,都愿意投入到这个门派之下,不断完善软件生态,才能使用户越来越多,门派越来越兴旺。4.发展自主可控的国产CPU,最困难的是搭建CPU的软件生态。如果把CPU指令集看作门派标志的话,搭建软件生态就是营造门派氛围,扩大门派影响力。

原文标题:指令集——CPU芯片江湖中的门派标志

文章出处:【微信公众号:中科院半导体所】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19281

    浏览量

    229789
  • 芯片
    +关注

    关注

    455

    文章

    50791

    浏览量

    423491
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10860

    浏览量

    211725

原文标题:指令集——CPU芯片江湖中的门派标志

文章出处:【微信号:bdtdsj,微信公众号:中科院半导体所】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    TMS320C62x DSP CPU指令集参考指南

    电子发烧友网站提供《TMS320C62x DSP CPU指令集参考指南.pdf》资料免费下载
    发表于 12-17 16:24 0次下载
    TMS320C62x DSP <b class='flag-5'>CPU</b>和<b class='flag-5'>指令集</b>参考指南

    《RISC-V 体系结构编程与实践(第2版)》指令集

    本书的指令集基于rv64i mafdcsiu 属于精简指令集。 阅读本章可以指令集不多,都是最基础的功能点。 分为6个部分 加载保存指令 跳转指令
    发表于 12-07 18:36

    RISC-V指令集概述

    基础指令集,加上若干个扩展指令集进行搭配使用,就可以得到我们想要的指令集架构,进而根据这样的指令架构,设计出贴合我们需求的CPU。其中最核心
    发表于 11-30 23:30

    RISC-V的指令集位宽的几点学习心得

    在学习RISC-V指令集过程指令位宽大多是32位和64的,它并不像其它指令集,还有8位的古老指令集。这估计也是RISC-V能轻装前行的原
    发表于 10-31 22:05

    简述微处理器的指令集架构

    微处理器的指令集架构(Instruction Set Architecture,ISA)是计算机体系结构的核心组成部分,它定义了计算机能够执行的指令集合、数据类型、寄存器、内存访问方式等,是连接
    的头像 发表于 10-05 14:59 459次阅读

    RISC-V和arm指令集的对比分析

    、开放性 RISC-V :RISC-V指令集架构规范公开,可以免费使用。任何人都可以基于RISC-V架构设计、制造和销售处理器,这种开放性使得RISC-V架构在学术界和开源社区得到广泛关注
    发表于 09-28 11:05

    RISC-V指令集的特点总结

    :RISC-V 保持了 RISC(Reduced Instruction Set Computer)架构的核心原则,即提供一个简洁的指令集,使得芯片设计更为简单、高效。 优势:简洁的设计有助于降低硬件
    发表于 08-30 22:05

    RISCV的主流指令集有哪些?

    如题,就像X86中指令集有MMX,SSE,SSE2等,就像ARM指令集有ARM和Thumb等,但是总是感觉RISCV特别乱,可能是厂商比较多的缘故吧,我知道的有WCH的青稞RISC-V,玄铁
    发表于 08-29 13:49

    复杂指令集和精简指令集有什么区别

    复杂指令集(CISC,Complex Instruction Set Computer)和精简指令集(RISC,Reduced Instruction Set Computer)是微处理器设计
    的头像 发表于 08-22 11:00 3283次阅读

    微处理器的指令集架构介绍

    微处理器的指令集架构(Instruction Set Architecture,ISA)是计算机体系结构至关重要的部分,它定义了微处理器能够执行的操作和指令的集合,以及这些指令如何被
    的头像 发表于 08-22 10:53 1168次阅读

    CISC(复杂指令集)与RISC(精简指令集)的区别  

    调用四条单CPU周期指令完成两数相乘:内存 a加载到寄存器,内存b加载到寄存器,两个寄存器数相乘,寄存器结果存入内存a。按照此思路,早期的设计出的RISC 指令集
    发表于 07-30 17:21

    AT指令集下怎么实现域名访问呢?

    AT指令集下,怎么实现域名访问呢?我在指令集中没有看到相关指令
    发表于 07-17 07:10

    微软推进CPU指令集更新,旧版CPU或无法运行Edge浏览器

    按照微软的计划,Microsoft Edge 126.0正式版将于2024年6月13日发布。届时,未支持SSE3指令集的旧CPU用户可能需继续使用现有的版本。
    的头像 发表于 05-18 10:33 961次阅读

    RISC-V开源指令集全面指南与解析

    它应该是稳定的,基础的指令集架构不应该改变。更重要的是,它不能像以前的专有指令集架构一样被弃用,例如AMD Am29000、Digital Alpha、Digital VAX、Hewlett
    的头像 发表于 03-13 09:41 742次阅读
    RISC-V开源<b class='flag-5'>指令集</b>全面指南与解析

    什么是RISC-V?RISC-V指令集的优势

    CPU 支持的所有指令指令的字节级编码就是这个 CPU指令集架构(Instruction Set Architecture,ISA),
    发表于 03-05 10:31 866次阅读
    什么是RISC-V?RISC-V<b class='flag-5'>指令集</b>的优势