计算机组成与结构课后习题

问答题


1、写出变址寻址、相对寻址、基址寻址有效地址的计算公式,这三种寻址方式各适用于什么场合?




2、某处理机的一种访问存储器指令只用8位地址码,就能够指向一个1G地址空间中任意256个连续地址之一,请描述这种寻址方式。




3、分别采用间接寻址方式、变址寻址方式、自动间址方式和自动变址方式编写程序计算C=A+B,A和B都是长度为n的向量。为了简单起见,允许采用三地址指令编写程序,可以直接对两个主存储器中的数据进行加法运算,运算结果可以直接存入主存储器中。




4、一个处理机共有10条指令,各指令在程序中出现的概率如下表:
指令序号
出现的概率
Huffman编码法
2/8扩展编码法
3/7扩展编码法
I1
0.25
00
00
00
I2
0.20
01
01
01
I3
0.15
100
1000
10
I4
0.10
101
1001
11000
I5
0.08
1100
1010
11001
I6
0.08
1101
1011
11010
I7
0.05
1110
1100
11011
I8
0.04
11110
1101
11100
I9
0.03
111110
1110
11101
I10
0.02
111111
1111
11110
操作码的平均长度
2.99
3.10
3.20
操作码的信息冗余量
1.0%
4.5%
7.5%
(1)计算这10条指令理论上的操作码最短平均长度。
(2)采用哈夫曼编码法编写这10条指令的操作码,并计算操作码的平均长度和信息冗余量。把得到的操作码编码和计算结果填入上面的表中。
(3)采用2/8扩展编码法编写这10条指令的操作码,并计算操作码的平均长度和信息冗余量。把得到的操作码编码和计算结果填入上面的表中。
(4)采用3/7扩展编码法编写这10条指令的操作码,并计算操作码的平均长度和信息冗余量。把得到的操作码编码和计算结果填入上面的表中。




5、一台模型机共有7条指令,各指令的使用频度分别为35%,25%,20%,10%,5%,3%,2%,有8个通用数据寄存器,2个变址寄存器。
(1)要求操作码的平均长度最短,请设计操作码的编码,并计算所设计操作码的平均长度。
(2)设计8位字长的寄存器-寄存器型指令3条,16位字长的寄存器-存储器型变址寻址方式指令4条,变址范围不小于正、负127。请设计指令格式,并给出各字段的长度和操作码的编码。




6、某计算机系统的指令字长为16位,有二地址指令和一地址指令两种类型,每个地址字段的长度为6位。如果二地址指令有x条,问一地址指令最多可以有多少条?




7、一台实验计算机共有5种指令、8个通用数据寄存器,这5种指令的使用频度分别为35%、25%、20%、10%、10%
。 (1)要求操作码的平均长度最短,请设计操作码编码,并计算所设计操作码的实际平均长度。
(2)要求设计8位字长的两地址寄存器-寄存器型指令3种,16位字长的寄存器-存储器型指令两种,其中,存储器地址采用直接寻址方式。请设计指令格式,给出5种指令的操作码编码、各个字段的长度和名称。




8、在一台采用指令取消技术的RISC处理机上执行下面一段程序。每条指令的执行过程都要经过"取指令"和"执行"两个周期,每个周期的延迟时间均为10ns。
MOVE R1,#50000 ;R1←常数50000
LOOP:MOVE R2,A(R1) ;R2←从内存中取一个数
ADD R0,R2 ;R0←(R0)+(R2)
DNE R1,LOOP ;R1←(R1)-1,若(R1)≠0,则转向LOOP
(1)为了采用指令取消技术,改写上面的程序。
(2)计算采用指令取消技术执行上面的程序能够节省多少时间?




9、某RISC处理机的工作主频为500MHz,有一个Cache和一个主存储器,Cache的存取周期为2ns,主存储器的存取周期为20ns,Cache的命中率为99%,有20%的LOAD/STORE指令,并假设处理机速度的瓶颈完全在存储系统。
(1)求理想情况(Cache的命中率为100%)下的CPI。
(2)计算该RISC处理机的实际MIPS速率。
(3)如果处理机的工作主频提高到1GHz,计算实际CPI和MIPS速率。




10、下面是一个数据块搬家程序。在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个数据是否传送完成
HALT ;停机
NUM: N ;需要传送的数据总数
(1)如果一条指令的执行过程分解为"取指令"和"分析"两个阶段,并采用两级流水线。为了采用指令取消技术,请修改上面的程序。
(2)如果N=100,采用指令取消技术后,在程序执行过程中,能够节省多少个指令周期?
(3)如果把一条指令的执行过程分解为"取指令"、"分析"(包括译码和取操作数等)和"执行"(包括运算和写回结果等)三个阶段,并采用三级流水线。仍然要采用指令取消技术,请修改上面的程序。