CA-指令系统的发展和改进

Molaters Lv5
# CISC指令集功能设计

1. 面向目标程序增强指令功能

  • 对频率高的指令串,用一条新的指令来替代

  • 既能减少目标程序的执行时间,又能有效缩短程序长度

  • 改进方面:

    • 增强运算型指令的功能

    • 增强数据传送指令的功能

      • 比如说进行数组的搬运等
    • 增强程序控制指令的功能


2. 面向高级语言的优化实现来改进指令系统(缩小高级语言和机器语言的语义差距)

  • 高级语言与一般的机器语言的语义差距非常大,为高级语言程序的编译带来了一些问题

  • ✅编译器本身比较复杂

  • ✅编译生成的目标代码比较难达到很好的优化

    1. 对高级语言和编译器的支持。在高级语言中找一些常用的指令并做一些支持。

    2. 增强系统结构的规整性,减少系统结构中的各种例外情况。

“比较简单的系统结构+软件”


3. 面向操作系统的优化实现改进指令系统

  1. 处理机工作状态访问方式的切换。

  2. 进程的管理切换

  3. 存储管理信息保护

  4. 进程的同步和排斥,信号灯的管理等


CISC结构存在着的缺点

  1. 指令出现的频率相差悬殊,很多指令的没办法用到

  2. 指令系统大,指令条数很多,指令功能复杂

    • 占用大量芯片面积

    • 增加研制时间和成本,还会造成设计错误

  3. 由于操作繁杂,CPI的值比较大


RISC指令集功能设计原则

  1. 指令条数少,指令功能简单。在确定指令系统时,只选取使用频度很高的指令,在此基础上补充一些最有用的指令(如支持操作系统和高级语言实现的指令)。

  2. 采用简单而又统一的指令格式,并减少寻址方式。指令字长都为 32 位或64 位。

  3. 指令的执行在单周期内完成(采用流水线技术后)。

  4. 采用 Load-Store 结构。即只有 Load 和 Store 指令才能访问存储器,其他指令的操作都是在寄存器之间进行的

  5. 大多数指令都采用硬连线逻辑来实现。

  6. 强调优化编译器的作用,为高级语言程序生成优化的代码

  7. 充分利用流水技术来提高性能


MIPS指令分析

介绍MIPS32的一个子集,就称为MIPS指令集

  1. 32个32位的通用寄存器(GPRs

    寄存器R0的内容恒为全0

  2. 32个32位的浮点寄存器(FPRs

    单精度浮点数标识和双精度浮点数表示

💬最重要的是指令格式


指令格式

1. I类指令

op rs1 rs2 Imm
6 5 5 16

Load / Store

寄存器-立即数ALU

分支指令

寄存器跳转 and 链接

2. R类指令

op rs1 rs2 rd Imm
6 5 5 5 11

寄存器-寄存器指令

3. J类指令

op PC的偏移量
6 26

跳转指令

MIPS效能分析

指令格式、寻址方式、操作都很简单

$T_{CPU} = IC \times CPI \times T_{CLK}$

$\frac{T_{CPU-MIPS}}{T_{CPU-VAX}}=1.0~2.5 \times \frac{1}{4} * \frac{T_{CLK-MIPS}}{T_{CLK-VAX}}$

所以性能会更高


[[CourseNotes/计算机体系结构/CA-第七讲 流水线技术]]

  • 标题: CA-指令系统的发展和改进
  • 作者: Molaters
  • 创建于 : 2023-11-24 11:30:49
  • 更新于 : 2023-10-12 17:02:43
  • 链接: https://molaters.github.io/2023/11/24/计算机体系结构/CA-指令系统的发展和改进/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
 评论