




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
指令格式的优化设计指令格式的优化设计 指令格式的优化设计的目的目的是用最短的二进制位数表示指令的操作信息和地址信 息,使指令的平均字长最短。指令格式的优化设计,首先首先根据指令集各指令的使用频 度的分布Pi对操作码进行优化设计,然后然后对地址码和寻址方式的表示采取优化措施, 使指令格式达到优化。经过优化设计的指令集减少减少了程序的总位数,减少减少了程序运行 的时空开销,从而提高提高了系统的性能。 我们首先讨论操作码的优化编码方法,然后讨论寻址技术,最后,在操作码和地 址码优化表示的基础上,说明指令格式的优化设计。 一、操作码的优化设计一、操作码的优化设计 1 1、操作码优化编码的方法、操作码优化编码的方法 操作码优化编码的方法有三种:定长编码、哈夫曼编码和扩展编码定长编码、哈夫曼编码和扩展编码。 定长编码:定长编码:是指所有指令的操作码长度都是相等的。如果有 n 个需要编码的操作 码,定长操作码的位数最少需要 log2n 位。 哈夫曼编码:哈夫曼编码:用哈夫曼方法构造哈夫曼树进行编码。构造哈夫曼树的方法是:每 次从指令集中选出两个使用频度最小的指令,将其频度相加,形成一个节点,称为父 节点,将新生成的父节点放到结点集中,从新的节点集中再选两个使用频度最少的节 点生成一个新的父节点,直至节点集成为空集,就生成了一棵哈夫曼树。每个节点的 两个分支节点,称为节点,用 0 和 1 标识,上面的节点称根节点,下面的节点称为叶 节点。从最上面的根节点到一个叶节点的路径(由 0 和 1 组成的序列)就是这个叶节点 的哈夫曼编码。 由于哈夫曼编码的码长种类较多。既不利于硬件对操作码的译码,也很难与地址 码配合形成长度规整的指令格式。因此,实用的操作码编码一般不采用哈夫曼编码而 采用扩展编码的方法。 扩展编码:扩展编码:限定使用少数几种长度码长,使用频度高的码点用短码表示,使用频 度低的码点用长码表示。特别需要指出的是,不是所有的短码都可以作为长码的前缀, 即不是任何短码都可以是任何长码的若干位。否则,编码将会不唯一。所以,要留下 若干个短码作为长码的扩展标志,以便长码在扩展编码时使用。这是扩展编码“扩展” 2 一词的含义。 扩展编码的两种表示方法。扩展编码的两种表示方法。 1 1)码长表示法)码长表示法,用短横线前后的数字分别表示短码码长和长码码长,例如, 2-4-6 表示指令操作码的长度有三种,分别是 2 位、4 位、6 位。 (没有表示三种长度的 编码各有多少个码点) 。 2 2)码点数表示法)码点数表示法,用斜线前后的数字分别表示短码码点的个数和长码码点的 个数,例如,3/4/6 表示有三种码长,最短码长的码点个数是 3,最长码长的码点个数 是 4,三种码点的总数是 13。 (没有表示各个码点数的码长是多少) 。 2 2、操作码优化编码的评价方法、操作码优化编码的评价方法 (1)用平均码长评价编码优化的程度,平均码长为: i n i il pl 1 其中是第 i 种码点的使用频度, 是第 i 种码点的编码长度。 i p i l (2)用位冗余量衡量编码优化的程度,位冗余量为 l H l Hl R 1 其中,H 称为信息熵信息熵(Entropy)(Entropy) n i ii ppH 1 2 log 表示用二进制编码表示 n 个码点时理论上最短平均编码长度。因此对于任何实际 编码得出的平均码长l,都有lH,故有 0R1。 3 3、对于同一个频度分布、对于同一个频度分布ppi i ,应用哈夫曼法有可能生成不同的哈夫曼树。,应用哈夫曼法有可能生成不同的哈夫曼树。因此, 由不同的哈夫曼树得出的各码点的编码不相同。也就是说,从频度分布pi得出的哈 夫曼编码并不唯一。但,计算得到的平均码长l肯定是唯一的。 根据实现编码的码点个数的要求,在采用扩展编码方法进行优化编码时,选用几 个短码作为长码扩展码标志的原则:一是根据需要编码的短码的码点个数和长码码点 个数进行选择,二是尽量减少编码可表示的冗余码点的个数。总之,应尽可能达到平 均码长 l 最短的优化要求。 3 例例 1 1:一个处理机共有:一个处理机共有 I I1 1I I10 10共 共 1010 条指令,经统计各指令在程序中的使用频率分别为:条指令,经统计各指令在程序中的使用频率分别为: p p1 1=0.25=0.25 p p2 2=0.20=0.20 p p3 3=0.15=0.15 p p4 4=0.10=0.10 p p5 5=0.08=0.08 p p6 6=0.08=0.08 p p7 7=0.05=0.05 p p8 8=0.04=0.04 p p9 9=0.03=0.03 p p10 10=0.02 =0.02 (1)(1)计算该计算该 1010 条指令的操作码编码的最短平均码长;条指令的操作码编码的最短平均码长; (2)(2)写出该写出该 1010 条指令的操作码的哈夫曼编码,并计算该种编码的平均码长和位冗条指令的操作码的哈夫曼编码,并计算该种编码的平均码长和位冗 余量;余量; (3)(3)采用采用 3/73/7 扩展编码和扩展编码和 2/82/8 扩展编码编写该扩展编码编写该 1010 条指令的操作码,并分别计算平条指令的操作码,并分别计算平 均码长和位冗余量。问哪一种扩展编码较好?说明其理由。均码长和位冗余量。问哪一种扩展编码较好?说明其理由。 解:解: (1)由给出的使用频率 p1p10,计算 I1I10的操作码编码的最短平均码长: 10 1 2 log i ii ppH =-(0.25log20.25+0.20log20.20+0.15log20.15+0.10log20.10 +0.08log20.08+0.08log20.08+0.05log20.05+0.04log20.04 + 0.03log20.03+0.02log20.02) =2.96 位 所以,这十条指令的操作码编码的最短平均码长为 2.96 位。 (2)根据给出的使用频度,在用哈夫曼编码算法构造哈夫曼树的过程中,在选两个 频度最小的节点合并时,有时有两个以上的节点可供选择两个以上的节点可供选择,因此就会生成结构不同的 哈夫曼树。这里给出了两个哈夫曼树。如下图: 4 0.020.03 0.050.08 0.130.10 0.230.20 0.43 0.040.05 0.090.08 0.170.15 0.320.25 0.57 1 I10I9 I6 I8I7 I4 I2 I5 I3 I1 1 11 1 1 1 1 11 0 0 0 00 0 0 00 5 0.020.03 0.05 I10I9 10 0.04 0.09 1 0 0.08 0.17 01 0.15 0.32 01 0.25 0.57 01 0.050.08 0.13 I7I6 10 0.10 0.23 1 0 0.20 01 0.43 1 0 1 I4 I2 I8 I5 I3 I1 由哈夫曼树得到的两种哈夫曼编码如下表:由哈夫曼树得到的两种哈夫曼编码如下表: Iipi 哈夫曼编码(a)码长 Iai哈夫曼编码(b)码长 Ibi I10.25002102 I20.20102002 I30.1501031103 I40.1011030103 I50.080110411104 I60.081110401104 I70.0501110501114 I80.04011115111105 I90.031111051111106 I100.021111151111116 可见哈夫曼编码是不唯一的。 两种哈夫曼编码的平均码长为: 6 ai i ia IpI 10 1 =0.25*2+0.20*2+0.15*3+0.10*3+0.08*4+0.08*4+0.05*5+0.04*5+0.03*5+0.02*5 =2.99 位 bi i ib IpI 10 1 =0.25*2+0.20*2+0.15*3+0.10*3+0.08*4+0.08*4+0.05*4+0.04*5+0.03*6+0.02*6 =2.99 位 可见,尽管哈夫曼编码不同,而平均码长却是唯一的。两种哈夫曼编码的位冗余 量分别为: %0 . 1 99 . 2 96 . 2 11 a a l H R %0 . 1 99 . 2 96 . 2 11 b b l H R 显然, Ra=Rb (3)3/73/7 扩展编码和扩展编码和 2/82/8 扩展编码如下表所示:扩展编码如下表所示: Iipi 3/7 扩展编码码长 Iai2/8 扩展编码码长 Ibi I10.25002002 I20.20012012 I30.1510210004 I40.1011000510014 I50.0811001510104 I60.0811010510114 I70.0511011511004 I80.0411100511014 I90.0311101511104 I100.0211110511114 3/7 扩展编码要求短码码点有 3 个,长码码点有 7 个,短码码长取 2 位,可表示 22=4 个短码码点。因此只留一个码点作为 7 扩展标志。要表示的长码码点有 7 个,因此要扩展 3 位,因此有 238 个扩展点可用, 故有一个点即有一个长码码点 11111 未被用到,或称有一个冗余码点。而采用 2/8 扩 展编码则没有冗余码点。由此判断,2/8 扩展编码优于 3/7 扩展编码。但是,准确地评 价编码的优劣仍需要比较平均码长。两种扩展编码的平均码长分别为: I3/7=(0.25+0.20+0.15)*2+(0.10+0.08+0.08+0.05+0.04+0.03+0.02)*5=3.2 位 I2/8=(0.25+0.20)*2+(0.15+0.10+0.08+0.08+0.05+0.04+0.03+0.02)*4=3.1 位 两种扩展编码的位冗余量分别为: %5 . 7 2 . 3 96 . 2 11 7/3 7/3 l H R %5 . 4 1 . 3 96 . 2 11 8/2 8/2 l H R 显然,由于 R2/8 R3/7,所以,2/8 扩展编码优于 3/7 扩展编码。 二、寻址技术二、寻址技术 寻址技术对于指令格式的设计十分重要。它决定了指令字中如何表示地址码。寻 址技术是指存储数据的空间如何编址和如何寻址的技术。前者称为编址方式,后者称 为寻址方式。在主机中,可用于存储数据的空间有:CPU 中的通用寄存器、主存储器、 堆栈和 I/O 接口中的数据寄存器。由于这些存储空间的工作速度和存储容量差别很大, 因此,采用的编址方式和寻址方式也不同。 1 1、存储空间的组织方式、存储空间的组织方式 存储空间有如下三种组织方式: (1)(1)三个地址空间的组织方式三个地址空间的组织方式 存储空间的存储单位数量越多,用于存储单位编址的地址码越长。CPU 中的通用寄 存器数量较少,I/O 寄存器的数量较多,主存储单元的数量大得多。为了减少指令中用 于编址的地址码长度,要对这三个存储空间分别独立编址。三个存储空间的寻址方式 也不相同。对寄存器一般采用直接寻址方式,对主存储器一般采用间接寻址和变址寻 址等多种寻址方式,以避免在指令中用长的地址码直接表示主存单元的地址。 8 (2)(2)两个地址空间的组织方式两个地址空间的组织方式 CPU 的通用寄存器独立编址,I/O 寄存器和主存储器统一编址。统一编址空间的高 端地址一般用于 I/O 接口寄存器的地址。 (3)(3)一个地址空间的组织方式一个地址空间的组织方式 所有数据存储单位统一编址,地址空间的低端地址是 CPU 的通用寄存器的地址, 高端地址是 I/O 接口寄存器的地址。 2 2、地址单位地址单位 常用的编址单位有:字编址,字节编址和位编址。 字字编址是指每个编址地址与访问的数据存储单位相一致。字节字节编址是指每个编址 单位都是一个字节。位位编址是指每个编址单位都是一个二进制位。 对 CPU 通用寄存器的一次读/写访问,要求读出或写入通用寄存器中的是一个字。 因此,通用寄存器按字编址,寄存器的编号就是寄存器的地址码。 主存储器可以按字编址,也可以按字节编址。按字编址是最容易实现的一种编址 方式,在采用按字编址的计算机中,可以设置专门的按字节操作的指令和按位操作的 指令,用来实现对存储单元中的指令字节或指令位进行操作。 3 3、寻址方式寻址方式 按指令中包含的地址码的个数来分,指令可分为:零地址指令一地址指令、二 地址指令和三地址指令。 根据指令中给出的地址码来查找数据存储单元的方式称为寻址方式。 按指令的寻址空间来分,寻址方式可以分为以下四种: (1)(1)立即数寻址立即数寻址 在指令的地址码位置直接给出操作数,使指令从指令字中获取操作数,不需要访 问任何地址空间,指令执行速度很快。缺点是指令字中的地址码长度有限,使操作数 的示数范围较小,示数精度较低。 (2)(2)寄存器寻址寄存器寻址 若寻址空间是通用寄存器,则采用通用寄存器寻址方式。由于通用寄存器的工作 速度较快,因此寄存器寻址的执行速度较快。另外,由于通用寄存器的字长比指令中 的地址码的长度要大得多,因此,寄存器中的操作数的示数范围和示数精度较大。 9 (3)(3)主存寻址主存寻址 若寻址空间是主存,则采用主存寻址方式,由于主存的工作速度较慢,因此主存 寻址比较费时。另外,由于主存的容量很大,即主存的存储空间很大,因此主存空间 的地址码较长,而指令字中分配给地址码的位数很有限,这种矛盾在二地址指令和三 地址指令中更突出。为了能用有限长度的指令地址码对应相当大的主存空间寻址,在 主存寻址方式中要采用间接寻址和变址寻址等寻址方式。在这些寻址方式中用寄存器 存放操作数的主存单元地址,而在指令地址码中给出的是相应的寄存器地址。指令执 行时,先访问指令地址码指定的寄存器,从指定的寄存器中获得主存单位地址,然后 再访问该主存单元地址指定的主存单元,从而得到所要用的数据。 (4)(4)堆栈地址堆栈地址 由于堆栈中的数据只能先进后出,后进先出,因此对堆栈空间的寻址无需指明地 址。 标准的堆栈操作指令没有地址码部分,如: PUSHPUSH A A PUSHPUSH B B ADDADD POPPOP C C 三、指令格式优化设计的措施三、指令格式优化设计的措施 在操作码优化编码的基础上,结合地址码和寻址方式在指令中的表示,可使指令 字格式优化。指令字格式优化设计的措施主要有: (1)(1)采用扩展编码采用扩展编码,以缩短操作码的平均码长。 (2)(2)采用多种寻址方式采用多种寻址方式,诸如基址、变址、相对寻址、寄存器寻址、寄存器间接寻 址等多种寻址方式,以缩短需要在指令中表示的地址码长度,但不减少地址码寻址空 间的大小。 (3)(3)指令集采用零地址、一地址、二地址、三地址等多种地址制,指令集采用零地址、一地址、二地址、三地址等多种地址制,且让常用的短操 作码与多地址字段相配合,长操作码与少地址字段相配合。 (4)(4)在同种地址制的若干指令中采用多种地址表示形式,在同种地址制的若干指令中采用多种地址表示形式,如寄存器寄存器型,寄 存器主存型,主存主存型等,让每种地址字段有多种长度,使长度不等的操作码 与地址码配合,形成规整(相同)长度的指令字。 (5)(5)保持指令字在存储器中按整数边界存储的前提下,使用多种不同的指令字长度保持指令字在存储器中按整数边界存储的前提下,使用多种不同的指令字长度, 10 整数边界存储要求指令字长应是主存存储字长的整数倍。 综合应用上述措施,就可以使指令系统的位冗余量减少,操作数的寻址灵活,操 作码的备用码总数增多,有利于对指令系统进行扩充。 为了说明考虑以上各种措施后实现指令字格式优化设计的过程,现举例如下: 例例 2 2:某模型机有:某模型机有 9 9 条指令,其使用频度分别为:条指令,其使用频度分别为: ADD:30%ADD:30% SUB:24%SUB:24% LOD:6%LOD:6% STD:7%STD:7% JMP:7%JMP:7% SHR:2%SHR:2% ROL:3%ROL:3% MOV:20%MOV:20% STP:1%STP:1% 要求:用两种指令字长,且都用二地址指令。要求:用两种指令字长,且都用二地址指令。 采用扩展编码,只能用两种操作码码长。短指令为寄存器寄存器型,长采用扩展编码,只能用两种操作码码长。短指令为寄存器寄存器型,长 指令为寄存器主存型。指令为寄存器主存型。 设该机器有若干个通用寄存器。设该机器有若干个通用寄存器。 主存地址能变址寻址,宽度为主存地址能变址寻址,宽度为 1616 位,按字节编址,采用按整数边界存储,位,按字节编址,采用按整数边界存储, 任何指令都在一个主存周期中取得。任何指令都在一个主存周期中取得。 (1)(1)仅根据使用频度,不考虑其它要求,设计出哈夫曼编码,并计算平均码长;仅根据使用频度,不考虑其它要求,设计出哈夫曼编码,并计算平均码长; (2)(2)根据给出的全部要求,设计优化的操作码编码,并计算平均码长;根据给出的全部要求,设计优化的操作码编码,并计算平均码长; (3)(3)画出该机的两种指令字的格式,标出各字段的位数;画出该机的两种指令字的格式,标出各字段的位数; (4)(4)该机允许使用多少个可编址的通用寄存器?变址寻址的最大相对位移量是多少该机允许使用多少个可编址的通用寄存器?变址寻址的最大相对位移量是多少 字节?字节? 解:解: (1)根据频度分布,得出哈夫曼树,如下图: 0.010.02 0.03 I9I8 10 0.03 0.06 1 0 0.06 I7 I6 0.070.07 0.14 1 0 I5 0.12 1 0 0.260.30 0.56 1 0 0.200.24 0.44 1 0 0.44 10 10 I4 I3I2 I1 由哈夫曼树,得出 9 条指令的哈夫曼树,如下表: Ii 指令 pi 哈夫曼编码Ii(位)25 扩展编码Ii(位) I1ADD30%102002 I2SUB24%002012 I3MOV20%012102 I4STO7%11004110005 I5JMP7%11014110015 I6LOD6%11104110105 I7ROL3%111105110115 11 I8SHR2%1111106111005 I9STP1%1111116111015 哈夫曼编码的平均码长为: )(61 . 2 10 1 位 i iil pl (2)根据题目要求,指令有两种字长,主存宽度为 16 位,按字节编址,采用按整 数边界存储,任何指令都在一个主存周期取得,那么,短指令字长只能是 8 位,长指 令字长只能是 16 位。 指令都用二地址指令: 短指令位寄存器寄存器型,据此可得出短指令格式为: 操作码寄存器 1寄存器 2 长指令为寄存器主存型,且主存地址应能变址寻址,可得出长指令格式为: 操作码寄存器号变址寄存器相对位移 |-主存逻辑地址-| 在一般的计算机中,变址寄存器就是某一个通用寄存器,所以,变址寄存器字段 的位数与寄存器字段的位数相同。 根据题目的要求,指令操作码可采用扩展编码,并只能用两种码长。从指令使用 频度来看,ADD、SUB 和 MOV 的使用频度较高,其余六种指令的使用频度都低得多,因 此,短操作码码长应取 2 位长,可有 22=4 个码点,用其中三个码点表示这三条指令, 余下一个码点作为扩展标志。用一个扩展标志再扩展表示出其余六个操作码,故还需 要扩展三位,因此,长操作码码长为 5 位。由此,得出九条指令的 2-5 扩展操作码如 上表所示。 2-5 扩展编码的平均码长为 )(78 . 2 10 1 位 i iil pl 12 (3)由上述分析,可得出短指令格式中各字段的位数为 操作码寄存器 1寄存器 2 |-2 位-|-3 位-|-3 位-| 长指令格式中各字段的位数为: 13 操作码寄存器变址寄存器相对位移 |-5 位-|-3 位-|-3 位-|-5 位-| 由于寄存器的字段长度为 3 位,因此,该机可使用的可编址通用寄存器的个数最 多为 23=8 个。 由于相对位移长度为 5 位,因此,访存变址寻址的最大相对位移量为 25=32 个字 节。 练习:练习: 一某模型机共有 7 条指令,各指令的使用频度分别为: 35%25%20%10%5%3%2%,共有 8 个通用寄存器和 2 个变址寄存器。 (1)请设计 7 条指令的哈夫曼编码,并计算操作码的平均码长。 (2)若要求设计 8 位长的 R-R 型指令 3 条,16 位长 R-M 型变址寻址指令 4 条,变址范围为-127+127,请设计指令格式,并给出指令各字段的 长度和操作码编码。 解:解: (1) 哈夫曼树如下图所示(略),得到的哈夫曼编码如下表第 3 列所示,由此得 到的 7 条指令操作码的平均码长为: L=PILI=2.35(位) (2) 3 3 条条 8 8 位长的位长的 R-RR-R 型指令的型指令的 格式如下格式如下: : L LI I P PI I 哈夫曼编码 哈夫曼编码3/43/4 扩展编码扩展编码 I I1 1 I I2 2 I I3 3 I I4 4 I I5 5 I I6 6 I I7 7 0.35 0.25 0.20 0.10 0.05 0.03 0.02 00 01 10 110 1110 11110 11111 00 01 10 1100 1101 1110 1111 操作码 寄存器 1寄存器 2 14 2 位 3 位 3 位 由于有 8 个通用寄存器,所以指令中的寄存器字段应为 3 位,短操作码字 段应有 2 位,2 位码可以表示 4 个指令码,用其中的 3 个码点“00” “01”“10”表示 3 条 8 位的短指令的操作码,余下 1 个码点 “11”作为长码的扩展标志。 4 4 条条 1616 位长的位长的 R-MR-M 型变址寻址指令的格式为:型变址寻址指令的格式为: 操作数寄存器号变址寄存器号相对位移 4 位 3 位 1 位 8 位 由于有两个变址寄存器,所以变址寄存器号字段只有 1 位;由于变址范 围是-127+127,所以相对位移字段为 8 位:因此剩下的 4 位(因为 16-3-1-8=4)用来表示操作码,其中 2 位为扩展标示位,另外扩展的 2 位刚好表示 4 条指令的操作码。 采用上述 3/4 扩展遍码时,使用频率高的指令用短码表示,使用频率低 的用长码表示,得到的 3/4 扩展遍码如上表第 4 列所示。 二为了显示不同指令系统的性能, 1.请用 (1)三地址指令系统处理机; (2)二地址指令系统处理机; (3)二地址多通用寄存器指令系统处理机; (4)一地址(累加器)指令系统处理机; (5)零地址指令系统处理机; 分别写出计算下式 X 数值的五个程序,程序都用直接方式寻址,并设数据 AG 都已经存放在主存相应的存储单元中,计算结果存放在 X 单元中. X=A+B*C+E*D/F-G. 2.设操作码(P=1B)为 8 位存储单元地址码(A=2B)为 16 位一个数据 (D=4B)为 32 位一个通用寄存器地址(R=0.5B)为 4 位. (1) 分别统计五个程序的指令条数; (2) 分别统计五个程序的访存次数,其中包括存取指令和读取操作数的访存 15 次数; (3) 分别统计五个程序指令所用的存储空间(因为不同程序中用的存储空间 大致相同,所以不必统计); (4) 分别统计五个程序的访存信息量(即所有访存操作所存取的指令和数据 的字节数的总和). 3.将五个程序按所用的存储空间大小和访存信息量排队,说明 5 种指令系统的程序运 行时的时空开销. 解解: : 1. 计算 X 数值的五个程序: (1)三地址指令系统编写的程序为: 1 ADD X,A,B ;X 中暂存 2 MUL X,X,C ;X 中暂存 3 MUL Y,D,E ;Y 中暂存 4 ADD X,X,Y ;X 中暂存 5 SUB Y,F,G ;Y 中暂存 6 DIV X,X,Y ;X 中存 (2)二地址指令系统的程序为: 1 MOVE X,A 2 ADD X,B 3 MUL X,C 4 MOVE Y,D 5 MUL Y,E 6 ADD X,Y 7 MOVE Y,F 8 SUB X,Y 9 DIV X,Y (3)二地址多通用寄存器指令系统的程序为: 16 1 MOVE R1,A 2 ADD R1,B 3 MUL R1,C 4 MOVE R2,D 5 MUL R2,E 6 ADD R1,R2 7 MOVE R2,F 8 SUB R2,G 9 DIV R1, 10 MOVE X,R1 (4)一地址(累加器)指令系统的程序为: 1 LOAD F 2 SUB G 3 STORE X 4 LOAD A 5 ADD B 6 MUL C 7 STORE Y 8 LOAD D 9 MUL E 10 ADD Y 11 DIV X 12 STORE X (5)零地址指令系统的程序为: 1 PUSH A 2 PUSH B 3 ADD 4 PUSH C 17 5 MUL 6 PUSH D 7 PUSH E 8 MUL 9 ADD 10 PUSH F 11 PUSH G 12 SUB 13 DIV 14 POP 2.五个程序的指令条数五个程序的指令条数访存次数和访存信息量访存次数和访存信息量 (1)用三地址指令编的程序共用 6 6 条指令条指令,每条指令含 1 个操作码,2 个源操作数 地址和 1 个目的操作数地址,每条指令的字长为 P+3A=1B+3*2B=7B。程序所 用的存储量为 6*7B=42B。 每条指令需 4 4 次访存次访存: 其中取指令访存 1 次,访存信息量为 7B;取 2 个源操作数需访存 2 次,访存 信息量为 2D=284B=8B;存计算结果访存 1 次,访存信息量为 1D=4B。所以, 执行一条指令的访存信息量为 7B+8B+4B=19B。执行整个程序的访存信息量为整个程序的访存信息量为 6*19B=114B6*19B=114B。 (2)用二地址指令编的程序共用 9 9 条指令条指令,每条指令含 1 个操作码,2 个源操作数 地址且第 1 个源操作数地址也是目的操作数地址;或者是 1 个是源操作数地 址一个是目的操作数地址。每条指令的字长为 P+2A=1B+2*2B=5B。程序所用 的存储量为 9*5B=45B。 前者每条指令所需访存读/写操作数的次数如下表所示。程序执行的访存信 息量包括:取 9 条指令的访存信息量 9*5B=45B;15 次取源操作数的访存信 息量 15*4B=60B;9 次存结果数据的访存信息量 9*4B=36B。所以,程序执行程序执行 的访存信息量为的访存信息量为 45B+60B+36B=141B.45B+60B+36B=141B. (3)用二地址多通用寄存器指令编的程序共用 1010 条指令条指令,每条指令含 1 个操作码,2 个源操作数地址且第 1 个源操作数地址也是目的操作数地址;或者是 1 个是 18 源操作数地址一个是目的操作数地址。源操作数地址和目的操作数地址可以 是存储单元地址,也可以是寄存器地址。由程序可知,有 2 条指令的 2 个操 作数地址是寄存存器地址,指令字长为 P+2R=1B+2*0.5B=2B,其余指令 2 个 操作数地址都 1 个是存储单元地址 1 个是寄存器地址,指令字长为 P+A+R=1B+2B+0.5B=3.5B。所以, 程序所用的存储量为 2*2B+8*3.5B=32B. 1010 条指令所需访存读条指令所需访存读/ /写操作数的次数如下表所示写操作数的次数如下表所示。程序执行的访存信息量: 包括取 10 条指令的访存信息量 32B;7 次取源操作数的访存信息量 7*4B=28B;1 次存结果数据的访存信息量 4B。所以,程序执行的访存信息量程序执行的访存信息量 为为 32B+28B+4B=64B.32B+28B+4B=64B. (4)用一地址指令编的程序共用 1212 条指令条指令,每条指令含 1 个操作码,1 个源操作数 地址或目的操作数地址;前者把源操作数取到累加器中,或者与累加器中暂 存的操作数进行运算,将结果仍暂存于累加器中;后者把暂存于累加器中的 数据送入目的地址指定的存储单元中。每条指令的字长为 P+A=1B+2B=3B。所 以,程序占用的存储量为 12*3B=36B。每条指令的执行需 2 次访存:其中的 1 次为取指令,访存信息量为指令字长 3B;另 1 次是取 1 个源操作数或存结 果数据访存,访存信息量是 1D=4B。总之,1 条指令的执行访存信息量为 3B+4B=7B。整个程序执行的访存信息量等于整个程序执行的访存信息量等于 12*7B=84B12*7B=84B。 (5)用零地址指令编的程序共用 1414 条指令条指令。零地址指令是堆栈型,指令,堆栈 是内存中的 1 个专用区域,专门用来存放堆栈型指令的操作数。 PUSH 指令把指定存储单元中的操作数压入栈顶,指令字长为 P+A=1B+2B=3B。一共需要 3 次访存:其中 1 次为取指令,1 次为取操作数, 1 次为压入栈顶。 POP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 下传统节日作文清明节(8篇)
- 赤壁怀古:古诗文意象解读教案
- 科技之光与时代力量:初中八年级科普说明文阅读指导教案
- 时间和位移的课件
- 一年级日记看电影100字15篇
- 贵金属交易风险披露书及合同书
- 吉林省松原市前郭县2024-2025学年八年级下学期期末考试物理试题(含答案)
- 早期阅读犟龟课件
- 观少年派有感1500字(10篇)
- 纪检业务培训课件模板
- 采购应急计划管理办法
- 2025年学校食堂从业人员食品安全知识培训考试试题及答案
- 头皮健康与头发生长关系的研究
- 财务结账相关管理制度
- 叉车维修方案(3篇)
- 口腔科护士正确吸唾操作规范
- 中学升旗管理制度
- Odoo面试题及答案
- 2025年全国I卷英语 高考真题
- 专业公路工程知识考察试题及答案
- 陕西西安铁一中学2025届英语八下期末检测试题含答案
评论
0/150
提交评论