计算机系统结构第2章.ppt

上传人:本田雅阁 文档编号:2922584 上传时间:2019-06-06 格式:PPT 页数:146 大小:425.02KB
返回 下载 相关 举报
计算机系统结构第2章.ppt_第1页
第1页 / 共146页
计算机系统结构第2章.ppt_第2页
第2页 / 共146页
计算机系统结构第2章.ppt_第3页
第3页 / 共146页
计算机系统结构第2章.ppt_第4页
第4页 / 共146页
计算机系统结构第2章.ppt_第5页
第5页 / 共146页
点击查看更多>>
资源描述

《计算机系统结构第2章.ppt》由会员分享,可在线阅读,更多相关《计算机系统结构第2章.ppt(146页珍藏版)》请在三一文库上搜索。

1、2.1 数据表示 2.2 寻址技术 2.3 指令格式的优化设计 2.4 指令系统的功能设计 2.5 RISC指令系统 2.6 VLIW指令系统,第2章 指 令 系 统,在机器上直接运行的程序是由指令组成的。 指令系统是软件与硬件之间的一个主要分界面,也是他们之间互相沟通的一座桥梁。 硬件设计人员采用各种手段实现指令系统,而软件设计人员则使用这些指令系统编制系统软件和应用软件,用这些软件来填补指令系统与人们习惯的使用方式之间的语义差距。 指令系统设计必须由软件设计人员和硬件设计人员共同来完成。 指令系统发展相当缓慢,需要用软件来填补的东西也就越来越多。,本章主要内容有三大方面: 数据表示 寻址技

2、术 指令系统设计 有三种类型的指令系统: CISC:复杂指令系统 RISC:精简指令系统 VLIW:超长指令字 指令系统设计: 指令的格式设计 指令系统的功能设计 指令系统的性能评价,2.1 数据表示,2.1.1 数据表示与数据类型 2.1.2 浮点数的表示方法 2.1.3 浮点数格式设计 2.1.4 浮点数的舍入处理 2.1.5 警戒位的设置方法 2.1.6 自定义数据表示,2.1.1 数据表示与数据类型,数据表示的定义: 数据表示是指计算机硬件能够直接识别,可以被指令系统直接调用的那些数据类型。 例如:定点、逻辑、浮点、十进制、字符、字符串、堆栈和向量等 数据类型:文件、图、表、树、阵列、

3、队列、链表、栈、向量、串、实数、整数、布尔数、字符等 确定哪些数据类型用数据表示实现,是软件与硬件的取舍问题,确定数据表示的原则 一是缩短程序的运行时间 二是减少CPU与主存储器之间的通信量 三是这种数据表示的通用性和利用率 数据表示在不断发展 例如:矩阵、树、图、表及自定义数据表示 等已经开始用于数据表示中 例:计算CAB,其中,A、B、C均为 200200的矩阵。分析采用向量数据表示 的作用。,解:如果在没有向量数据表示的计算机上实现,一般需要6条指令,其中有4条指令要循环4万次。因此,CPU与主存储器之间的通信量: 取指令:2440,000条, 读或写数据:340,000个, 共要访问主

4、存储器:740,000次以上 如果有向量数据表示,只需要一条指令。 减少访问主存(取指令)次数440,000次 用软件和硬件结合的方法实现新的数据表示 用字节编址支持字符串数据表示 用变址寻址方式来支持向量数据表示,1. 浮点数的表示方式 两个数值: 尾数m:数制(小数或整数)和码制(原码或补码) 阶码e:整数, 移码(偏码、增码、余码)或补码 两个基值: 尾数基值rm:2、4、8、16和10进制等 阶码基值re: 通常为2进制,2.1.2 浮点数的表示方法,两个字长:长度和物理位置,均不包括符号位 尾数长度p:尾数部分按基值计算的长度 阶码长度q:阶码部分的二进制位数,2. 浮点数的表数范围

5、 尾数为原码、小数,阶码用移码、整数时, 规格化浮点数N的表数范围: 尾数为补码,负数区间的表数范围为: 浮点数在数轴上的分布情况,3. IEEE754浮点数国际标准 32位单精度浮点数格式如下: 阶码用移-127码表示,即阶码的0255分别表示阶码的真值为-127128。 尾数用原码、小数,1位符号位、23位小数和1位隐藏的整数共25位表示。 尾数和阶码的基值都是2。 64位双精度浮点数,阶码用11位移码表示,4. 浮点数的表数精度(误差) 产生误差的根本原因是浮点数的不连续性 误差产生的直接原因有两个: (1) 两个浮点数都在浮点集内,而运算结果却可能不在这个浮点集内 (2) 数据从十进制

6、转化为2、4、8、16进制,产生误差。 规格化浮点数的精度为: 最后1个有效位的可信度为一半 当rm2时,有:,5. 浮点数的表数效率 浮点数是一种冗余数制(Redundat Number System) 浮点数的表数效率定义为: 简化表示: 当尾数基值为2时,浮点数的表数效率为:,浮点数的表数效率随rm增大 当尾数基值rm16时,浮点数的表数效率为: 尾数基值rm16与rm2相比,浮点数的表数效率提高了:,2.1.3 浮点数格式设计,1. 浮点数格式设计的主要问题 在表示浮点数的6个参数中,只有尾数基值rm、尾数长度p和阶码长度q与表数范围、表数精度和表数效率有关 在字长确定的情况下,如何选

7、择尾数基值rm, 使表数范围最大、表数精度和表数效率最高,2. 浮点数格式设计原则 定义浮点数格式的6个参数,确定原则如下: 尾数:多数机器用原码、小数表示 采用原码表示:加减法比补码表示复杂,乘除法比补码简单,而且非常直观。 采用小数表示能简化运算,特别是乘法和除法运算。 阶码:一般机器用整数、移码表示 采用移码表示的主要原因是:浮点0与机器0一致。阶码进行加减运算时,移码的加减法运算要比补码复杂,基值: 尾数的基值rm2, 阶码的基值re2, 采用隐藏位表示方式能够使规格化浮点数的表数效率达到100(当rm2时) 浮点数格式设计的关键问题是: 在表数范围和表数精度给定的情况下,如何确定最短

8、的尾数字长p和阶码字长q,并根据总字长的要求,恰当分配p与q,2.1.4 浮点数的舍入处理,浮点数要进行舍入处理的原因是: (1)十进制数转化为浮点数时,有效位长度超过给定的尾数字长。 (2)两个浮点数的加减乘除结果,尾数长度超过给定的尾数字长。 舍入处理要解决的问题是: 把规格化尾数的pg位处理成只有p位。 其中:p是浮点数表示方式给定的尾数字长, g是超过给定尾数字长的部分。,舍入方法的主要性能标准是: 绝对误差小, 积累误差小, 容易实现。 进行舍入处理时要注意的问题是: 必须先规格化,然后再舍入,否则舍入是没有意义的。 在计算积累误差时,要同时考虑到正数区和负数区的情况。,方法1:恒舍

9、法 又称截断法、必舍法等 优缺点:实现非常容易。误差大,正负区误差相反,但同一区误差积累。,方法2:恒置法 恒置r/2法、冯诺依曼法 规则:把有效字长的最低一位置成r/2。 优缺点:实现比较容易,积累误差较小,正负区误差平衡。精度比较低。,方法3:下舍上入法 4舍5入法、0舍1入法等 优缺点:精度高,积累误差小,正负区误差完全平衡。实现起来比较困难。,关于舍入方法的主要结论: 恒置法虽有少量的积累误差,且损失一位精度,但由于实现很容易,普遍在小型微型机中使用。 下舍上入法只有少量积累误差,且精度比较高,但实现很复杂,用于软件实现的算法中。,2.1.5 警戒位的设置方法,在规定的尾数字长之外,运

10、算器中的累加器需要另外增加的长度称为警戒位(Guard Bit) i) 不设置警戒位,可能出现很大的误差 ii) 警戒位的用处只有两个: (1) 用于左规格化时移入尾数有效字长内。 (2) 用于舍入。,警戒位的来源有以下几个方面: (1) 做加、减法时,因对阶从有效字长内移出去的部分。 (2) 做乘法时,双倍字长乘积的低字长部分。 (3) 做除法时,因没有除尽而多上商的几位。 (4) 右规格化时移出有效字长的那部分。 (5) 从十进制转换成二进制时,尾数超出有效字长的部分。,2.1.6 自定义数据表示,一般处理机中的数据表示方法 数据存储单元(寄存器、主存储器、外存储器等)只存放纯数据,数据的

11、属性通过指令中的操作码来解释: 数据的类型,如定点、浮点、字符、字符串、逻辑数、向量等; 进位制,如2进制、10进制、16进制等; 数据字长,如字、半字、双字、字节等; 寻址方式,如直接寻址、间接寻址、相对寻址、寄存器寻址等;,数据的功能,如地址、地址偏移量、数值、控制字、标志等; 同一种操作(如加法)通常有很多条指令。 在高级语言和应用软件中 数据的属性由数据自己定义; 在高级语言与机器语言之间的语义差距,要靠编译器等填补。 Burroughs公司在大型机中引入自定义数据表示方式和带标志符的数据表示方式,1. 带标志符的数据表示法 在B5000大型机中,每个数据有一位标志符 在B6500和B

12、7500大型机中,每个数据有三位 标志符 在R-2巨型机中采用10位标志符,R-2巨型机中的标志符 功能位:操作数、指令、地址、控制字 陷井位:由软件定义四种捕捉方式 封写位:指定数据是只读的还是可读可写 类型位:二进制,十进制,定点数,浮点数,复数,字符串,单精度,双精度;绝对地址、相对地址、变址地址、未连接地址等。 标志符由编译器或其它系统软件建立,对程序员透明 程序(包括指令和数据)的存储量分析 数据存储量增加,指令存储量减少。,常规数据表示方法 与 带标志符数据表示方法 的 比较,采用标志符数据表示方法的主要优点: (1)简化了指令系统。 (2)由硬件实现一致性检查和数据类型转换。 (

13、3)简化程序设计,缩小了人与计算机之间的语义差距。 (4)简化编译器,使高级语言与机器语言之间的语义差距大大缩短。 (5)支持数据库系统,一个软件不加修改就可适用于多种数据类型。 (6)方便软件调试,在每个数据中都有陷井位。,采用标志符数据表示方法的主要缺点: (1)数据和指令的长度可能不一致 可以通过精心设计指令系统来解决。 (2)指令的执行速度降低 但是,程序的运行时间是由设计时间、编译时间和调试时间共同组成的。 采用标志符数据表示方法,程序的设计时间、编译时间和调试时间可以缩短。 (3)硬件复杂度增加 由硬件实现一致性检查和数据类型的转换。,2. 数据描述符表示法 数据描述符与标志符的区

14、别:标志符只作用于一个数据,而数据描述符要作用于一组数据。 Burroughs公司生产的B-6700机中采用的数据描述符表示方法。 最高三位为101时表示数据描述符, 最高三位为000时表示数据。,例: 用数据描述符表示方法 表示一个34的矩阵:,2.2 寻址技术,寻找操作数及其地址的技术称为寻址技术 2.2.1 编址方式 2.2.2 寻址方式 2.2.3 定位方式 重点:寻址方式的选择,2.2.1 编址方式,对各种存储设备进行编码的方法。 主要内容:编址单位、零地址空间个数、并行存储器的编址、输入输出设备的编址 1. 编址单位 常用的编址单位:字编址、字节编址、位编址、块编址等 编址单位与访

15、问字长 一般:字节编址,字访问 部分机器:位编址,字访问 辅助存储器:块编址,位访问,字节编址字访问的优点: 有利于符号处理 字节编址字访问的问题: (1) 地址信息浪费 对于32位机器,浪费2位地址(最低2位地址) 对于64位机器,浪费3位地址 (2) 存储器空间浪费 (3) 读写逻辑复杂 (4) 大端(Big Endin)与小端(Little Endian)问题,(2)存储器空间浪费,读一个字节 用多路选择器,写一个字节 先读后写,(3)读写逻辑复杂 增加1个align操作,(4)大端(Big Endin)与小端(Little Endian)问题,2. 零地址空间个数 三个零地址空间:通用

16、寄存器、主存储器、输入输出设备独立编址 两个零地址空间:主存储器与输入输出设备统一编址 一个零地址空间:最低端是通用寄存器,最高端是输入输出设备,中间为主存储器 隐含编址方式:堆栈、Cache等 3. 并行存储器的编址技术 高位交叉编址:主要用来扩大存储器容量。 低位交叉编址:主要是提高存储器速度。,4. 输入输出设备的编址 一台设备一个地址:通过指令来区分地址,地址内部区分地址。 一台设备两个地址:数据寄存器、状态或控制寄存器。 多个编址寄存器共用同一个地址的方法: 依靠地址内部来区分,适用于被编址的寄存器的长度比较短 “下跟法”隐含编址方式,必须按顺序读写寄存器。 一台设备多个地址:增加编

17、程的困难,2.2.2 寻址方式,寻找操作数及数据存放地址的方法 1. 寻址方式的设计思想 立即数寻址方式 用于数据比较短,且为源操作数的场合 面向寄存器的寻址方式 OPC R OPC R, R OPC R, R, R OPC R, M,面向主存储器的寻址方式: 直接寻址、间接寻址、变址寻址、相对寻址 基址寻址、自动变址、 OPC M OPC M, M OPC M, M, M 面向堆栈的寻址方式: OPC ;运算型指令 OPC M ;数据传送型指令,2. 寄存器寻址 主要优点:指令字长短,指令执行速度快,支持向量和矩阵等运算 主要缺点:不利于优化编译,现场切换困难,硬件复杂 3. 堆站寻址方式

18、主要优点:支持高级语言,有利与编译程序,节省存储空间,支持程序的嵌套和递归调用,支持中断处理 主要缺点:运算速度比较低,栈顶部分设计成一个高速的寄存器堆,4. 间接寻址方式与变址寻址方式的比较 目的相同:都是为了解决操作数地址的修改 原则上,一种处理机中只需设置间址寻址方式与变址寻址方式中的任何一种即可,有些处理机两种寻址方式都设置 如何选取间址寻址方式与变址寻址方式? 例2.15:一个由N个元素组成的数组,已经存放在起始地址为AS的主存连续单元中,现要把它搬到起始地址为AD的主存连续单元中。不必考虑可能出现的存储单元重叠问题。为了编程简单,采用一般的两地址指令编写程序。,用间接寻址方式编写程

19、序如下: START: MOVE ASR, ASI ;保存源起始地址 MOVE ADR, ADI ;保存目标起始地址 MOVE NUM, CNT ;保存数据的个数 LOOP: MOVE ASI,ADI ;传送一个数据 INC ASI ;源数组的地址增量 INC ADI ;目标数组地址增量 DEC CNT ;个数减1 BGT LOOP ;测试数据传送完? HALT ;停机,ASR: AS ;源数组的起始地址 ADR: AD ;目标数组的起始地址 NUM: N ;需要传送的数据个数 ASI: 0 ;当前正在传送的源 ;数组地址 ADI: 0 ;当前正在传送的目标 ;数组地址 CNT: 0 ;剩余数

20、据的个数,用变址寻址方式编写程序如下: START: MOVE AS, X ;取源数组起始地址 MOVE NUM, CNT ;保存数据个数 LOOP: MOVE (X),AD-AS(X);传送一个数据 INC X ;增量变址寄存器 DEC CNT ;个数减1 BGT LOOP ;测试数据传送完成 HALT ;停机 NUM: N ;传送的数据个数 CNT: 0 ;剩余数据的个数,主要优缺点比较: (1)采用变址寻址方式编写的程序简单、易读。 (2)对于程序员,两种寻址方式的主要差别是: 间址寻址:间接地址在主存中,没有偏移量 变址寻址:基地址在变址寄存器中, 有偏移量 (3)实现的难易程度:间址

21、寻址方式容易实现 (4)指令的执行速度:间址寻址方式慢 (5)对数组运算的支持:变址寻址方式比较好 自动变址:在访问间接地址时,地址自动增减 前变址与后变址:变址与间址混合时 前变址寻址方式:EA(X)A) 后变址寻址方式:EA(X)(A),2.2.3 定位方式,程序的主存物理地址在什么时间确定?采用什么方式来实现? 程序需要定位的主要原因: 程序的独立性 程序的模块化设计 数据结构在程序运行过程中,其大小往往是变化的 有些程序本身很大,大于分配给它的主存物理空间,主要的定位方式 直接定位方式:在程序装入主存储器之前,程序中的指令和数据的主存物理就已经确定了的称为直接定位方式。 静态定位:在程

22、序装入主存储器的过程中随即进行地址变换,确定指令和数据的主存物理地址的称为静态定位方式。 动态定位:在程序执行过程中,当访问到相应的指令或数据时才进行地址变换,确定指令和数据的主存物理地址的称为动态定位方式。,2.3 指令格式的优化设计,主要目标:节省程序的存储空间 指令格式尽量规整,便于译码 2.3.1 指令的组成 2.3.2 操作码的优化设计 2.3.3 地址码的优化设计 2.3.4 指令格式设计举例,2.3.1 指令的组成,一般的指令主要由两部分组成: 操作码和地址码 地址码通常包括三部分内容: 地址:地址码、立即数、寄存器、变址寄存器 地址的附加信息:偏移量、块长度、跳距 寻址方式:直

23、接寻址、间接寻址、立即数寻址、变址寻址、相对寻址、寄存器寻址,操作码主要包括两部分内容: 操作种类:加、减、乘、除、数据传送、移位、转移、输入输出、程序控制、处理机控制等 操作数描述: 数据的类型:定点数、浮点数、复数、字符、字符串、逻辑数、向量 进位制:2进制、10进制、16进制 数据字长:字、半字、双字、字节,2.3.2 操作码的优化表示,操作码的三种编码方法: 固定长度、Huffman编码、扩展编码 优化操作码编码的目的:节省程序存储空间 例如:Burroughs公司的B-1700机,1. 固定长操作码 定长定域: IBM公司的大中型机:最左边8位为操作码 Intel公司的Intaniu

24、m处理机:14位定长操作码 许多RISC处理机采用定长操作码 主要优点: 规整 译码简单 主要缺点: 浪费信息量(操作码的总长位数增加),2. Huffman编码法 1952年由Huffman首先提出 操作码的最短平均长度可通过如下公式计算: pi表示第i种操作码在程序中出现的概率 固定长编码相对于Huffman编码的信息冗余量: 必须知道每种操作码在程序中出现的概率,例:假设一台模型计算机共有7种不同的操作码,如果采用固定长操作码需要3位。已知各种操作码在程序中出现的概率如下表,计算采用Huffman编码法的操作码平均长度,并计算固定长操作码和Huffman操作码的信息冗余量。,解答: 利用

25、Huffman树进行操作码编码 (又称最小概率合并法) 把所有指令按照操作码在程序中出现的概率大小,自左向右顺序排列。 选取两个概率最小的结点合并成一个概率值是二者之和的新结点,并把这个新结点与其它还没有合并的结点一起形成一个新的结点集合。,在新结点集合中选取两个概率最小的结点进行合并,如此继续进行下去,直至全部结点合并完毕。 最后得到的根结点的概率值为1。 每个新结点都有两个分支,分别用带有箭头的线表示,并分别用一位代码“0”和“1”标注。 从根结点开始,沿尖头所指方向寻找到达属于该指令概率结点的最短路径,把沿线所经过的代码排列起来就得到了这条指令的操作码编码。,利用Huffman树进行操作

26、码编码,利用Huffman树进行操作码编码,利用Huffman树进行操作码编码,利用Huffman树进行操作码编码,利用Huffman树进行操作码编码,利用Huffman树进行操作码编码,利用Huffman树进行操作码编码,利用Huffman树进行操作码编码,Huffman操作码编码,解:采用Huffman编码法的操作码平均长度为: 0.4510.3020.153 0.0540.0350.0160.016 1.97(位) 操作码的最短平均长度为: 0.451.1520.301.737 0.152.7370.054.322 0.035.0590.016.644 0.016.6441.95(位),

27、采用3位固定长操作码的信息冗余量为: Huffman编码法的信息冗余量仅为: 与3位固定长操作码的信息冗余量35相比要小得多,3. 扩展编码法 Huffman操作码的主要缺点: 操作码长度很不规整,硬件译码困难 与地址码共同组成固定长的指令比较困难 扩展编码法:由固定长操作码与Huffman编码法相结合形成 例2.18:将例2.17改为1-2-3-5扩展编码法,操作码最短平均长度为: H0.4510.3020.153 (0.050.030.010.01)52.00 信息冗余量为:,例:将例2.17改为2-4等长扩展编码法,操作码最短平均长度为: H(0.450.300.15)2 (0.050.

28、030.010.01)4 2.20 2-4等长扩展编码法信息冗余量为:,2.3.3 地址码的优化表示,1. 地址码个数的选择 地址码个数通常有3个、2个、1个及个等4种情况 评价指令中地址码个数应该取多少的标准主要有两个: 程序存储容量,包括操作码和地址码 程序执行速度,以程序执行过程中访问主存的信息量代表 通过一个典型例子来分析:,例如:计算一个典型的算术表达式: 用三地址指令编写的程序如下: 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 ;

29、最后结果在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

30、;最后结果存入X中,用一地址指令编写的程序: LOAD E ;先计算分母, ;取一个操作数到累加器中 ADD F ;分母运算结果在累加器中 STORE X ;保存分母运算结果到X中 LOAD A ;开始计算分子 MUL B ADD C SUB D ;累加器中是分子运算结果 DIV X ;最后运算结果在累加器中 STORE X ;保存最后运算结果到X中,用0地址指令编写程序: ab*c+d-ef+/ PUSH A ;操作数a压入堆栈 PUSH B ;操作数b压入堆栈 MUL ;栈顶两数相乘,结果压回堆顶 PUSH C ADD PUSH D SUB ;栈顶是分子运算的结果 PUSH E PUSH

31、F ADD DIV ;栈顶是最后运算的结果 POP X ;保存最后运算结果,关于地址码个数结论: 对于一般商用处理机,采用多寄存器结构的二地址指令是最理想的。 如果强调硬件结构简单,并且以连续运算(如求累加和等)为主,宜采用一地址结构。 对于以向量、矩阵运算为主的处理机,最好采用三地址结构。 部分RISC处理机也采用三地址指令。 对于解决递归问题为主的处理机,宜采用零地址结构。编程容易、节省程序存储量。,2. 缩短地址码长度的方法 用一个短地址码表示一个大地址空间 用间址寻址方式缩短地址码长度 方法:在主存储器的低端开辟一个专门存放间接地址的区域 用变址寻址方式缩短地址码长度 变址寻址方式中的

32、地址偏移量比较短, 用寄存器间接寻址方式缩短地址码长度 例如:16个间址寄存器,用4位地址码就能表示很长的逻辑地址空间。,2.4 指令系统的功能设计,2.4.1 基本指令系统 通用计算机必须有5类基本指令 2.4.2 指令系统的性能 完整性、规整性、高效率和兼容性 2.4.3 指令系统的优化设计 CISC、RISC和VLIW,2.4.1 基本指令系统,通用计算机必须有类基本指令 数据传送类指令 运算类指令 程序控制指令 输入输出指令 处理机控制和调试指令,1. 数据传送类指令 由如下三个主要因素决定: (1)数据存储设备的种类 (2)数据单位:字、字节、位、数据块等 (3)采用的寻址方式 例如

33、,考虑数据存储设备的种类: 寄存器寄存器 寄存器主存储器 寄存器堆栈 主存储器寄存器 主存储器主存储器 主存储器堆栈 堆栈寄存器 堆栈主存储器,2. 运算类指令 : 考虑四个因数的组合: 操作种类:加、减、乘、除、与、或、非、异或、比较、移位、检索、转换、匹配、清除、置位等 数据表示:定点、浮点、逻辑、十进制、字符串、向量等 数据长度:字、双字、半字、字节、位、数据块等 数据存储设备:寄存器、主存储器、堆栈等,以寄存器加法指令为例,一般设置如下几种: 寄存器-寄存器型的定点单字长加法指令 寄存器-寄存器型的定点双字长加法指令 寄存器-寄存器型的定点半字加法指令 寄存器-寄存器型的字节加法指令

34、寄存器-寄存器型的浮点单字长加法指令 寄存器-寄存器型的浮点双字长加法指令 寄存器-寄存器型的单字长逻辑加法指令 寄存器-寄存器型的定点向量加法指令 寄存器-寄存器型的浮点向量加法指令,以移位指令为例: 需要组合以下三个因素: (1)移位方向:左移(L)、右移(R) (2)移位种类:算术移位(A)、逻辑移位(L)、 循环移位(R) (3)移位长度:单字长(S)、双字长(D) 组合起来共有:32212种, 其中,逻辑左移与算术左移相同 一般机器中要设置10条移位指令,一般机器中要设置10条移位指令 SLAS 单字长算术左移 SRAS 单字长算术右移 SLLS(SRLS)单字长逻辑左移,单字长算术

35、左移 SLRS 单字长循环左移 SRRS 单字长循环右移 SLAD 双字长算术左移 SRAD 双字长算术右移 SLLD(SRLD)双字长逻辑左移,双字长算术左移 SLRD 双字长循环左移 SRRD 双字长循环右移,3. 程序控制指令 有多种转移指令: 无条件转移,条件转移指令 调用与返回指令 循环控制指令 转移条件: 零(Z)、正负(N)、进位(C)、溢出(V)及其组合 由条件转移指令之前的指令产生条件码 由条件转移指令本身产生转移条件 多组条件码 条件转移指令举例,一般条件转移指令 条件码由转移指令之前的指令产生, 对指令流水线的影响小。 例如: BEQ ADR ;等于零转移 BLS ADR

36、 ;小于转移 BLEQ ADR ;小于等于转移 BLSU ADR ;不带符号小于转移 BLEQU ADR ;不带符号小于等于转移 BCC ADR ;没有进位转移 BVC ADR ;没有溢出转移,复合条件转移指令 代替2条指令,首先进行运算,并根据运算的结果决定是否转移 不需要条件码,与高级语言一致。 例如: DNB R ADR ;R(R)-1,如果R0转移 INB R ADR ;R(R)+1,如果R0转移 JEQ R1,R2,ADR ;如果(R1)=(R2)转移 JAD EQ,Rd,Rs,ADR ;Rd(Rd)+(Rs), ;如果(Rd)=0转移,循环控制指令 用1条指令完成循环的控制 代替3

37、条指令的功能:运算、比较和转移。 例如: JL Rs,Rz,Ri,ADR Rs中存放循环变量,Rz中存放循环终值,Ri中存放循环的步长。 地址个数太多时,可以把其中的1个或几个地址隐含起来。例如,在IBM370下列机中,Ri隐含,循环步长放在与Rz紧相邻的下一寄存器中。,隐含转移指令 应用场合:用于特殊的IFTHEN结构中,THEN部分只有一条指令 实现方法:把IF条件取反,如果取反后的条件成立则取消下条指令,否则执行下条指令。 例子:IF (ab)THEN bb1 COMP =,Ra,Rb ;若(Ra)=(Rb)则取消 INC Rb 达到的效果: 不需要专门的转移指令, 程序执行效率高。,程

38、序调用和返回指令 本身可以不带条件,也可以带有条件 CALL 转入子程序 RETURN 从子程序返回 CALL CC 当条件CC满足时转入子程序 RETURN CC 当条件CC满足时从子程序返回 中断控制指令: 开中断、关中断 改变屏蔽 中断返回 自陷等,4. 输入输出指令 启动、停止、测试设备,数据输入、输出等 采用单一的直接寻址方式, 在多用户或多任务环境下,输入输出指令属于特权指令 5. 处理机控制和调试指令 处理机状态切换指令,处理机有多个状态 硬件和软件的调试指令 硬件调试指令:开关状态读取等 软件调试指令:断点设置、跟踪,自陷指令等,2.4.2 指令系统的性能,完整性、规整性、高效

39、率和兼容性 1. 完整性是指应该具备的基本指令种类 如:通用计算机必须有类基本指令 2. 规整性包括对称性和均匀性 对称性:所有的寄存器同等对待 操作码的设置等都要对称,如A-B与B-A 均匀性:不同的数据类型、字长、存储设备、操作种类要设置相同的指令,3. 高效率: 指令的执行速度要快 指令的使用频度要高 各类指令要有一定的比例 如:运算类指令占40%以上, 数据传送类指令占30%等。 4. 兼容性: 在同一系列机内,指令系统,包括寻址方式和数据表示等保持基本不变; 可以适当增加指令、增加寻址方式,增加数据表示等;但不能减少任何已有的。,2.4.3 指令系统的优化设计,优化指令系统设计的3个

40、阶段: CISC:复杂指令系统 60年代至70年代中期 RISC:精简指令系统 70年代后期至现在 VLIW: 80年代初期至现在 关键在软硬件的功能分配,系统的综合性能 时间与空间;执行、编译、编写时间。,1. 复杂指令系统计算机 CISC(Complex Instruction Set Computer) 方法:用一条指令代替一串指令 增加新的指令 增强指令功能,设置功能复杂的指令 增加寻址方式 增加数据表示方式 优化的途径: 面向目标代码 面向高级语言 面向操作系统,2. 精简指令系统计算机 RISC(Reduced Instruction Set Computer) 只保留功能简单的指

41、令, 功能较复杂的指令用软件实现, 提高流水线效率 3. 超长指令字 VLIW (Very Long Instruction Word) 一种显式指令级并行指令系统 二维程序结构 指令级并行度高,2.5 RISC指令系统,三类指令系统:CISC、RISC、VLIW 2.5.1 从CISC到RISC 2.5.2 RISC的定义与特点 2.5.3 RISC思想的精华 2.5.4 RISC的关键技术,2.5.1 从CISC到RISC,70年代,指令系统已经非常复杂,1975年,IBM公司率先组织力量开始研究指令系统的合理性问题 1979年研制出世界上第一台采用RISC思想的计算机IBM 801 19

42、86年,IBM正式推出采用RISC体系结构的工作站IBM RT PC CISC指令系统存在的问题: 1979年,美国加洲伯克利分校 David Patterson 提出:,1. 20与80规律 在CISC中,大约20的指令占据了80的处理机执行时间。 例如:8088处理机的指令种类大约100种 前11种(11)指令的使用频度已经超过80 前8种(8)指令的运行时间已经超过80 前20种(20)指令:使用频度达到91.1 运行时间达到97.72 其余80的指令:使用频度只有8.9 2.28的处理机运行时间,2. VLSI技术的发展引起的问题 VLSI工艺要求规整性,RISC正好适应了VLSI工艺

43、的要求 主存与控存的速度相当 简单指令没有必要用微程序实现,复杂指令用微程序实现与用简单指令组成的子程序实现没有多大区别 由于VLSI的集成度迅速提高,使得生产单芯片处理机成为可能。,3. 软硬件的功能分配问题 复杂的指令使指令的执行周期大大加长 CISC处理机的指令平均执行周期都在4以上 在CISC中,增强指令系统功能,简化了软件,硬件复杂了 1981年,Patterson等人研制了32位的RISC I微处理器,总共31种指令,3种数据类型,两种寻址方式,研制周期10个月,比当时最先进的MC68000和Z8002快3至4倍 1983年,又研制了RISC II,指令种类扩充到39种,单一变址寻

44、址方式,通用寄存器138个,2.5.2 RISC的定义与特点,卡内基梅隆(Carnegie Mellon)大学论述RISC的特点如下: (1)大多数指令在单周期内完成 (2)LOAD/STORE结构 (3)硬布线控制逻辑 (4)减少指令和寻址方式的种类 (5)固定的指令格式 (6)注重编译的优化,90年代初, IEEE的Michael Slater对RISC描述: (1)RISC为提高流水线效率, 应具有下述特征: 简单而统一格式的指令译码 大部分指令可以单周期执行完成 只有LOAD和STORE指令可以访问存储器 简单的寻址方式 采用延迟转移技术 采用LOAD延迟技术 (2)为使编译器便于生成

45、优化代码,应具有: 三地址指令格式, 较多的寄存器,对称的指 令格式,2.5.3 RISC思想的精华,减少CPI是RISC思想的精华 程序执行时间的计算公式: CPI 其中: 是执行这个程序所使用的总的时间; 是这个程序所需执行的总的指令条数; CPI(Cycles Per Instruction)是每条指令执行的平均周期数 是一个周期的时间长度。,同类问题的程序长度,RISC比CISC长30%40% CPI,RISC比CISC少2倍10倍 RISC的速度要比CISC快3倍左右,关键是 RISC的CPI减小了,硬件方面: 采用硬布线控制逻辑 减少指令和寻址方式的种类 使用固定的指令格式 采用L

46、OAD/STORE结构 指令执行过程中设置多级流水线等 软件方面: 十分强调优化编译技术的作用。,RISC设计思想也可以用于CISC中 x86处理机的CPI在不断缩小, 8088的CPI大于20, 80286的CPI大约是5.5, 80386的CPI进一步减小到4左右, 80486的CPI已经接近2, Pentium处理机的CPI已经与RISC十分接近。 目前,超标量处理机、超流水线处理机的CPI 已经达到0.5, 实际上用IPC(Instruction Per Cycle)更确切。,2.5.4 RISC的关键技术,1. 延时转移技术 为了使指令流水线不断流,在转移指令之后插入一条没有数据相关

47、和控制相关的有效指令,而转移指令被延迟执行,这种技术称为延迟转移技术。 采用指令延迟转移技术时,指令序列的调整由编译器自动进行,用户不必干预。 读采用延迟转移的程序,必须十分小心。,无条件转移指令的延迟执行,2. 指令取消技术 采用指令延时技术,经常找不到可以用来调整的指令, 可考虑采用另一种方法:指令取消技术 分为两种情况: (1)向后转移(适用于循环程序) 实现方法:循环体的第一条指令安放在两个位置,分别在循环体的前面和后面。 如果转移成功,则执行循环体后面的指令,然后返回到循环体开始; 否则取消循环体后面的指令,(2)向前转移(IF THEN ) 实现方法:如果转移不成功,执行转移指令

48、之后的下条指令,否则取消下条指令。 例子:R R R “IF”部分的程序代码 S S S COMP R1, R2, THRU T T T “THEN”部分的程序代码 U U U THRU: V V V 效果:转移成功与不成功的概率, 通常各50 主要优点:不必进行指令流调整,3. 重叠寄存器窗口技术 (Overlapping Register Window) 原因:在RISC中,子程序比CISC中多 因为传送参数而访问存储器的信息量很大 美国加洲大学伯克利分校的F Baskett提出 实现方法:设置一个数量比较大的寄存器堆,并把它划分成很多个窗口。在每个过程使用的几个窗口中: 有一个窗口是与前一个过程共用 有个窗口是与下一个过程共用,例子:(在RISC II中采用的方法) 目前,SUN公司的SPARC、SuperSPARC、UtraSPARC等处理机,把最后一个过程与第一个过程的公用寄存器重叠起来,形成一个循环圈。 效果:可以减少大量的访存操作。 另外,要在主存中开辟一个堆栈,当调用层数超过规定层数(寄存器溢出)时,把益出部分的寄存器中内容压入堆栈。,5. 以硬件为主固件为辅 固件的主要缺点是: 执行速度低。目前,ROM的速度低于SRAM 一条机器指令通常要多条微指令解释执行 固件的主要优点是: 便于实现复杂指令,便于修改指

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1