计算机 组成原理 指令系统

上传人:n**** 文档编号:83519662 上传时间:2019-02-28 格式:PPT 页数:87 大小:603KB
返回 下载 相关 举报
计算机 组成原理 指令系统_第1页
第1页 / 共87页
计算机 组成原理 指令系统_第2页
第2页 / 共87页
计算机 组成原理 指令系统_第3页
第3页 / 共87页
计算机 组成原理 指令系统_第4页
第4页 / 共87页
计算机 组成原理 指令系统_第5页
第5页 / 共87页
点击查看更多>>
资源描述

《计算机 组成原理 指令系统》由会员分享,可在线阅读,更多相关《计算机 组成原理 指令系统(87页珍藏版)》请在金锄头文库上搜索。

1、1,第四章 指令系统,2,指令,指令:执行某种操作的命令。它是程序设计的最小单位,是硬件能理解并加以执行的语言,是硬件设计的依据。 微指令:属于硬件,可具体到每个信号一位一位地给出。 机器指令:简称指令,每条指令可完成一个独立的逻辑、算术运算或某种操作 宏指令:若干条机器指令组成,属于软件。 机器指令的集合称为指令系统。,3,指令格式,一条指令必须包含下列信息: 操作码(operation code) 操作数的地址(source operand address) 操作结果的存储地址(target operand address) 下条指令的地址,地址码,4,指令格式,指令的基本格式如下:,操作

2、码(Operation Code,OP)用来表示该指令所要完成的操作(加、减、乘、除、数据传送等),其长度取决于指令系统中的指令条数。,5,指令格式,实际上包括两种信息:操作码和地址码。指令的基本格式如下:,地址码用来描述该指令的操作对象 直接给出操作数 指出操作数的存储器地址 寄存器地址(即寄存器名)。,6,指令字长,指令字长取决于操作码字段的长度、操作数地址的个数及长度。一般是机器字长的整数倍。 单字长指令:指令字长等于机器字长 半字长指令:指令字长等于半个机器字长 双字长指令:指令字长等于两个机器字长 指令系统中,若各种指令的长度随指令功能而异,称为变长指令结构。否则称为定长指令。 目前

3、为止,主流PC和传统的大、中、小型机仍广泛采用复杂指令系统,相应地广泛采用变长指令格式 。,7,地址码,显地址 隐地址:按照事先约定用隐含方式给出。 1. 四地址指令 格式: 功能:(A1)OP(A2)A3 A4为下条将要执行指令的地址 其中 Ai表示地址,(Ai)表示存放于该地址的内容。,8,地址码,2. 三地址指令 格式: 功能:(A1) OP (A2) A3 (PC)+1PC(隐含) 3. 二地址指令 格式: 功能:(A1) OP (A2) A1 (PC)+1PC(隐含),9,地址码,4. 一地址指令 格式: 功能:OP (A1) A1 (PC)+1PC(隐含) 5. 零地址指令(如与堆

4、栈相关的一些指令) 格式: 6. 多地址指令,10,操作码,操作码指出指令应该执行什么性质的操作和具有何种功能。 编码格式: 固定格式 :操作码的长度固定,且集中放在指令字的一个字段中。 可变格式:操作码的长度可变,且分散地放在指令字的不同字段中。 单功能型操作码:让操作码只表示一种操作含义。 多功能型操作码,11,操作码,一、固定长度操作码(定长编码) 指令操作码的长度决定了指令系统能完成不同操作的指令条数。若某机器的操作码长度为K位,则它最多只能有2K条不同指令。,操作码均为8位,12,操作码,二、可变长度操作码(变长编码) 在指令字长有限的前提下要保持比较丰富的指令种类,可采取可变长度操

5、作码。方法是:当指令中的地址部分位数较多时,让操作码的位数少些;当指令的地址部分位数减少时,让操作码的位数增多,以增加指令种类,称之为扩展操作码。,13,操作码,变长编码方法: 设某机器的指令长度为16位,包括一个4位基本操作码字段和三个4位地址字段,其格式如图4-6所示。 15 12 11 8 7 4 3 0 图4-6 指令格式 4位基本操作码有16种编码结果(即有16种组合),若全部用于表示三地址指令,则只有16条。 若三地址指令仅需15条,两地址指令需15条,一地址指令需15条,零地址指令需16条,共61条指令,应如何安排操作码? 显然,只有4位基本操作码是不够的,必须将操作码的长度向地

6、址码字段扩展才行。一种可供扩展的方法和步骤如下:,14,操作码,1. 15条三地址指令的操作码由4位基本操作码从00001110给出,剩下1111用于把操作码扩展到A1,即4位扩展到8位; 2. 15条二地址指令的操作码由8位操作码从1111000011111110给出,剩下11111111用于把操作码扩展到A2,即从8位扩展到12位; 3. 15条一地址指令的操作码由12位操作码从111111110000111111111110给出,剩下111111111111用于把操作码扩展到A3,即从12位扩展到16位; 4. 16条零地址指令的操作码由16位操作码从111111111111000011

7、11111111111111给出。,15,操作码,例4.1 指令字长为12位,每个地址码为3位,采用扩展操作码的方式,设计4条三地址指令、255条一地址指令和8条零地址指令。 (1) 写出扩展表示;(2) 画出指令译码逻辑图; (3) 计算操作码平均长度。 解:(1) 操作码的扩展表示如下: 0 0 0 4条三地址指令 0 1 1 1 0 0 0 0 0 0 0 0 255条一地址指令 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 8条零地址指令 1 1 1 1 1 1 1 1 1 1 1 1,蓝色的部分为操作码,红色的部分决定是否扩展,16,(3) 操作

8、码平均长度=(439255128)/267=9。,17,操作码,三、操作码的优化 指令操作码是有空余的。在可变长度的指令系统的设计中,扩展方法的原则: 使用频度(即指令在程序中的出现概率)高的指令应分配短的操作码, 使用频度低的指令相应地分配较长的操作码,哈夫曼(Huffman)编码法就是根据上述原则进行编码。 Huffman编码法可用Huffman树的方法来实现: 首先将使用频度最小的、尽可能接近的两个概率合并为一个概率和,然后把它作为叶结点。新的结点与其它的叶结点再按频度大小排序。然后继续与别的相近的概率合并,如此反复,直至全部使用频度都处理完毕,最后形成一个频度为1的根结点。压缩过程可不

9、完全相同。 此后,从根节点开始向下延伸,左分支取1,右分支取0,遍历所有的叶节点。,18,表4.2 操作码的Huffman编码法,19,操作码,如果将使用的频度与位数综合考虑,可按下式求得平均编码长度: L=LiPi 上例的平均编码长度为: L=0.401+0.262+0.153+0.65+0.055+0.045+0.045位 =2.32位 Huffman扩展编码法与扩展编码法区别: Huffman扩展编码法:从指令的使用频度出发,对指令的长度没有限制(操作码与地址码两部分长度之和是字节的整数倍 )。 扩展编码法:从地址码的个数出发来决定操作码字段位数,20,操作码,例4.2 某计算机有10条

10、指令,它们的使用频度分别为:0.35、0.20、0.11、0.09、0.08、0.07、0.04、0.03、0.02、0.01,用Huffman编码对它们的操作码进行编码,并计算平均代码长度。 解:Huffman编码的操作码如表4.5所示。 表4.5 Huffman编码方案,21,操作码,22,操作码,23,操作码,方案A的平均码长 =35%1+20%2+11%3+9%4+8%5+7%6+4%7+3%8+2%9+1%10 =0.35+0.40+0.33+0.36+0.40+0.42+0.28+0.24+0.18+0.01=2.97 方案B的平均码长 =35%1+20%2+11%5+9%5+8%

11、5+7%5+4%5+3%5+2%5+1%5 =0.35+0.40+0.55+0.45+0.40+0.35+0.20+0.15+0.10+0.05=3 可见,采用Huffman编码法,不论A方案还是B方案,其平均长度都比定长操作码法的4位要短得多。但是它的操作码的位数是不规整的,既不便译码,更不适于实际应用,所以只能采用它的变形,它介于定长二进制译码和Huffman编码之间,具有三种(或更多种)长度,但仍采用频度值大的用短位数表示,频度值小的用长位数表示的思想。,24,操作码,平均码长 =35%2+20%2+11%2+9%4+8%4+7%4+4%6+3%6+2%6+1%6 =0.7+0.4+0.

12、22+0.36+0.32+0.28+0.24+0.18+0.12+0.06=2.88,25,确定指令格式的原则,1指令长度应尽可能的短 2机器字长应是字符长度的整数倍关系。 因为机器字长=字符长度的倍数,对字符存储有利。(现在的机器都是这样的),没有字长=20而字符长=8的机器,26,指令字长应是字符长度的整数倍关系。,信息整数边界原则:信息的地址(按字节编址,用该信息的首字节地址表示)必须是该信息宽度(字节数)的整数倍。按此原则,任何宽度的信息从首字节起到主存边界(存储字最后一位)之前能放得下该信息所有字节。显然,各种宽度的地址必须是(主存宽度8字节,按字节编址): a(1字节)_字节地址

13、Wh(双字节)_半字地址 0 W(4字节)_单字地址 0 0 Wd(8字节)_双字地址 0 0 0,一个信息不会跨两行,不会造成访问此信息时,要访存两次。,27,主存宽度8字节,按字节编址,28,确定指令格式的原则,3指令操作码字段应有足够的位数,使之能表示指令系统中的全部操作。 4指令中地址段的位数要足够长。 作业 4.6 4.13,29,思考题: 假设某机器的指令长度为16位,包括基本操作码4位和三个地址段A1,A2,A3每个地址段长4位,请利用扩展操作码技术设计15条三地址指令,14条二地址指令,31条一地址指令和16条0地址指令。,30,0000 xxxx xxxx xxxx xxxx

14、 xxxx xxxx 0000 xxxx xxxx 1101 xxxx xxxx 1111 1110 0000 xxxx 1111 1110 1111 xxxx 1111 1111 0000 xxxx 1111 1111 1110 xxxx 1111 1111 1111 0000 1111 1111 1111 1111,15条,14条,16条,15条,16条,31条,31,寻址技术,寻址方式:就是寻找指令或数据有效地址的方式。 指令中地址码字段给出的地址称为形式地址(逻辑地址) 经过某种运算后,形式地址可得到能够直接访问主存的地址,称为有效地址(物理地址)。 A形式地址 EA有效地址(Effe

15、ctive Address) (x)x中的内容,32,编址方式,一、编址单位 1字编址: 每个编址单位与访问单位相一致(此处字为机器字长) 每执行一条指令,程序计数器PC加1; 每从主存中读出一个数据,地址寄存器加1,33,编址方式,2字节编址: 编址单位与信息的基本单位(一个字节)相一致 编址单位和主存的访问单位通常是不相同的。(否则频带太窄) 通常主存的访问单位是编址单位的若干倍。采用字节编址的机器中,如果指令(数据)长度是32位,那么每执行完一条指令(访问完一条数据),程序计数器要加4。 地址信息浪费 3. 位编址,34,编址方式,二、指令中地址码的位数:主存越大,编址单位越小,位数越多。 例:设某机主存容量为220个字节,机器字长32位.(直接寻址) 若编址单位为字节,其地址码应为20位; 若编址单位为字,其地址码只需18位。 220字节/32位 =220字节/4字节 =218个地址 从减少指令长度的角度看,编址单位越大越好;而从对字符或位的操作是否方便看,编址单位越小越好。,35,指令和数据的寻址方式,一、指令的寻址方式 指令的寻址方式:顺序方式、跳跃方式。 1.顺序寻址方式,指令序列在主存中是顺序存放。 程序执行时,从该程序的第一条指令开始,逐条取出并逐条执行。 程序计数器(PC)对指令的地址进行顺

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号