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, C51
RISC架构的代码:arm, mips,powerpc, avr, pic
 
指令集的区别
首先从字面上理解就能知道, CISC(Complex Instruction SetComputer)架构的指令数肯定是远远多于RISC(ReducedInstruction Set Computer)架构的.另外,
 RISC架构下,不同指令opcode的长度是相等的, 而x86下不同的指令的长度差别很大.
 
寄存器的区别
CISC架构一般都提供通用寄存器a(x86下为eax),来支持大部分运算指令,但是由于指令太过复杂的原因,并不是所有的寄存器都能支持全部指令的运算,所以汇编代码中会有各种针对eax的mov操作,影响性能.
 
指令执行所需要的时钟周期
在CISC架构中,不同指令所需要的时钟周期是不同的(比如乘法和加法的周期就不太可能相同).而RISC架构的处理器,大部分的指令都可以在一个时钟周期内完成,这应该可以降低指令流水线设计的复杂度.
 CISC架构的很多复杂指令都通过CPU内的微码来完成, 这样那些微码比较复杂的指令就需要多个时钟周期才能完成.
 指令执行需要的时钟周期不同, 会增加指令流水线优化的难度.
 
访问内存的区别
RISC在结构设计上是一个载入/存储(load/store)的构架,只有载入和存储指令可以访问内存,数据处理指令只对寄存器的内容进行操作。为了加速程序的运算,RISC会设定多组的寄存器,并且指定特殊用途的寄存器。CISC架构则允许数据处理指令对内存进行操作,因此需要的寄存器数量会比较少.另外X86架构支持cpu对非对齐的内存地址的访问,这在RISC架构的处理器中通常会引起CPU产生异常.其实像类似非对齐内存地址访问的功能,
 X86也是通过CPU内微码来实现的,效率会大大降低.
 
寻址方式和IO空间
X86架构下IO空间和内存空间是分开的, IO空间使用完全不同的指令来访问(in,
 out). RISC架构则不区分IO空间和内存空间,都是直接把IO空间映射到内存空间,直接用内存空间的访问方式来操作.
 RISC架构下对于寻址方式同样做了精简,几乎所有的指令都使用寄存器寻址.
 
编译的区别
CISC的指令丰富的优势,使得它的编译器可以少做很多事情,编译器的设计更简单.而RISC在实现一个功能的时候,需要的指令条目数会更多一些,程序也会更大.
 
总结:
RISC相对于CISC架构来说,是一种较新的技术,由于没有历史负担,不需要考虑向下兼容,所以它的设计可以做的相当的简单而优雅.
 RISC架构的指令,寄存器和流水线特征使它非常适合于并行计算.可以遇见,未来RISC架构将会越来越大放异彩

RISC 和 CISC 区别相关推荐

  1. RISC与CISC区别

    一.CISC复杂指令集CPU(300条左右) CISC(complex instruction set computer)体系的设计理念用最少的指令来完成任务,譬如计算乘法或乘加(a乘b+c)只需要一 ...

  2. RISC和CISC,究竟有何不同?

    关注+星标公众号,不错过精彩内容 转自 | 半导体行业观察 关于RISC和CISC处理器的区别,大多数人会认为是一些特性.指令,或者是晶体管数量的差异.但实际上两者之间的差别不能简单的一概而论. 少量 ...

  3. 启明云端分享|ESP32-C3(ESP32­C3­MINI­1)使用的RISC与CISC有什么区别

    马上ESP32-C3(ESP32-­C3-­MINI­-1)就量产出货了,今天我们来说说乐鑫在ESP32-C3上使用的RISC与CISC有什么区别呢? RISC -精简指令集计算机(RISC:Redu ...

  4. 说明 RISC 和 CISC 指令系统的区别?

    说明 RISC 和 CISC 指令系统的区别? CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构.它们的区别在于不同的CPU设计理念和方法.早期的CPU全部是CISC架 ...

  5. 计组--CISC和RISC特点和区别

    CISC和RISC特点和区别 CISC(微程序) RISC(硬布线) 指令系统 复杂.庞大 简单.精简 指令数目 一般大于200条 一般小于100条 指令字长 不固定 定长 可访存指令 不加限制 只有 ...

  6. 带你一步步了解S5PV210-I~ARM历史,RISC和CISC的区别,ARM与三星,华为,高通这些的关系

    首先我们比较直观的对S5PV210的了解就是它的外观,如下图: 这个上面直观的看到几个字母: SAMSUNG(三星,生产厂) S5PV210AH-A0(型号) ARM (内核厂家) 那首先我们就对三星 ...

  7. RISC和CISC的区别

    文章目录 复杂指令集计算机(CISC) 精简指令集计算机(RISC) CISC与RISC的区别 参考文章 RISC(精简指令集计算机)和CISC(复杂指令集计算机)是当前CPU的两种架构.它们的区别在 ...

  8. CPU的RISC和CISC架构的区别

    CPU的RISC和CISC架构的区别 有关RISC和CISC的区别方面, 之前就有一些零零碎碎的理解, 这里再次做一次总结, 以求深入. CISC架构的代表: x86, C51 RISC架构的代码:a ...

  9. (计算机组成原理)RISC与CISC的区别

    RISC全称Reduced Instruction Set Compute,精简指令集计算机. CISC全称Complex Instruction Set Computers,复杂指令集计算机. CI ...

最新文章

  1. eclipse 启动tomcat, java.lang.ClassNotFoundExcepti
  2. CircleDisplay
  3. 服务器开一个无限循环的线程可以吗,如何使用无限循环的目标函数创建一个可停止的线程...
  4. vue element-ui IE9--11报 “无法获取未定义或null引用的属性‘toLowerCase’”
  5. 【转】The underlying connection was closed
  6. 【行业翘楚】井田云:化解线上线下冲突让鱼与熊掌皆得
  7. JavaScript 的函数式编程与面向对象编程区别在哪?
  8. 最小生成树原理及Kruskal算法的js实现
  9. 酷派春雷com.yulong.android,酷派7260 (春雷)一键刷机教程,亲测可用
  10. SD-WAN是怎么实现的?纯技术篇(上)Sdwan-Cheap
  11. MySQL基础篇(上)
  12. matlab求逆函数— inv函数
  13. Hadoop之——伪分布安装
  14. 如何通过光耦合器连接继电器
  15. 20190917练习题总结——选择题
  16. 上海市政府颁布《上海市居住证申办实施细则》
  17. android studio断点不生效,Android Studio调试设置的断点无效
  18. 实战-H3C交换机之Web界面
  19. 为什么要建立品牌?当然是为了让生意更好做。
  20. iMacros 自动发文章和外链的做法

热门文章

  1. post发送请求,body格式
  2. SQL Server2008 查找用户登录日志
  3. lower版购物车模拟
  4. LeetCode 141. Linked List Cycle (链表循环)
  5. GCC 常见参数配置
  6. ajax数据显示,使用js通用模板
  7. extjs5(03--项目中文件的加载过程)
  8. 二叉排序树查找不成功的平均查找长度
  9. java多线程系列:ThreadPoolExecutor源码分析,java基础面试笔试题
  10. Spring Cloud源码分析——Ribbon客户端负载均衡