计算机组成与设计第三版第七章课后答案
- 格式:ppt
- 大小:87.00 KB
- 文档页数:17
《计算机组成原理》各章练习题参考答案第一章思考练习题一.填空1.电子数字计算机可以分为专用计算机和通用计算机两类。
2.硬件采用LSI或VLSI的电子计算机属于计算机发展过程中的第四代。
3.存储器中存放数据和程序。
4.一台计算机包括运算、存储、控制、输入及输出五个单元。
5.完成算术运算和逻辑运算的部件是运算器(或ALU);运算器的核心是加法器;控制、指挥程序和数据的输入、运行以及处理运算结果的部件是控制器。
6.CPU内部连接各寄存器及运算部件之间的总线是内部总线;CPU同存储器、通道等互相连接的总线是系统总线;中、低速I/O设备之间互相连接的总线是I/O总线。
7.在多总路线结构中,CPU总线、系统总线和高速总线相连通过桥实现。
8.计算机软件一般分为系统软件和应用软件。
9.完整的计算机系统由硬件系统和软件系统构成。
10.机器字长是指一台计算机一次所能够处理的二进制位数量。
11.数据分类、统计、分析属于计算机在数据处理方面的应用。
12.计算机是一种信息处理机,它最能准确地反映计算机的主要功能。
13.个人台式商用机属于微型机。
14.对计算机软硬件进行管理,是操作系统的功能。
15.用于科学技术的计算机中,标志系统性能的主要参数是MFLOPS。
16.通用计算机又可以分为超级机、大型机、服务器、工作站、微型机和单片机六类。
17.“存储程序控制”原理是冯.诺依曼提出的。
18.运算器和控制器构成CPU,CPU和主存构成主机。
19.取指令所用的时间叫取指周期,执行指令所用的时间叫执行周期。
20.每个存储单元都有一个编号,该编号称为地址。
21.现代计算机存储系统一般由高速缓存、主存和辅存构成。
22.计算机能够自动完成运算或处理过程的基础是存储程序和程序控制原理。
二.单选1.存储器用来存放( C )。
A.数据B.程序C.数据和程序D.正在被执行的数据和程序2.下面的描述中,正确的是( B )A.控制器能够理解、解释并执行所有的指令及存储结果。
单片微型计算机与接口技术思考与习题77.1 8XX51单片机内部设有几个定时/计数器?它们是由哪些专用寄存器组成的?答:(1)8XX51单片机内部设有2个定时/计数器。
(2)定时/计数器T1由寄存器TH1、TL1组成,定时/计数器T0由寄存器TH0、TL0组成。
7.3定时/计数器用作定时时,其定时时间与哪些因素有关?用作计数时,对外界计数频率有何限制?答:设置为定时工作方式时,定时器计数的脉冲是由51单片机片内振荡器经12分频后产生的。
每经过一个机器周期定时器(T0或T1)的数值加1直至计数满产生溢出。
设置为计数工作方式时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数。
当输入脉冲信号产生由1至0的下降沿时,定时器的值加1, 在每个机器周期CPU采样T0和T1的输入电平。
若前一个机器周期采样值为高,下一个机器周期采样值为低,则计数器加1。
由于检测一个1至0的跳变需要二个机器周期,故最高计数频率为振荡频率的二十四分之一。
7.5利用8XX51的T0计数。
每计10个脉冲,P1.0变反一次,用查询和中断两种方式编程。
使用方式2,计数初值C=100H—0AH=F6H查询方式:ORG 0000HMOV TMOD,#06HMOV TH0,#0F6HMOV TL0,#0F6HSETB TR0ABC:JNB TF0,$CLR TF0CPL P1.0SJMP ABC中断方式:ORG 0000HAJMP MAINORG 0000BHCPL P1.0RETIMAIN:MOV TMOD,#06HMOV THO,#0F6HSETB EASETB ET0SETB TR0SJMP $7.7已知8XX51单片机系统时钟频率为6MHz,利用定时器T0使P1.2每隔350us,输出一个50us脉宽的正脉冲。
解:fosc=6MHz,MC=2us,方式2的最大定时为512us,合乎题目的要求。
50us时,计数初值为C1=256-25=E7H,350us时,计数初值为C2=256-175=51HORG 0000HMOV TMOD,#02HNEXT:MOV TH0,#51HMOV TL0,51HCLR P1.2SETB TR0AB1:JBC TF0,EXTSJMP AB1EXT:SETB P1.2MOV TH0,#0E7HMOV TL0,#0E7HAB2:JBC TF0,NEXTSJMP AB27.9设系统时钟频率为6MHz,试用定时器T0作为外部计数器,编程实现每计到1000个脉冲后,使T1定时2ms,然后T0又开始计数,这样反复循环。
1.控制器有哪几种控制方式?各有何特点?解:控制器的控制方式可以分为3种:同步控制方式、异步控制方式和联合控制方式。
同步控制方式的各项操作都由统一的时序信号控制,在每个机器周期中产生统一数目的节拍电位和工作脉冲。
这种控制方式设计简单,容易实现;但是对于许多简单指令来说会有较多的空闲时间,造成较大数量的时间浪费,从而影响了指令的执行速度。
异步控制方式的各项操作不采用统一的时序信号控制,而根据指令或部件的具体情况决定,需要多少时间,就占用多少时间。
异步控制方式没有时间上的浪费,因而提高了机器的效率,但是控制比较复杂。
联合控制方式是同步控制和异步控制相结合的方式。
2.什么是三级时序系统?解:三级时序系统是指机器周期、节拍和工作脉冲。
计算机中每个指令周期划分为若干个机器周期,每个机器周期划分为若干个节拍,每个节拍中设置一个或几个工作脉冲。
3.控制器有哪些基本功能?它可分为哪几类?分类的依据是什么?解:控制器的基本功能有:(1)从主存中取出一条指令,并指出下一条指令在主存中的位置。
(2)对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作。
(3)指挥并控制CPU 、主存和输入输出设备之间的数据流动。
控制器可分为组合逻辑型、存储逻辑型、组合逻辑与存储逻辑结合型3类,分类的依据在于控制器的核心———微操作信号发生器(控制单元CU)的实现方法不同。
4.中央处理器有哪些功能?它由哪些基本部件所组成?解:从程序运行的角度来看,CPU 的基本功能就是对指令流和数据流在时间与空间上实施正确的控制。
对于冯? 诺依曼结构的计算机而言,数据流是根据指令流的操作而形成的,也就是说数据流是由指令流来驱动的。
5.中央处理器中有哪几个主要寄存器?试说明它们的结构和功能。
解:CPU 中的寄存器是用来暂时保存运算和控制过程中的中间结果、最终结果及控制、状态信息的,它可分为通用寄存器和专用寄存器两大类。
通用寄存器可用来存放原始数据和运算结果,有的还可以作为变址寄存器、计数器、地址指针等。
1.1-1.26qufac dikjo wpnry slgxz tbhme v1.27-1.44jbfji edgcj dcjbf haa3.1、1: t0=02: t1=13: if (a0<t1) t2=1; else t2=04: if (t2= =0) goto finish5: t0=t0+t16: t1=t1+27: jump to loop8: v0=t03.2、Find the element which appears most times, $v0 stores the the maxium number of theidentical integer in the array, $v1 stores its value.3.4、addi $t0,$t1,1003.5、lui $t1,61addi $t1,$t1,2304lw $t2,11($t1)add $t2,$t2,$t0sw $t2,10($t1)3.6、Loop: lw $v1, 0($a0)sw $v1, 0($a1)addi $a0, $a0, 4addi $a1, $a1, 4beq $v1, $zero, Endaddi $v0, $v0, 1j LoopEnd:3.7、1: I format,3: I format,4: I format,5: I format,6: I format,3.8、v0=0;v1=a0;v0++;a1=v1;a0++;a1++;if(v1= =0) goto loop;v0--;3.9、bne $t0,$s5,exitloop: add $t1,$s3,$s3add $t1,$t1,$t1add $s3,$s3,$s6lw $t0,0(t1)beq $t0,$s5,loop exit:3.11、slti $t5,$t0,1bne $t0,1,exitloop: addi $t0,$zero,0add $t4,$t0,$t0add $t4,$t4,$t4lw $t1,0($a0)add $t2,$t4,$t1add $t3,$a1,$t1sw $t2,0($t3)addi $t0,$t0,1slti $t5,$t0,101beq $t5,1,loopexit:3.23、loop: addi $t0,$zero,98lb $t1,0($a0)addi $a0,$a0,1beq $t1,$zero,exitbne $t1,$t0,loopbeq $t1,$t0,nextsub $v0,$a0,1exit: add $v0,$zero,$zeronext:3.24、bcount: addi $sp,$sp,-12sw $ra,8($sp)sw $a0,4($sp)sw $s0,0($sp)add $s0,$zero,$zeroNext: jal bfindadd $a0,$v0,$zerolb $t0,0($a0)beq $t0,$zero,End #encounter nulladdi $s0,$s0,1addi $v0,$v0,1j NextEnd: add $v0,$s0,$zerolw $s0,0($sp)lw $a0,4($sp)lw $ra,8($sp)addi $sp,$sp,12jr $ra4.1、000000000000000000000010000000004.2、111111111111111111111100000000014.4、-5004.5、-14.6、21474836474.10、loop: sub $t3,$zero,$t3slt $t0,$t3,$zerobeq $t0,$zero,loopadd $t2,$t3,$zero how to use 3 instructions?4.13、If A_lower is positive, A_upper_adjusted equals to A_upper.If A_lower is negative, A_upper_adjusted equals to A_upper+1.4.17、addu $t0, $t3,$t4sltu $t2,$t0,$t34.22、srl $t0,$s0,8andi $s1,$t0,40954.23、when it overflew , set should be converted .4.40、xor $s0,$s0,$s1xor $s1,$s1,$s0xor $s0,$s0,$s14.46、ripple carry c1=a0*c0+b0*c0+a0*b0 2Tc2=a1*c1+b1*c1+a1*b1 4Tc3=a2*c2+b2*c2+a2*b2 6TThe worst case : c4=a3*c3+b3*c3+a3*b3 8TCarry look ahead : gi=ai*bi T pi=ai+bi Tc1=c2=c3=c4=3T4.53、4.54、step1 6.42*101=0.642*102step2 9.51*102+0.642*102=10.152*102step3 10.152*102=1.0152*102step4 1.0152*103 is rounded to three significant digits 1.015*1034.55、6.42X101=0.642X1020.642+9.51=10.1526.42X101+9.51X102=10.152X102=1.0152X103so the answer is 1.02X1035.1、RegDst=0 lw sw and branchAluSrc=0 R-format beqMemtoReg=0 R-format sw and beqZero=0 R-format sw and lw5.2、RegDst=1 R-format sw and beqAluSrc=1 lw and swMemtoReg=1 lw sw and beqZero=1 R-format lw and sw5.6、修改两个信号:MemtoReg: 00 :Alu result01 :From Mem data10 :PC+4RegDst: 00 : Instruction[20-16]01 :Instruction[15-11]10 :$ra寄存器5.8、lw $t0 ,$t1,$t25.14、P374页图Instruction a b cR-formatlwswbeqjlongest8 10 10time5.165.17、5.22、jr rsIt is an R-type instruction.So the changes can be made like following .5.24、M1=5*22%+4*11%+4*49%+3*16%+3*2%=4.04M2=4*22%+4*11%+3*49%+3*16%+3*2%=3.33M3=3*22%+3*11%+3*49%+3*16%+3*2%=3So the CPU excution time isT1=CPI*Clockcycletime=4.04/(500*106 )=8.08nsT2=3.33/(400*106 )=8.325nsT3=3/(250*106 )=12nsHence M1 is the fastest machine.5.26、beq $t3,$zero,Exitadd $t3,$t3,$t3add $t3,$t3,$t3 #get 4*$t3add $t3,$t3,$t2 #caculate the address of destination[$t3] loop: lw $t4,0($t1)sw $t4,0($t2)addi $t1,$t1,4addi $t2,$t2,4bne $t2,$t3,loopExit:branch 3 lw 5 and the rest are 4The number of executed instructions is 4+5*100=504The nmber of cycles is3+3*4+(5+4*3+3)*100=20155.27、1. According to the figure above there will be two changes.1>Extend the multiplexor for ALUSrcA by adding ALUout to it .We mark it with 102> We add a multiplexor between B and Memory write data ,connect memory dataregister with the multiplexor and mark it with 1.The multi is controled by the ]signal bcp.2. By making these changes ,we can directly increase the address $t1,$t2,in ALUout by 4When the memory data loading from $t1is read into memory data register, we canquickly write it into memory by setting bcp to 0.3. By estination ,we can cut down clock cycles distinctively by implementing theinstruction in hardware above .The performance increase comes from adding internal registers.7.7、7.8、7.9、212*(32*4+16+1)=580Kb7.11、a. 1+16*10+16*1=177 clock cyclesb. 1+4*10+4*1=45 clock cyclesc. 1+4*10+16*1=57 clock cycles7.12、The CPI of a is 1.2+0.5%*177=2.085The CPI of b is 1.2+0.5%*45=1.425The CPI of c is 1.2+0.5%*57=1.485The processor using wide memory is 2.085/1,425=1.46 times faster than using nerrowand 1.04 times faster than the one using interleaved memories.7.15、AMAT=(1+0.05*20)*2ns=4ns7.20、7.22、7.24、The number of sets in the cache: S/ABThe number of index bits in the address: log2(S/AB)The number of bits needed to implement the cache : Tag =k- log2(S/AB)-log2B7.27、Cache1: X+(4%+0.5*8%)*7=2So,X=1.44Cache2: 1.44+(2%+0.5*5%)*10=1.85Cache3: 1.44+(2%+0.5*4%)*10=1.84Thus,machine1spemds the most cycles on cache mises.7.32、Page size is 16-KB=214B240/214=226Total size of bits 226*(36-14+4)=208MB7.33、Virtual addressCache hit8.1 A 200 1000/5B 150 750/58.2 (1)n*5*(1/1000)+n*(1/10)*(20/1000)=1 n=142(2)5*n*(1/750)+500/5*(1/10)*18*(1/1000)+(5n-500)/5/5/10*25/1000 =1 n=1168.3 7和8距离近的那张图,原因是路程短8.10 a=1+19.7ms/5ns+2+2=3.9*10^6 cyclesb=3.94*10^6*128/4=1.26*10^8cycles) 32/b=50.798/a=12.750.79 12.78.18 17.84。