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

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

3天内不再提示

计算机两种花指令集CISC和RISC的区别

strongerHuang 来源:strongerHuang 作者:strongerHuang 2022-03-30 13:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

首先给大家描述一下计算机的两种花指令集:

CISC:Complex Instruction Set Computer,复杂指令集计算机;RISC:Reduced Instruction Set Computer,精简指令集计算机;

背景

指令的强弱是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一。从现阶段的主流体系结构讲,指令集可分为复杂指令集(CISC)和精简指令集(RISC)两部分。相应的,微处理随着微指令的复杂度也可分为 CISC 及 RISC 这两类。

CISC是一种为了便于编程和提高存储器访问效率的芯片设计体系。在20世纪90年代中期之前,大多数的微处理器都采用CISC体系,包括Intel 的 80x86 和 Motorola 的 68K 系列等。即通常所说的 X86 架构就是属于 CISC 体系的。

RISC是为了提高处理器运行速度而设计的芯片设计体系。它的关键技术在于流水线操作(Pipelining):在一个时钟周期里完成多条指令。而超流水线以及超标量技术已普遍在芯片设计中使用。RISC体系多用于非 x86 阵营高性能微处理器CPU,像HOLTEK MCU系列等。

ARMAdvanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。而ARM体系结构目前被公认为是业界领先的32位嵌入式 RISC 微处理器结构,所有 ARM 处理器共享这一体系结构。

因此我们可以从其所属体系比较入手,来进行X86指令集与ARM指令集的比较。

CISC复杂指令集

1.CISC体系的指令特征

1) 使用微代码。指令集可以直接在微代码存储器(比主存储器的速度快很多)里执行,新设计的处理器,只需增加较少的电晶体就可以执行同样的指令集,也可以很快地编写新的指令集程序。 2) 庞大的指令集。可以减少编程所需要的代码行数,减轻程序员的负担。高级语言对应的指令集:包括双运算元格式、寄存器到寄存器、寄存器到存储器以及存储器到寄存器的指令。

2. CISC体系的优缺点

1) 优点:能够有效缩短新指令的微代码设计时间,允许设计师实现 CISC 体系机器的向上兼容。新的系统可以使用一个包含早期系统的指令超集合,也就可以使用较早电脑上使用的相同软件。另外微程序指令的格式与高级语言相匹配,因而编译器并不一定要重新编写。

2) 缺点:指令集以及芯片的设计比上一代产品更复杂,不同的指令,需要不同的时钟周期来完成,执行较慢的指令,将影响整台机器的执行效率。

RISC精简指令集

1. RISC体系的指令特征

1) 精简指令集:包含了简单、基本的指令,通过这些简单、基本的指令,就可以组合成复杂指令。

2) 同样长度的指令:每条指令的长度都是相同的,可以在一个单独操作里完成。

3) 单机器周期指令:大多数的指令都可以在一个机器周期里完成,并且允许处理器在同一时间内执行一系列的指令。

2. RISC体系的优缺点

1) 优点:在使用相同的芯片技术和相同运行时钟下,RISC 系统的运行速度将是 CISC 的2~4倍。由于RISC处理器的指令集是精简的,它的内存管理单元、浮点单元等都能设计在同一块芯片上。RISC 处理器比相对应的 CISC 处理器设计更简单,所需要的时间将变得更短,并可以比CISC处理器应用更多先进的技术,开发更快的下一代处理器。

2) 缺点:多指令的操作使得程序开发者必须小心地选用合适的编译器,而且编写的代码量会变得非常大。另外就是RISC体系的处理器需要更快的存储器,这通常都集成于处理器内部,就是L1 Cache(一级缓存)。

CISC和RISC区别

1. 指令的形成:CISC 因指令复杂,故采用微指令码控制单元的设计,而RISC的指令90%是由硬件直接完成,只有10%的指令是由软件以组合的方式完成,因此指令执行时间上RISC较短,但RISC所须ROM空间相对的比较大,至于RAM使用大小应该与程序的应用比较有关系。

2. 寻址模式:CISC的需要较多的寻址模式,而RISC只有少数的寻址模式,因此CPU在计算存储器有效位址时,CISC占用的汇流排周期较多。

3. 指令的执行:CISC指令的格式长短不一,执行时的周期次数也不统一,而RISC结构刚好相反,故适合采用流水线处理架构的设计,进而可以达到平均一周期完成一指令的方向努力。显然的,在设计上RISC较CISC简单,同时因为CISC的执行步骤过多,闲置的单元电路等待时间增长,不利于平行处理的设计,所以就效能而言RISC较CISC还是占了上风,但RISC因指令精简化后造成应用程式码变大,需要较大的存储器空间,且存在指令种类较多等等的缺点。

x86指令集和ARM指令集

1. X86指令集

X86指令集是Intel为其第一块16位CPU(i8086)专门开发的,后来的电脑中为提高浮点数据处理能力而增加的X87芯片系列数学协处理器以及使用X87指令,以后就将X86指令集和X87指令集统称为X86指令集。虽然随着CPU技术的不断发展,Intel陆续研制出更新型的i80386、i80486,但为了保证电脑能继续运行以往开发的各类应用程序以保护和继承丰富的软件资源,所以Intel公司所生产的所有CPU仍然继续使用X86指令集,所以它的CPU仍属于X86系列。由于Intel X86系列及其兼容CPU都使用X86指令集,所以就形成了今天庞大的X86系列及兼容CPU阵容。

除了具备上述CISC的诸多特性外,X86指令集有以下几个突出的缺点:

通用寄存器组——对CPU内核结构的影响。X86指令集只有8个通用寄存器,所以,CISC的CPU执行是大多数时间是在访问存储器中的数据,而不是寄存器中的。这就拖慢了整个系统的速度。RISC系统往往具有非常多的通用寄存器,并采用了重叠寄存器窗口和寄存器堆等技术使寄存器资源得到充分的利用。

解码——对CPU的外核的影响。解码器(Decode Unit),这是x86 CPU才有的东西。其作用是把长度不定的x86指令转换为长度固定的类似于RISC的指令,并交给RISC内核。解码分为硬件解码和微解码,对于简单的x86指令只要硬件解码即可,速度较快,而遇到复杂的x86指令则需要进行微解码,并把它分成若干条简单指令,速度较慢且很复杂。Athlon也好,PIII也好,老式的CISC的X86指令集严重制约了他们的性能表现。

寻址范围小——约束了用户需要。即使AMD研发出X86-64架构时,虽然也解决了传统X86固有的一些缺点,比如寻址范围的扩大,但这种改善并不能直接带来性能上的提升。

2.ARM指令集

相比而言,以RISC为架构体系的ARM指令集的指令格式统一,种类比较少,寻址方式也比复杂指令集少。当然处理速度就提高很多。ARM处理器都是所谓的精简指令集处理机(RISC)。其所有指令都是利用一些简单的指令组成的,简单的指令意味着相应硬件线路可以尽量做到最佳化,而提高执行速率,相对的使得一个指令所需的时间减到最短。而因为指令集的精简,许多工作都必须组合简单的指令来完成,而针对较复杂组合的工作便需要由编译器(compiler) 来执行,而 CISC 体系的X86指令集因为硬体所提供的指令集较多,所以许多工作都能够以一个或是数个指令来代替,编译器的工作因而减少许多。

除了具备上述RISC的诸多特性之外,可以总结ARM指令集架构的其它一些特点如下:

ARM的特点:

体积小,低功耗,低成本,高性能;

支持Thumb(16 位)/ARM ( 32 位)双指令集,能很好的兼容 8 位 /16 位器件;

大量使用寄存器,指令执行速度更快;

大多数数据操作都在寄存器中完成;

寻址方式灵活简单,执行效率高;

指令长度固定;

流水线处理方式;

load-store结构。

ARM的一些非RISC思想的指令架构:

允许一些特定指令的执行周期数字可变,以降低功耗,减小面积和代码尺寸;

增加了桶形移位器来扩展某些指令的功能;

使用了16位的Thumb指令集来提高代码密度;

使用条件执行指令来提高代码密度和性能;

使用增强指令来实现数字信号处理的功能。

总结

因此,大量的复杂指令、可变的指令长度、多种的寻址方式这些CISC的特点,也是CISC的缺点,因为这些都大大增加了解码的难度,而在现在的高速硬件发展下,复杂指令所带来的速度提升早已不及在解码上浪费的时间。

除了个人PC市场还在用X86指令集外,服务器以及更大的系统都早已不用CISC了。x86仍然存在的理由就是为了兼容大量的x86平台上的软件。同时,它的体系结构组成的实现不太困难。

而RISC体系的ARM指令最大特点是指令长度固定,指令格式种类少,寻址方式种类少,大多数是简单指令且都能在一个时钟周期内完成,易于设计超标量与流水线,寄存器数量多,大量操作在寄存器之间进行。优点是不言而喻的,因此,ARM处理器才成为是当前最流行的处理器系列,是几种主流的嵌入式处理体系结构之一。

审核编辑:郭婷

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

    关注

    19

    文章

    7763

    浏览量

    92666
  • 微处理器
    +关注

    关注

    11

    文章

    2416

    浏览量

    85311

原文标题:ARM基础教程 | ARM 和 x86 的区别

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    易灵思FPGA RISC-V自定义指令的使用方法

    功耗设备到高性能计算。易灵思提供完整的RISC-V 解决方案,致力于让开发者和硬件设计人员可以根据需要自定义和扩展指令集,且无需担心专有技术的限制。
    的头像 发表于 11-24 11:36 3601次阅读
    易灵思FPGA <b class='flag-5'>RISC</b>-V自定义<b class='flag-5'>指令</b>的使用方法

    蜂鸟E203的浮点指令集拓展(F拓展)

    关于蜂鸟E203的浮点指令集拓展(F拓展) Whetstone中有很多浮点数运算,而蜂鸟e203中没有硬件支持,是通过将浮点数转化成整型数来计算,效率大大降低。 为了提高Whetstone跑分
    发表于 10-24 11:51

    risc-v P扩展(一) P指令集简介

    解码、医学成像、计算机视觉、嵌入式控制、机器人技术、人机界面等。 P指令集扩展提高了RISC-V CPU IP产品的DSP算法处理能力。随着RISC-V P
    发表于 10-23 07:40

    RISCV-K指令集扩展分享

    RISC-V K扩展指的是RISC-V用于提升密码学算法的速度、减小应用程序大小的一个扩展指令集。主要包含了:AES加密算法的加速指令、SHA算法的加速
    发表于 10-23 06:12

    RISC-V指令集手册中F指令部分

    本文主要讲解RISC-V指令集手册中F指令部分 RISC-V标准中采用了符合IEEE 754-2008算术标准的单精度浮点计算
    发表于 10-22 08:18

    提高RISC-V在Drystone测试中得分的方法

    性能:内存的读写速度、延迟和带宽等都会影响到 Drystone 的性能。 指令集优化:对RISC-V指令集的优化也会影响性能。例如,对于特定的应用或计算任务,可以通过定制
    发表于 10-21 13:58

    指令集P扩展的主要内容

    ;SIMD指令扩展,SIMD指令可以在单个指令中执行多个相同或类似的操作,可以提高处理器的运算速度,通过添加SIMD指令,可以提高处理器的计算
    发表于 10-21 10:50

    基于蜂鸟E203架构的指令集K扩展

    蜂鸟E203是一款基于RISC-V架构的微处理器,其指令集包含RV32I的基本指令集,RV32M的乘法扩展指令集,以及一些常用的定点指令和控
    发表于 10-21 09:38

    Tenstorrent 首席架构师:未来 RISC-V 会是计算机的主流

    当前,按指令集架构(ISA)分类,主流架构包括 x86 架构、ARM 架构和 RISC-V 架构。作为开源精简指令集RISC),RISC-
    发表于 07-17 11:26 1377次阅读

    RISC-V和ARM有何区别

    RISC-VARM是一种精简指令集RISC),以该指令集为基础的处理器通常被称为ARM芯片,它在全球范围内得到了极为广泛的应用。而RISC
    的头像 发表于 06-24 11:38 1727次阅读
    <b class='flag-5'>RISC</b>-V和ARM有何<b class='flag-5'>区别</b>?

    RISC-V核低功耗MCU指令集架构(ISA)特点

    自由使用、修改底层指令集,降低芯片设计成本并加速定制化开发‌。 灵活扩展‌:支持基础指令集(如RV32I/RV64I)与可选扩展模块(如浮点运算、向量加速)的组合,开发者可根据低功耗需求裁剪冗余功能‌。 二、‌模块化与精简设计‌ 核心
    的头像 发表于 04-23 10:01 1036次阅读

    明晚开播 | 开源芯片系列讲座第27期:RISC-V AI指令集的标准化与开源实现

    鹭岛论坛开源芯片系列讲座第27期「RISC-VAI指令集的标准化与开源实现」明晚(26日)21:00精彩开播期待与您云相聚,共襄学术盛宴!|直播信息报告题目RISC-VAI指令集的标准
    的头像 发表于 03-25 08:12 618次阅读
    明晚开播 | 开源芯片系列讲座第27期:<b class='flag-5'>RISC</b>-V AI<b class='flag-5'>指令集</b>的标准化与开源实现

    直播预约 | 开源芯片系列讲座第27期:RISC-V AI指令集的标准化与开源实现

    鹭岛论坛开源芯片系列讲座第27期「RISC-VAI指令集的标准化与开源实现」3月26日(周三)21:00精彩开播期待与您云相聚,共襄学术盛宴!|直播信息报告题目RISC-VAI指令集
    的头像 发表于 03-10 17:55 1139次阅读
    直播预约 | 开源芯片系列讲座第27期:<b class='flag-5'>RISC</b>-V AI<b class='flag-5'>指令集</b>的标准化与开源实现

    RISC-V可能颠覆半导体行业格局的5种方式

    什么是RISC-V?RISC-V是精简指令集计算(V)的缩写,是一种在半导体行业受到关注的开源指令集架构。它定义了
    的头像 发表于 02-05 17:03 9次阅读
    <b class='flag-5'>RISC</b>-V可能颠覆半导体行业格局的5种方式

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

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