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

1. 面向目标程序增强指令功能
对频率高的指令串,用一条新的指令来替代
既能减少目标程序的执行时间,又能有效缩短程序长度
改进方面:
增强运算型指令的功能
增强数据传送指令的功能
比如说进行数组的搬运等
增强程序控制指令的功能
2. 面向高级语言的优化实现来改进指令系统(缩小高级语言和机器语言的语义差距)
高级语言与一般的机器语言的语义差距非常大,为高级语言程序的编译带来了一些问题
✅编译器本身比较复杂
✅编译生成的目标代码比较难达到很好的优化
对高级语言和编译器的支持。在高级语言中找一些常用的指令并做一些支持。
增强系统结构的规整性,减少系统结构中的各种例外情况。
“比较简单的系统结构+软件”
3. 面向操作系统的优化实现改进指令系统
处理机
工作状态
和访问方式
的切换。进程的
管理
和切换
。存储管理和信息保护
进程的同步和排斥,
信号灯的管理等
CISC结构存在着的缺点
指令出现的频率
相差悬殊
,很多指令的没办法用到指令系统大,
指令条数
很多,指令功能复杂占用大量芯片面积
增加研制时间和成本,还会造成设计错误
由于操作繁杂,CPI的值比较大
RISC指令集功能设计原则
指令条数少,
指令功能简单
。在确定指令系统时,只选取使用频度很高的指令,在此基础上补充一些最有用的指令(如支持操作系统和高级语言实现的指令)。采用
简单而又统一
的指令格式,并减少寻址方式
。指令字长都为 32 位或64 位。指令的执行在
单周期内完成
(采用流水线技术后)。采用 Load-Store 结构。即只有 Load 和 Store 指令才能访问存储器,其他指令的操作都是在寄存器之间进行的。
大多数指令都采用硬连线逻辑来实现。
强调优化编译器的作用,为高级语言程序生成优化的代码
充分利用流水技术来提高性能。
MIPS指令分析
介绍MIPS32的一个子集,就称为MIPS指令集
32个32位的通用寄存器(GPRs)
寄存器R0的内容恒为全0
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 进行许可。