计算机组成与结构课后习题
问答题
1、写出变址寻址、相对寻址、基址寻址有效地址的计算公式,这三种寻址方式各适用于什么场合?
2、某处理机的一种访问存储器指令只用8位地址码,就能够指向一个1G地址空间中任意256个连续地址之一,请描述这种寻址方式。
3、分别采用间接寻址方式、变址寻址方式、自动间址方式和自动变址方式编写程序计算C=A+B,A和B都是长度为n的向量。为了简单起见,允许采用三地址指令编写程序,可以直接对两个主存储器中的数据进行加法运算,运算结果可以直接存入主存储器中。
4、一个处理机共有10条指令,各指令在程序中出现的概率如下表:
指令序号
出现的概率
Huffman编码法
2/8扩展编码法
3/7扩展编码法
I
1
0.25
00
00
00
I
2
0.20
01
01
01
I
3
0.15
100
1000
10
I
4
0.10
101
1001
11000
I
5
0.08
1100
1010
11001
I
6
0.08
1101
1011
11010
I
7
0.05
1110
1100
11011
I
8
0.04
11110
1101
11100
I
9
0.03
111110
1110
11101
I
10
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)如果把一条指令的执行过程分解为"取指令"、"分析"(包括译码和取操作数等)和"执行"(包括运算和写回结果等)三个阶段,并采用三级流水线。仍然要采用指令取消技术,请修改上面的程序。