CISC指令集

CISC指令集

CISC包括一个丰富的微指令集,这些微指令简化了在处理器上运行的程序的创建。指令由汇编语言所组成,把一些原来由软件实现的常用的功能改用硬件的指令系统实现,编程者的工作因而减少许多,在每个指令期同时处理一些低阶的操作或运算,以提高计算机的执行速度,这种系统就被称为复杂指令系统。

历史背景:

早期计算机出现时,软件环境、开发环境比较欠缺,编译器技术不发达,编程是一个很繁琐的过程,在这种环境下芯片设计者会尽量把硬件设计复杂一点以降低编程的难度,即在硬件层面多做一些工作以减少软件层面的工作量。

本文以x86指令集为例讲解CISC指令集特点

x86指令集
  • 向下兼容

    • 每一代处理器都是对上一代处理器功能的扩展,后向兼容
  • 变长指令

    • x86指令集指令长度为1-15字节,多数为2-3字节长度
    • 优点:简洁高效,码字利用率高
    • 缺点:变长指令会面临指令分割问题
    • 与之相反的MIPS指令集为定长指令集,每一条指令都是32位
  • 多种寻址方式

    • 以访问不对齐内存地址,例如立即寻址、直接寻址、寄存器寻址、段内直接寻址等等一系列寻址方式
  • 通用寄存器个数十分有限,

    • x86_32有8个通用寄存器
    • x86_64有16个通用寄存器
    • CISC指令集_第1张图片
  • 至多能有一个操作数在内存中,另一个操作数为立即数或者寄存器

多种寻址方式

x86指令集缺点

向下兼容导致指令集越来越大、越来越复杂

x86架构为类RISC内核,采用micro-op模式进行编译,使得功耗相对增大,导致在功耗方面不占优势

资源利用率低,在300余条指令中只有少数指令是常用的,许多指令使用频率并不高

你可能感兴趣的:(CISC指令集)