计算机体系结构第四章练习题参考解答说课讲解

发布时间 : 星期四 文章计算机体系结构第四章练习题参考解答说课讲解更新完毕开始阅读

精品资料

ADD(加) 30% SUB(减) 24% JOM(按负转移)6% STO(存) 7%

JMP(转移)7% SHR(右移)2% CIL(循环左移)3% CLA(清除)20% STP(停机)1%

要求有两种指令字长,都按双操作数指令格式编排,采用扩展操作码,并限制只能有两种操作码码长。设该机有若干通用寄存器,主存为16位宽,按字节编址,采用按整数边界存储,任何指令都在一个主存周期中取得,短指令为寄存器--寄存器型,长指令为寄存器--主存型,主存地址应能变址寻址。

(1)仅根据使用频度,不考虑其它要求,设计出全Huffman操作码,计算其平均码长;

(2)考虑题目全部要求,设计优化实用的操作码形式,并计算其操作码的平均码长; (3)该机允许使用多少可编址的通用寄存器?

(4)画出该机两种指令字格式,标出各字段之位数;

(5)指出访存操作数地址寻址的最大相对位移量为多少个字节?

解:(1)根据给出的使用频度,在构造Huffman树的过程中,有两个结点可供合并,因此可生成不同的Huffman树,其中给出一棵如图所示,相应的Huffman编码如表所示。

∴ Huffman编码的平均长度为:l=?pi×li

i?1nl=0.3×2+0.24×2+0.2×2+0.07×4+0.07×4+0.06×4+0.03×5+0.02×6+0.01×6=2.61(位)

1.00 0.56 0.44

ADD CLA SUB 0.26 0.30 0.20 0.24

0.12 0.14

0.06 0.06 0.07 0.07 J0M JMP STO

0.03 0.03 CIL 指令 Ii Pi Huffman编Li 2-5编码Li 0.01 0.02 码 (3/6) ADD I1 0.30 01 2 00 2 SUB I2 0.24 11 2 01 2 CLA I3 0.20 10 2 10 2 STO I4 0.07 0011 4 11001 5 JMP I5 0.07 0010 4 11010 5 JOM I6 0.06 0001 4 11011 5 仅供学习与交流,如有侵权请联系网站删除 谢谢5

精品资料

CIL I7 0.03 00001 5 11100 5 STP SHR SHR I8 0.02 000001 6 11101 5 STP I9 0.01 000000 6 11110 5

(2)任何指令都在一个主存周期中取得,那么短指令字长为8位,长指令字长为16位。又指令都是二地址指令,所以短指令寄存器--寄存器型的格式为: 操作码(2位)寄存器1(3位)寄存器2长指令为寄存器--主存型的格式为: 操作码(5位)寄存器(3位)变址寄存器(3位)相对位由题意可知:指令操作码采用扩展编码,且只能有两种码长。从指令使用频度来看,ADD、SUB和CLA三条指令的使用频度与其它指令的使用频度相差较大,所以用两位操作码的三个码点来表示三条指令,一个码点作为扩展码点,且扩展三位来表示六条指令,即采用2--4扩展编码构成3/6编码,2--4扩展编码如表所示。

∴ 2--4扩展编码(3/6)的平均长度为:l=?pi×li=2.78

i?1n(3)(4)由短指令寄存器--寄存器型的格式可知,寄存器号字段长度为3位,寄存器个数为8个。则各字段长度如图格式所标识。

而对于长指令寄存器--主存型,一般变址寄存器是某通用寄存器,则变址寄存器号的字段长度为3位,则各字段长度如图格式所标识。

(5)由于相对位移字段长度为5位,因此访存地址寻址的最大相对位移量为25=32字节。

4.79 下面是一段数据块搬家程序。在RISC处理机中,为了提高指令流水线的执行效率,通常要采用指令取消技术。

START:MOVE AS,R1 ;把源数组的起始地址送入变址寄存器R1

MOVE NUM,R2 ;把传送的数据个数送入R2

LOOP: MOVE (R1),AD-AS(R1) ;AD-AS为地址偏移量,在汇编过程中计算

INC R1 ;增量变址寄存器 DEC R2 ;剩余数据个数减1 BGT LOOP ;测试N个数据是否传送完成

仅供学习与交流,如有侵权请联系网站删除 谢谢6

精品资料

HALT ;停机

NUM: N ;需要传送的数据总数 (1)如果一条指令的执行过程分解为“取指令”和“分析”两个阶段,并采用两级流水线。为了采用指令取消技术,请修改上面的程序。

(2)如果N=100,采用指令取消技术后,在程序执行过程中,能够节省多少个指令周期?

(3)如果把一条指令的执行过程分解为“取指令”、“分析”(包括译码和取操作数等)和“执行”(包括运算和写回结果等)三个阶段,并采用三级流水线。仍然要采用指令取消技术,请修改上面的程序。

解:(1)START:MOVE AS,R1

MOVE NUM,R2

MOVE (R1),AD-AS(R1) LOOP:INC R1

DEC R2

BGT LOOP

MOVE (R1),AD-AS(R1) HALT NUM:N

(2)解决转移指令引起的流水线断流可插入一条无效的空操作指令(NOP)。空操作指令也要占用一个机器周期,又不执行任何实际的操作。当N=100时,则要浪费100个机器周期(50个指令周期)。采用指令取消技术后,仅在转移不成功时取消指令,浪费1个机器周期(0.5个指令周期)。因此可节省49.5个指令周期。

(3)START:MOVE AS,R1

MOVE NUM,R2

MOVE INC LOOP:DEC

BGT

(R1),AD-AS(R1) R1 R2 LOOP

MOVE INC HALT NUM:N

(R1),AD-AS(R1) R1

仅供学习与交流,如有侵权请联系网站删除 谢谢7

联系合同范文客服:xxxxx#qq.com(#替换为@)