文章目录
基本概念
指令系统是计算机系统结构的主要组成部分,是软件与硬件之间相互沟通的桥梁,也是软硬件分界面的一个主要标志,让软件之间的语义差异越来越大。
1. 周期的概念
指令周期:
CPU取出一条指令并执行这条指令的时间总和
CPU周期:
一条指令执行的一个阶段、一个过程
时钟周期:
通常称为节拍脉冲或T周期,一个CPU周期包含若干个时钟周期
2. 指令的组成
一般指令由两部分组成:
- 操作码
通常包含两部分内容:操作类型(加、减…)和操作数描述(数据类型以及数据字长) - 地址码
包含三部分内容:地址(间址、立即数…)、地址附加信息(偏移量、块长度…)和寻址方式(直接寻址、间接寻址…)
操作码(OPC) | 地址码(A) |
---|
指令格式的优化设计
指令格式的优化的主要目的是:
- 节省程序的存储空间
- 指令格式尽量规整
前面介绍了指令包含两部分内容,我们的指令格式优化设计可以从这两部分内容入手。
1. 操作码的优化表示
操作码有三种编码方式:
- 固定长度
- 优点:规整,译码简单
- 缺点:浪费信息量
- Huffman编码
- 优点:减少了冗余量
- 缺点:操作码长度不规整,硬件译码困难;与地址码共同形成固定长度的指令比较困难。
- 扩展编码
1.1 Huffman编码
可以看这篇文章:霍夫曼编码(Huffman Coding)
形成操作码编码并不是唯一的,但是操作码的平均长度是唯一的
1.2 扩展编码法
是Huffman编码和固定字长编码法的结合
2. 地址码的优化表示
地址码个数选择可以是三个、两个、一个以及零个,地址码个数直接、决定性地影响计算机系统
评价地址码个数应该取多少的标准主要有两个:
- 程序的存储容量,包括操作码和地址码
- 程序的执行速度,以程序执行过程中访问主存的信息量代表
各种不同地址数指令的特点以及适用场合
地址数目 | 指令长度 | 程序存储量 | 程序执行速度 | 适用场合 |
---|---|---|---|---|
三地址 | 短 | 最大 | 一般 | 向量,矩阵运算为主 |
二地址 | 一般 | 很大 | 很低 | 一般不宜采用 |
一地址 | 较长 | 较大 | 较快 | 连续运算,硬件结构简单 |
零地址 | 最长 | 最小 | 最低 | 嵌套,递归,变量较多 |
二地址R型 | 一般 | 最小 | 最快 | 多累加器,数据传送较多 |
想要用一个短的地址码表示一个大的逻辑地址,所以缩短地址码长度,方法有:
- 用间址寻址方式缩短地址码长度
- 用变址寻址方法缩短地址码长度
- 用寄存器间接寻址方式缩短地址码长度
指令系统的功能设计
1. 基本指令系统
通用计算机系统有五种基本指令:
- 数据传送类指令
由三个主要因素决定:数据存储设备的种类(寄存器、主存…)、数据单位(字、字节、块…)和采用的寻址方式 - 运算类指令
四个因数的组合:操作种类(加、减…)、数据表示(定点、浮点…)、数据长度(字、双字…)和数据存储设备(寄存器、主存…) - 程序控制类指令
包含三类:转移指令、调用和返回指令、循环控制指令 - 输入输出指令
- 处理机控制和调试指令
2. 指令系统的性能
- 完整性:是指应该具备基本指令类型
- 规整性:规则性包括对称性和均匀性
- 高效率:指令的执行速度要快
- 兼容性:在同一系列机内指令系统不变
3. 指令系统的优化设计
有两种截然相反的方向:
- 复杂指令系统计算机CISC:增强指令的功能,设置功能复杂的指令
- 精简指令系统计算机RISC:简化指令功能,只保留功能简单的指令