计算机系统结构第二章指令系统内容摘要:
算术表达式 : 用三地址指令编写的程序如下: MUL X, A, B。 X←(A) (B) ADD X, X, C。 X←(X) + (C) SUB X, X, D。 分子的计算结果在中 ADD Y, E, F。 计算分母 ,存入 Y DIV X, X, Y。 最后结果在 X单元中 用普通二地址指令编写的程序: MOVE X, A。 复制临时变量到 X中 MUL X, B ADD X, C SUB X, D。 X中存放分子运算结果 MOVE Y, E。 复制临时变量到 Y中 ADD Y, F。 Y中存放分母运算结果 DIV X, Y。 最后结果在 X单元中 用多寄存器结构的二地址指令编写程序: MOVE R1, A。 操作数 a取到寄存器 R1中 MUL R1, B ADD R1, C SUB R1, D。 R1中存放分子运算结果 MOVE R2, E ADD R2, F。 R2中存放分母运算结果 DIV R1, R2。 最后结果在 R1中 MOVE X, R1。 最后结果存入 X中 用一地址指令编写的程序: LOAD E。 先计算分母,。 取一个操作数到累加器中 ADD F。 分母运算结果在累加器中 STORE X。 保存分母运算结果到 X中 LOAD A。 开始计算分子 MUL B ADD C SUB D。 累加器中是分子运算结果 DIV X。 最后运算结果在累加器中 STORE X。 保存最后运算结果到 X中 65 用 0地址指令编写程序: ab*c+def+/ PUSH A。 操作数 a压入堆栈 PUSH B。 操作数 b压入堆栈 MUL。 栈顶两数相乘 ,结果压回堆顶 PUSH C ADD PUSH D SUB。 栈顶是分子运算的结果 PUSH E PUSH F ADD DIV。 栈顶是最后运算的结果 POP X。 保存最后运算结果 用不同地址个数指令编写的程序 的存储容量和执行速度 地址数目 指令条数 访存次数 程序存储量 执行速度 ( 访存信息量 ) 三地址 5 20 5P + 15A = 65B 5P + 15A + 15D = 185B 二地址 7 26 7P + 14A = 63B 7P + 14A + 19D = 215B 一地址 9 18 9P + 9 A = 45B 9P + 9 A + 9 D = 117B 零地址 12 41 12P + 7A = 40B 12P + 7A + 29D = 272B 二地址 寄存器型 8 15 8P+7A+9R = 40B 8P+7A+9R+7D = 96B P 表 示操作码长度, A 表示地址码长度, D 表示数据长度, R 表示通用寄存器的地址码长度, B 表示字节数。 并取: D = 2A = 8P = 16R = 8B 不同地址个数指令 的特点及适用场合 地址数目 程序 的长度 程序 存储量 程序 执 行速度 适用场合 三地址 最短 最大 一般 向量,矩阵运算为主 二地址 较短 很大 很低 一般不宜采用 一地址 较长 较大 较快 连续运算 , 硬件结构简单 零地址 最长 最小 最低 嵌套,递归,变量较多 二地址 寄存器型 一般 最小 最快 多累加器,数据传送较多 • 关于地址码个数结论: 对于一般商用处理机,采用多寄存器结构的二地址指令是最理想的。 如果强调硬件结构简单,并且以连续运算(如求累加和等)为主,宜采用一地址结构。 对于以向量、矩阵运算为主的处理机,最好采用三地址结构。 部分 RISC处理机也采用三地址指令。 对于解决递归问题为主的处理机,宜采用零地址结构。 编程容易、节省程序存储量。 2. 缩短地址码长度的方法 用一个短地址码表示一个大地址空间 • 用间址寻址方式缩短地址码长度 方法:在主存储器的低端开辟一个专门存放间接地址的区域 • 用变址寻址方式缩短地址码长度 变址寻址方式中的地址偏移量比较短, • 用寄存器间接寻址方式缩短地址码长度 例如: 16个间址寄存器,用 4位地址码就能表示很长的逻辑地址空间。 MIPS 有 32个 64位通用寄存器, R0,R1…,R31。 32个浮点数寄存器, F0,F1…,F31。 R0的值永远是 0。 指令格式设计举例 指令系统的功能设计 完整性、规整性、高效率和兼容性 通用计算机必须有 5类基本指令 指令系统的优化设计 CISC、 RISC和 VLIW 指令系统的性能 完整性、规整性、高效率和兼容性 1. 完整性是指应该具备的基本指令种类 如: 通用计算机必须有5类基本指令 数据传送类、运算类、程序控制、输入输出指令、处理机控制和调试指令 2. 规整性包括对称性和均匀性 对称性: 各种与指令系统有关的数据存储设备的使用、操作码的设置等都要对称。 如:所有的寄存器同等对待。 如 AB与BA 均匀性: 对于各种不同的数据类型、字长、存储设备、操作种类,指令的设置要同等对待。 3. 高效率: 指令的执行速度要快 指令的使用频度要高 各类指令要有一定的比例 如:运算类指令占 40%以上, 数据传送类指令占 30%等。 4. 兼容性: 在同一系列机内,指令系统,包括寻址方式和数据表示等保持基本不变; 可以适当增加指令、增加寻址方式,增加数据表示等;但不能减少任何已有的 ……。 基本指令系统 通用计算机必须有5类基本指令 数据传送类指令 运算类指令 程序控制指令 输入输出指令 处理机控制和调试指令 1. 数据传送类指令 由如下三个主要因素决定: (1)数据存储设备 的种类 (2)数据单位 :字、字节、位、数据块等 (3)采用的寻址方式 例如,考虑数据存储设备的种类: 寄存器 寄存器 寄存器 主存储器 寄存器 堆栈 主存储器 寄存器 主存储器 主存储器 主存储器 堆栈 堆栈 寄存器 堆栈 主存储器 2. 运算类指令 : 考虑四个因数的组合: 操作种类 : 加、减、乘、除、与、或、非、异或、比较、移位、检索、转换、匹配、清除、置位等 数据表示 : 定点、浮点、逻辑、十进制、字符串、向量等 数据长度 : 字、双字、半字、字节、位、数据块等 数据存储设备 : 寄存器、主存储器、堆栈等 例 P 104 以寄存器加法指令为例,一般设置如下几种: 寄存器 寄存器型的 定点单字长加法指令 寄存器 寄存器型的 定点双字长加法指令 寄存器 寄存器型的 定点半字加法指令 寄存器 寄存器型的 字节加法指令 寄存器 寄存器型的 浮点单字长加法指令 寄存器 寄存器型的 浮点双字长加法指令 寄存器 寄存器型的 单字长逻辑加法指令 寄存器 寄存器型的 定点向量加法指令 寄存器 寄存器型的 浮点向量加法指令 以移位指令为例: 需要组合以下三个因素: (1)移位方向: 左移 (L)、右移 (R) (2)移位种类: 算术移位 (A)、逻辑移位 (L)、 循环移位 (R) (3)移位长度: 单字长 (S)、双字长 (D) 组合起来共有: 3 2 2= 12种, 其中,逻辑左移与算术左移相同 一般机器中要设置 10条移位指令 一般机器中要设置 10条移位指令 SLAS 单字长算术左移 SRAS 单字长算术右移 SLLS(SRLS)单字长逻辑左移 ,单字长算术左移 SLRS 单字长循环左移 SRRS 单字长循环右移 SLAD 双字长算术左移 SRAD 双字长算术右移 SLLD(SRLD)双字长逻辑左移 ,双字长算术左移 SLRD 双字长循环左移 SRRD 双字长循环右移 3. 程序控制指令 有多种转移指令 : 无条件转移,条件转移指令 调用与返回指令 循环控制指令 …… 转移条件: 零 (Z)、正负 (N)、进位 (C)、溢出 (V)及其组合 由条件转移指令之前的指令产生条件码 由条件转移指令本身产生转移条件 多组条件码 条件转移指令举例 一般条件转移指令 条件码由转移指令之前的指令产生, 对指令流水线的影响小。 例如 : BEQ ADR。 等于零转移 BLS ADR。 小于转移 BLEQ ADR。 小于等于转移 BLSU ADR。 不带符号小于转移 BLEQU ADR。 不带符号小于等于转移 BCC ADR。 没有进位转移 BVC ADR。 没有溢出转移 复合条件转移指令 代替 2条指令,首先进行运算,并根据运算的结果决定是否转移 不需要条件码,与高级语言一致。 例如: DNB R ADR。 R←(R) 1,如果 R≠0 转移 INB R ADR。 R←(R)+1, 如果 R≠0 转移 JEQ R1, R2, ADR。 如果 (R1)=(R2)转移 JAD EQ, Rd, Rs, ADR。 Rd←(Rd)+(Rs),。 如果 (Rd)=0转移 循环控制指令 用 1条指令完成循环的控制 代替 3条指令的功能:运算、比较和转移。 例如: JL Rs, Rz, Ri, ADR Rs中存放循环变量, Rz中存放循环终值, Ri中存放循环的步长。 地址个数太多时,可以把其中的 1个或几个地址隐含起来。 例如,在 IBM370下列机中, Ri隐含,循环步长放在与 Rz紧相邻的下一寄存器中。 程序调用和返回指令 本身可以不带条件,也可以带有条件 CALL 转入子程序 RETURN 从子程序返回 CALL CC 当条件 CC满足时转入子程序 RETURN CC 当条件 CC满足时从子程序返回 中断控制指令: 开中断、关中断 改变屏蔽 中断返回 自陷等 4. 输入输出指令 启动、停止、测试设备,数据输入、输出等 采用单一的直接寻址方式, 在多用户或多任务环境下,输入输出指令属于特权指令 5. 处理机控制和调试指令 处理机状态切换指令, 处理机有多个状态,管态和用户态 硬件和软件的调试指令 硬件调试指令:开关状态读取、寄存器和主存单元的显示等 软件调试指令:断点设置、跟踪,自陷指令等 指令系统的优化设计 优化指令系统设计的 3个阶段: CISC:复杂指令系统 60年代至 70年代中期 RISC:精简指令系统 70年代后期至现在 VLIW: 80年代初期至现在 关键在软硬件的功能分配,系统的综合性能 时间与空间;执行、编译、编写时间。 1. 复杂指令系统计算机 CISC(Complex Instruction Set Computer) 方法: 用一条指令代替一串指令 增加新的指令 增强指令功能,设置功能复杂的指令,把原来由软件实现的常用的功能改用硬件的指令系统来实现。 增加寻址方式 增加数据表示方式 优化的途径: 面向目标代码 面向高级语言。计算机系统结构第二章指令系统
本资源仅提供20页预览,下载后可查看全文
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
相关推荐
计算机网络和多媒体技术
,有的适于做宽带传输。 基本上已被双绞线取代。 抗干扰能力较强,但价格较贵。 传输介质 —— 双绞线 双绞线是两根铜导线按照一定的扭距绞合在一起的传输媒体,每根线外有绝缘层。 一对或多对双绞线放在一个绝缘套管中便成了双绞线电缆。 成对导线扭绞旨在使电磁辐射和外部电磁干扰减到最小。 ( 1)非屏蔽双绞线 (UTP) ( 2) 屏蔽双绞线 (STP)( 在多对双绞线外加金属屏蔽层)
计算机科学导论课程简介
室的机会 4 课 程 简 介 • 教材与参考书 – 无合适教材 , 课件 – 部分讲座会给出相关的参考书 5 课 程 简 介 • 十次讲座的题目 – 代数等式理论的自动定理证明(面向高中背景) – 对程序进行推理的逻辑 (程序理论) – 程序设计语言类型系统 (程序理论) – 离散数学与计算机科学 (程序理论) – 经典计算的计算模型 (模型理论) – 计算复杂性和算法分析 (计算理论) –
计算机科学与技术学院与midsweden合作项目介绍
English A close and informal contact between professors and students Education strongly related to the latest research in the area Fully implemented Bologna Process Requirements: Independent