2.4指令系统的功能设计 完整性、规整性、高效率和兼容性等 2.4.1基本指令系统 通用计算机系统的5类基本指令 1、数据传送类指令, 由如下三个主要因素决定: (1)数据存储设备的种类 (2)数据单位:字、字节、位、数据块等 3)采用的寻址方式 ·指令种类(以字为传送单位,不考虑寻址方式等): 通用寄存器→通用寄存器 通用寄存器→主存储器 通用寄存器→堆栈 主存储器→通用寄存器 主存储器→主存储器 主存储器→堆栈 堆栈→通用寄存器 堆栈→主存储器 2、运算类指令 考虑四个因数的组合: (1)操作种类:加、减、乘、除、与、或、非、异或、比较、移位、检索 转换、匹配、清除、置位等 (2)数据表示:定点、浮点、逻辑、十进制、字符串、定点向量等 (3)数据长度:字、双字、半字、字节、位、数据块等 (4)数据存储设备:通用寄存器、主存储器、堆栈等 以加法指令为例,一般应设置如下几种: 寄存器-寄存器型的定点单字长加法指令 寄存器-寄存器型的定点双字长加法指令 寄存器-寄存器型的定点半字加法指令 寄存器-寄存器型的字节加法指令 寄存器-寄存器型的浮点单字长加法指令 寄存器-寄存器型的浮点双字长加法指令 寄存器-寄存器型的单字长逻辑加法指令 寄存器-寄存器型的定点向量加法指令 寄存器-寄存器型的浮点向量加法指令 ·对于移位指令,要组合以下三个因素: 1)移位方向:左移(L)、右移(R) (②)移位种类:算术移位(A)、逻辑移位①L)、循环移位(R) (3)移位长度:单字长(S)、双字长(D)
2-1 2.4 指令系统的功能设计 完整性、规整性、高效率和兼容性等 2.4.1 基本指令系统 通用计算机系统的 5 类基本指令 1、数据传送类指令, • 由如下三个主要因素决定: (1) 数据存储设备的种类 (2) 数据单位:字、字节、位、数据块等 (3) 采用的寻址方式 • 指令种类(以字为传送单位,不考虑寻址方式等): 通用寄存器→通用寄存器 通用寄存器→主存储器 通用寄存器→堆栈 主存储器→通用寄存器 主存储器→主存储器 主存储器→堆栈 堆栈→通用寄存器 堆栈→主存储器 2、运算类指令 • 考虑四个因数的组合: (1) 操作种类:加、减、乘、除、与、或、非、异或、比较、移位、检索、 转换、匹配、清除、置位等 (2) 数据表示:定点、浮点、逻辑、十进制、字符串、定点向量等 (3) 数据长度:字、双字、半字、字节、位、数据块等 (4) 数据存储设备:通用寄存器、主存储器、堆栈等 • 以加法指令为例,一般应设置如下几种: 寄存器-寄存器型的定点单字长加法指令 寄存器-寄存器型的定点双字长加法指令 寄存器-寄存器型的定点半字加法指令 寄存器-寄存器型的字节加法指令 寄存器-寄存器型的浮点单字长加法指令 寄存器-寄存器型的浮点双字长加法指令 寄存器-寄存器型的单字长逻辑加法指令, 寄存器-寄存器型的定点向量加法指令 寄存器-寄存器型的浮点向量加法指令 • 对于移位指令,要组合以下三个因素: (1) 移位方向:左移(L)、右移(R) (2) 移位种类:算术移位(A)、逻辑移位(L)、循环移位(R) (3) 移位长度:单字长(S)、双字长(D)
组合起来:3×2×2=12种,因逻辑左移与算术左移相同, 移位指令应该有10种,分别是 单字长算术左移 SRAS 单字长算术右移 SLS(SRLS)单字长逻辑左移,或单字长算术左移 SLRS 单字长循环左移 SRRS 单字长循环右移 双字长算术左移 SRAD 双字长算术右移 SLLD(SRLD)双字长逻辑左移,或双字长算术左移 双字长循环左移 SRRD 双字长循环右移 位操作指令:置位、清位、位测试、找位等 字符串指令:比较、查找、匹配、转换等 3、程序控制指令 ●主要包括三类:转移指令、调用和返回指令、循环控制指令 转移条件主要有:零(Z)、正负(N)、进位◎、溢出(V)及它们的组合 ●主要条件转移指令有: BEQ 等于零转移 BNEQ不等于零转移 BLS 小于转移 BGT 大于转移 BLFQ小于等于转移,或不大于转移 大于等于转移,或不小于转移 BLSU不带符号小于转移 BGTU 不带符号大于转移 BLEU不带符号小于等于转移,或不带符号不大于转移 BGEQU不带符号大于等于转移,或不带符号不小于转移 BCC 没有进位转移 BCS 有进位转移 BVC 没有溢出转移 BVS 有溢出转移 程序调用和返回指令 转入子程序 RETURN从子程序返回 本身可以带有条件, 中断控制指令:开中断、关中断、改变屏蔽、中断返回、自陷等 4、输入输出指令 ●主要有:启动、停止、测试、控制设备,数据输入、输出操作等 采用单一的直接寻址方式, 在多用户或多任务环境下,输入输出指令属于特权指令 ●也可以不设置输入输出指令 输入输出设备与主存储器共用同一个零地址空间 2-2
2-2 组合起来:3×2×2=12 种,因逻辑左移与算术左移相同, 移位指令应该有 10 种,分别是: SLAS 单字长算术左移 SRAS 单字长算术右移 SLLS(SRLS) 单字长逻辑左移,或单字长算术左移 SLRS 单字长循环左移 SRRS 单字长循环右移 SLAD 双字长算术左移 SRAD 双字长算术右移 SLLD(SRLD) 双字长逻辑左移,或双字长算术左移 SLRD 双字长循环左移 SRRD 双字长循环右移 • 位操作指令:置位、清位、位测试、找位等 • 字符串指令:比较、查找、匹配、转换等 3、程序控制指令 • 主要包括三类:转移指令、调用和返回指令、循环控制指令 转移条件主要有:零(Z)、正负(N)、进位©、溢出(V)及它们的组合 • 主要条件转移指令有: BEQ 等于零转移 BNEQ 不等于零转移 BLS 小于转移 BGT 大于转移 BLEQ 小于等于转移,或不大于转移 BGEQ 大于等于转移,或不小于转移 BLSU 不带符号小于转移 BGTU 不带符号大于转移 BLEQU 不带符号小于等于转移,或不带符号不大于转移 BGEQU 不带符号大于等于转移,或不带符号不小于转移 BCC 没有进位转移 BCS 有进位转移 BVC 没有溢出转移 BVS 有溢出转移 • 程序调用和返回指令: CALL 转入子程序 RETURN 从子程序返回 本身可以带有条件, 中断控制指令:开中断、关中断、改变屏蔽、中断返回、自陷等 4、输入输出指令 • 主要有:启动、停止、测试、控制设备,数据输入、输出操作等 采用单一的直接寻址方式, • 在多用户或多任务环境下,输入输出指令属于特权指令 • 也可以不设置输入输出指令 输入输出设备与主存储器共用同一个零地址空间
5、处理机控制和调试指令 处理机状态切换指令 处理机至少有两个或两个以上状态 硬件和软件的调试指令 硬件调试指令:钥匙位置、开关状态的读取, 寄存器和主存单元的显示等 软件调试指令:断点的设置、跟踪,自陷井指令等 2.4.2指令系统性能 ·完整性是指应该具备的基本指令种类, 通用计算机的5类基本指令 ·规整性包括对称性和均匀性 对称性:所有寄存器头等对待 操作码的设置等都要对称,如:A-B与B-A 均匀性:不同的数据类型、字长、存储设备、操作种类要设置相同的指令 高效率:指令的执行速度要快 指令的使用频度要高 各类指令之间要有一定的比例 兼容性:在同一系列机内指令系统不变(可以适当增加) 2.4.3指令系统的优化设计 指令系统的优化设计有两个截然相反的方向: 1.复杂指令系统计算机CISC( Complex Instruction Set Computer) 增强指令功能,设置功能复杂的指令 面向目标代码、面向高级语言、面向操作系统 用一条指令代替一串指令 2.精简指令系统计算机RISC( Reduced Instruction Set Computer) 简化指令功能,只保留功能简单的指令 较复杂的功能用子程序来实现 2.5精简指令系统计算机RISC 2.5.1从CISC到RISC 2.5.2RISC的定义与特点 2.5.3RISC的精华 2.5.4RISC的关键技术 2.5.5RISC优化编译技术 2.5.1从CISC到RISC ·70年代,指令系统已经非常庞大,指令功能相当复杂
2-3 5、处理机控制和调试指令 • 处理机状态切换指令 处理机至少有两个或两个以上状态 • 硬件和软件的调试指令 硬件调试指令:钥匙位置、开关状态的读取, 寄存器和主存单元的显示等 软件调试指令:断点的设置、跟踪,自陷井指令等 2.4.2 指令系统性能 • 完整性是指应该具备的基本指令种类, 通用计算机的 5 类基本指令 • 规整性包括对称性和均匀性 对称性:所有寄存器头等对待 操作码的设置等都要对称,如:A-B 与 B-A 均匀性:不同的数据类型、字长、存储设备、操作种类要设置相同的指令 • 高效率:指令的执行速度要快 指令的使用频度要高 各类指令之间要有一定的比例 • 兼容性:在同一系列机内指令系统不变(可以适当增加) 2.4.3 指令系统的优化设计 指令系统的优化设计有两个截然相反的方向: 1.复杂指令系统计算机 CISC(Complex Instruction Set Computer) 增强指令功能,设置功能复杂的指令 面向目标代码、面向高级语言、面向操作系统 用一条指令代替一串指令 2.精简指令系统计算机 RISC(Reduced Instruction Set Computer) 简化指令功能,只保留功能简单的指令 较复杂的功能用子程序来实现 2.5 精简指令系统计算机 RISC 2.5.1 从 CISC 到 RISC 2.5.2 RISC 的定义与特点 2.5.3 RISC 的精华 2.5.4 RISC 的关键技术 2.5.5 RISC 优化编译技术 2.5.1 从 CISC 到 RISC • 70 年代,指令系统已经非常庞大,指令功能相当复杂
机型IBM370/168VAx-11 APX 432 Dorado (生产年代)(1973) (1978) (1982) (1978) 指令种类 208 303 222 270 微程序容量 420K 480K 64K 136K 指令长度 16-48 16-456 6-321 8-24 采用的工艺 ECL MSITTL MSI「 NMOS VLSIECLMSI 存储器存储器存储器存储器面向堆栈 存器寄存器寄存器寄荐存储器存储器面向堆栈 指令操作类型存储器寄存器存储器寄存器 Cache容量 64KB 64KB 0 64KB ·1975年,IBM公司率先组织力量,开始研究指令系统的合理性问题 1979年研制出世界上第一台采用RISC思想的计算机IBM801, 1986年,IBM正式推出采用RISC体系结构的工作站 IBM RT PC, CISC指令系统存在的问题: (1979年,美国加洲伯克利分校 David Patterson) 1、20%与80%规律 CISC中,大约20%的指令占据了80%的处理机时间 Intel8088处理机指令系统使用频度和执行时间统计 (C语言编译程序和 PROLOG解释程序) 使用频度 执行时间 序号指令%累计%序号指令%累%
2-4 机 型 (生产年代) IBM370/168 (1973) VAX-11 (1978) iAPX 432 (1982) Dorado (1978) 指令种类 208 303 222 270 微程序容量 420K 480K 64K 136K 指令长度 16-48 16-456 6-321 8-24 采用的工艺 ECL MSI TTL MSI NMOS VLSI ECL MSI 指令操作类型 存储器-存储器 存储器-寄存器 寄存器-寄存器 存储器-存储器 存储器-寄存器 寄存器-寄存器 面向堆栈 存储器-存储器 面向堆栈 Cache 容量 64KB 64KB 0 64KB • 1975 年,IBM 公司率先组织力量,开始研究指令系统的合理性问题。 1979 年研制出世界上第一台采用 RISC 思想的计算机 IBM 801, 1986 年,IBM 正式推出采用 RISC 体系结构的工作站 IBM RT PC, CISC 指令系统存在的问题: (1979 年,美国加洲伯克利分校 David Patterson) 1、20%与 80%规律 CISC 中,大约 20%的指令占据了 80%的处理机时间。 Intel 8088 处理机指令系统使用频度和执行时间统计 (C 语言编译程序和 PROLOG 解释程序) 使用频度 执行时间 序号 指令 % 累计% 序号 指令 % 累%
MOV 24.85 24.85 IMUL 19.55 19.55 PUSH 10.3635.212Mov 7.4436.99 10.2845493PSH|1.1148.10 23456789012 JMPcc9.03 54.524JMcc10.5558.65 ADD POP 65.466|CALL7.27 73.72 RET 69.38 7 RET 78.57 CALL 73.278 DD 3.27 81.84 JUMP 2.70 75.97 9 JMP 85.10 0 SUB 2.43 78.4010|LES 87.93 INC 2.37 80.77 11 POP 2.61 90.54 PN1.92 84.67 14IML1.69 86.3614|XOR 94.25 15 DEC 1.37 87.73|15|INC 95.24 16 XOR 16 LOOP 0.64 17 REPNZ078 89.64 17 LDS 0.64 18CLD 0.54 90.18 18|cMPS0.44 19 LOOPcc 0.52 90.7019MVs0.39 97.35 TEST 0.40 91.10 20 JCXZ037 97.72 8088处理机的指令种类大约100种。 前11种指令的使用频度,前8种指令的运行时间就已经超过了80%, 前20种(20%)指令的使用频度达到91.1%,运行时间达到97.72%, 其余80%指令的使用频度只有8.9%,只占2.28%的处理机运行时间。 2、ⅥSI技术的发展引起的问题 ⅥLSI工艺要求规整性,RISC正好适应了ⅥSI工艺的要求 ·主存与控存的速度相当 简单指令没有必要用微程序实现, 复杂指令用微程序实现与用简单指令组成的子程序实现没有多大区别 由于ⅥSI的集成度迅速提高,使得生产单芯片处理机成为可能 3、软硬件的功能分配问题 ·复杂的指令使指令的执行周期大大加长。 般CISC处理机的指令平均执行周期都在4以上,有些在10以上, ·在CISC中,增强指令系统功能,简化了软件,硬件复杂了 ·1981年, Patterson等人研制了32位的 RISC I微处理器。 总共31种指令,3种数据类型,两种寻址方式 研制周期10个月,比当时最先进的M68000和Z8002快3至4倍, 1983年,又研制了 RISC II, 指令种类扩充到39种,单一的变址寻址方式,通用寄存器138个。 2.5.2RISC的定义与特点 ·卡内基梅隆 Carnegie Mellon)大学论述RISC特点:
2-5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 MOV PUSH CMP JMPcc ADD POP RET CALL JUMP SUB INC LES REPN IMUL DEC XOR REPNZ CLD LOOPcc TEST 24.85 10.36 10.28 9.03 6.80 4.14 3.92 3.89 2.70 2.43 2.37 1.98 1.92 1.69 1.37 1.13 0.78 0.54 0.52 0.40 24.85 35.21 45.49 54.52 61.32 65.46 69.38 73.27 75.97 78.40 80.77 82.75 84.67 86.36 87.73 88.86 89.64 90.18 90.70 91.10 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 IMUL MOV PUSH JMPcc CMP CALL RET ADD JMP LES POP DEC SUB XOR INC LOOPcc LDS CMPS MOVS JCXZ 19.55 17.44 11.11 10.55 7.80 7.27 4.85 3.27 3.26 2.83 2.61 1.49 1.18 1.04 0.99 0.64 0.64 0.44 0.39 0.37 19.55 36.99 48.10 58.65 66.45 73.72 78.57 81.84 85.10 87.93 90.54 92.03 93.21 94.25 95.24 95.88 96.52 96.96 97.35 97.72 8088 处理机的指令种类大约 100 种。 前 11 种指令的使用频度,前 8 种指令的运行时间就已经超过了 80%, 前 20 种(20%)指令的使用频度达到 91.1%,运行时间达到 97.72%, 其余 80%指令的使用频度只有 8.9%,只占 2.28%的处理机运行时间。 2、VLSI 技术的发展引起的问题 • VLSI 工艺要求规整性,RISC 正好适应了 VLSI 工艺的要求。 • 主存与控存的速度相当, 简单指令没有必要用微程序实现, 复杂指令用微程序实现与用简单指令组成的子程序实现没有多大区别。 由于 VLSI 的集成度迅速提高,使得生产单芯片处理机成为可能。 3、软硬件的功能分配问题 • 复杂的指令使指令的执行周期大大加长。 一般 CISC 处理机的指令平均执行周期都在 4 以上,有些在 10 以上, • 在 CISC 中,增强指令系统功能,简化了软件,硬件复杂了。 • 1981 年,Patterson 等人研制了 32 位的 RISC I 微处理器。 总共 31 种指令,3 种数据类型,两种寻址方式。 研制周期 10 个月,比当时最先进的 MC68000 和 Z8002 快 3 至 4 倍, • 1983 年,又研制了 RISC II, 指令种类扩充到 39 种,单一的变址寻址方式,通用寄存器 138 个。 2.5.2 RISC 的定义与特点 • 卡内基梅隆 Carnegie Mellon)大学论述 RISC 特点: