体系结构 chap-2 指令集结构设计

1 指令集结构的分类

1.1 指令系统的设计依据

应用系统的需求
对操作系统编译的支持
现有指令系统的测量统计数据
计算机的定量设计原则

1.2 指令系统的设计内容

数据在CPU中存放位置
编码方法
操作种类
操作数的类型和长度
寻址方式

1.3 指令集结构的分类

  1. 在CPU中操作数的存储方法
  • 堆栈型(stack architecture)
    操作数隐含在栈顶, 如alp3000/70
  • 累加器型(accumulator architecture)
    一个操作数隐含在累加器中, 如PDP-8
  • 通用寄存器型(GPR architecture)
    操作数存放在寄存器中
    在这里插入图片描述
    在这里插入图片描述
  1. 指令中显式表示的操作数个数
    根据ALU指令中访存操作数的个数
    Register-Register (0个) ------ Load/Store
    Register-Memory (1个)
    Memory-Memory (2~3个)
    [例] C=A+B
R-R型 R-M型 M-M型
Load R1, A
Load R2, B
Add R3, R1, R2
Store R3, C
Load R1, A
Add R1, B
Store R1, C
Add C, A, B
类型 优点 缺点
R-R
(0,3)
简单,定长指令编码。简单代码生成模式。指令执行时间的时钟周期相近 指令数多,一些编码位浪费
R-M
(1,2)
数据不必先取再访问。指令格式易于编码,代码密码度较高 操作数不对等,一个操作数会被破坏。一条指令中的Reg数受限。指令执行时钟周期数不同
M-M
(3,3)
代码密码度最高。不必浪费reg存放临时变量 指令长度变化大,指令执行所需时钟周期数变化大,存储器成为系统性能瓶颈
  1. 操作数的寻址方式
  2. 指令集所提供的操作类型
  3. 操作数的类型和大小

2 寻址技术

在这里插入图片描述
测量统计数据
立即值寻址方式偏移寻址方式的使用频率十分高
至少提供3种存储器寻址模式
将偏移量字段的大小设置为12~16位
立即数的大小设置为8~16位

3 指令集结构的功能设计

指令集中操作的分类

  • 基本指令:算术逻辑运算类、数据传输类、控制类
  • 专用指令:如浮点指令(科学计算),十进制指令(商用),字符串指令(事务),图象指令
  • 特权指令:如虚存管理、系统调用

3.1 复杂指令集计算机(CISC)

强化指令功能,实现软件功能向硬件功能转移。

  1. 面向目标程序增强指令功能
    提高运算型指令功能(变量,阶,表首)
    提高传送指令功能(矩阵,字符串,向量,十进制)
    增加程序控制指令功能(循环控制指令)
  2. 面向高级语言和编译程序改进指令系统
    ·增加对高级语言和编译系统支持的指令功能(规整性)
    ·高级语言计算机指令系统
     面向高级语言(HL)的机器
     间接执行型高级语言机器(编译执行)
     直接执行型高级语言机器
    ·面向操作系统的优化实现改进指令系统

3.2 精简指令集计算机(RISC)

尽可能地降低指令集结构的复杂性,以达到简化实现,提高性能的目的。

主要特点:(Carnegie Mellon)
1.大多数指令在单时钟周期内完成
2.采用Load/Store结构
3.硬联逻辑实现
4.减少指令和寻址方式的种类
5.固定指令格式
6.注重译码的优化

关键技术:

  1. 重叠寄存器窗口技术
    节省了保存现场和恢复现场等辅助时间
    方法 :
    ·设置的大量的寄存器,分成多个组和全局区;
    ·每个组中分高、本地、低三个区;
    ·相邻组的高、低区重叠,加速参数与结果的传递。
    统计结果:
    嵌套调用不超过6层,每层24个寄存器(每个区8个寄存器)可基本满足要求,不满足概率在1%左右(使用主存缓冲)
  2. 延时转移技术
  3. 指令取消技术
  4. 指令流调整技术
  5. 硬件为主,固件为辅

RISC优势:
省去类似功能指令的选择
省去是否生成访存指令的选择工作
为优化编译器调整指令顺序提供方便
RISC劣势:
寄存器分配算法
数据和控制相关性分析
要设计复杂的子程序库

4 操作数的类型、表示和大小

数据表示: 是指计算机硬件能够直接识别、指令系统可以直接使用的那些数据类型。(硬件实现)

数据结构: 是研究面向应用、面向软件系统所处理的各种数据类型.研究这些数据类型的逻辑结构和物理结构之间的关系及相应的算法

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值