risc(精简指令集)和cisc(复杂指令集)的定义与区别

指令系统主要分为risc和cisc
在这里插入图片描述

基本概念

  • RISC(Reduced Instruction Set Computer):精简指令集计算机
  • CISC(Complex Instruction Set Computer):复杂指令集计算机

含义

CISC(Complex Instruction Set Computing)

  1. 复杂庞大的指令系统:指令数目一般多达200~300条。
  2. 指令长度不固定:指令格式种类多,寻址方式种类多。
  3. 存储器访问不受限制:可以访存的指令不受限制(RISC只有取数/存数指令访问存储器)。
  4. 执行时间差异大:各种指令执行时间相差很大,大多数指令需多个时钟周期才能完成。
  5. 微程序控制:控制器大多数采用微程序控制。
  6. 难优化编译:难以用优化编译生成高效的目标代码程序。

RISC(Reduced Instruction Set Computing)

  1. 选取高频简单指令:使用频率较高的简单指令以及一些实用但不复杂的指令,复杂指令的功能由高频简单指令的组合来实现。
  2. 指令长度固定:指令格式种类少,寻址方式种类少。
  3. 存储器访问限制:只有取数/存数指令访问存储器,其余指令的操作都在寄存器内完成。
  4. 多通用寄存器:CPU中有多个通用寄存器(比CISC的多)。
  5. 流水线技术:一定采用流水线,大部分指令在一个时钟周期内完成。采用超标量超流水线技术,使每条指令的平均时间小于一个时钟周期。
  6. 组合逻辑控制:控制器采用组合逻辑控制,不用微程序控制。
  7. 优化编译程序:采用优化的编译程序。

区别

1. 指令集复杂度

  • CISC

    • 指令集复杂,包含大量不同的指令。
    • 每条指令可能执行多个低级操作。
    • 指令长度不固定,可能需要多个时钟周期才能完成。
  • RISC

    • 指令集精简,指令数量较少且简单。
    • 每条指令通常只执行一个低级操作。
    • 指令长度固定,通常在一个时钟周期内完成。

2. 指令执行速度

  • CISC

    • 由于指令复杂,单条指令可能需要多个时钟周期。
    • 优化重点在于减少程序中的指令数量。
  • RISC

    • 指令简单,通常在一个时钟周期内完成。
    • 优化重点在于提高每条指令的执行速度。

3. 寄存器使用

  • CISC

    • 寄存器数量较少,大量使用内存操作。
    • 寄存器与内存之间的操作较为频繁。
  • RISC

    • 寄存器数量较多,尽量减少内存访问。
    • 大部分操作在寄存器之间完成,减少内存操作带来的延迟。

4. 编译器设计

  • CISC

    • 编译器设计相对简单,因为复杂的指令可以直接实现高级语言的语义。
    • 程序代码相对较短,但每条指令的执行时间较长。
  • RISC

    • 编译器设计较复杂,需要将高级语言的语义分解成更多的简单指令。
    • 程序代码相对较长,但每条指令的执行时间较短。

5. 硬件实现

  • CISC

    • 硬件实现复杂,需要更多的电路来支持复杂的指令集。
    • 通常包括微代码来实现复杂指令的执行。
  • RISC

    • 硬件实现相对简单,支持精简的指令集。
    • 不需要微代码,每条指令直接由硬件执行。

6. 能效比

  • CISC

    • 由于指令复杂,能效比通常较低。
  • RISC

    • 由于指令简单且执行速度快,能效比通常较高。

7. 典型应用

  • CISC

    • 常用于传统桌面计算机和服务器,典型代表为 x86 架构。
  • RISC

    • 常用于嵌入式系统和移动设备,典型代表为 ARM 架构。

总结

  • CISC:复杂指令集,适用于需要高效代码密度的应用,常见于桌面计算机和服务器。
  • RISC:精简指令集,适用于需要高执行效率和低功耗的应用,常见于嵌入式系统和移动设备。

这两种架构各有优缺点,实际应用中根据具体需求选择合适的架构。

相关文章推荐

如果你觉得这篇文章对你有帮助,不妨看看以下几篇相关文章,内容同样精彩:

  1. 病毒肆虐,电脑遭殃,360和火绒哪家强?
    探讨了流行杀毒软件360和火绒的各自优缺点,以及在面对不同病毒威胁时的表现。
  2. 编码器与译码器的工作原理及应用
    详细解析了编码器与译码器的工作原理,特别是n位2^n线编码器的运算规律,对于学习计算机硬件的读者非常有帮助。
  3. python课程设计作业-TCP客户端-服务端通信
    介绍了如何使用Python进行TCP客户端与服务端通信的课程设计作业,适合对网络编程感兴趣的读者。
  4. 海明检验码过程(超详细)
    详尽讲解了海明检验码的原理和实现过程,适合需要了解错误检测与纠正编码的读者。

每篇文章都经过精心编写,涵盖了丰富的知识点和实用技巧,希望能为你的学习和实践提供更多帮助!

计算机原理复习目录汇总 ⬇️点击这里阅读完整文章⬇️

  • 32
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CongSec

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值