计算机组成原理:应用题

计算机组成原理:应用题
计算机组成原理:应用题

应用题

1、CPU执行一段程序时, cache完成存取的次数为2420次,主存完成存取的次数为80次,已知cache存储周期为40ns,主存存储周期为240ns,求cache/主存系统的效率和平均访问时间。

正确答案:解:

先求命中率h

h=n c/(n c+n m)=2420÷(2420+80)=0.968

则平均访问时间为ta

ta=0.968×40+(1-0.968)×240=46.4(ns)

r=240÷40=6

cache/主存系统的效率为e

e=1/[r+(1-r)×0.968]=86.2%

2、某机器中,已知配有一个地址空间为0000H-3FFFH的ROM区域。现在再用一个RA M芯片(8K×8)形成40K×16位的RAM区域,起始地址为6000H,假定RAM芯片有/CS和/WE 信号控制端。CPU的地址总线为A15-A0,数据总线为D15-D0,控制信号为R/W (读/写),/MREQ (访存)。

要求:(1)画出地址译码方案。(2)将ROM与RAM同CPU连接。

正确答案:解:

(1)依题意,主存地址空间分布如右图所示,可选用2片16K×8位的EPROM作为ROM 区;10片的8K×8位RAM片组成40K×16位的RAM区。ROM需14位片内地址,而RAM 需13位片内地址,故可用A15-A13三位高地址经译码产生片选信号,方案如下:

(2)如图

3、用16K×8位的DRAM芯片组成64K×32位存储器,画出该存储器的组成逻辑框图。

正确答案:解:

组成64K×32位存储器需存储芯片数为

N=(64K/16K)×(32位/8位)=16(片)

每4片组成16K×32位的存储区,有A13-A0作为片内地址,用A15,A14经2:4译码器产生片选信号,逻辑框图如下所示:

4、如下图,当CPU对设备B的中断请求进行服务时,如设备A提出请求,CPU能够响应中断吗?为什么?如果设备B一提出请求总能立即得到服务,问怎样调整才能满足此要求?

正确答案:解:

(1)CPU不能响应中断

(2)因为同级中断不能嵌套,而A、B设备属于同级中断

(3)如果想要设备B一提出请求即能得到服务,则应该使设备B为最高优先级,这里可将设备B单独接至3级IR,处于最高优先级。

5、设某总线在一个总线周期中并行传送8个字节的数据,假设一个总线周期等于五个总线时钟周期,总线时钟频率为60MHz,求总线带宽等于多少?

正确答案:解:

总线带宽=8B×60×106/5=96MB/s

6、设在异步串行传输系统中,每秒可传输20个数据帧,一个数据帧包含一个起始位,7个数据位,一个奇校验位,一个结束位,试计算其波特率和比特率。

正确答案:解:

波特率=(1+7+1+1)×20=200波特,

比特率=20×7=140b/s

7、某总线在一个总线周期中并行传送8个字节的数据,假设一个总线周期等于一个总线时钟周期,总线时钟频率为70MHZ ,求总线带宽是多少?

正确答案:解:

设总线带宽用Dr表示,总线时钟周期用T=1/f表示,一个总线周期传送的数据量用D 表示,

根据定义可得:

Dr=T/D=D×1/f=8B×70×106/s=560MB/

8、用异步通信方式传送字符"A"和"8",数据有7位,偶校验1 位。起始位1位, 停止位l 位,请分别画出波形图。

正确答案:解:

字符A的ASCII码为41H=1000001B;

字符8的ASCII码为38H=0111000B;

串行传送波形图为:

注:B:起始位C:校验位S:停止位

9、某计算机的CPU主频为500MHz,CPI为5(即执行每条指令平均需5个时钟周期)。假定某外设的数据传输率为0、5MB/s,采用中断方式与主机进行数据传送,以32位为传输单位,对应的中断服务程序包含18条指令,中断服务的其他开销相当于2条指令的执行时间。请回答下列问题,要求给出计算过程。

(1)在中断方式下,CPU用于该外设I/O的时间占整个CPU时间的百分比是多少?

(2)当该外设的数据传输率达到5MB/s时,改用DMA方式传送数据。假定每次D MA传送大小为5000B,且DMA预处理和后处理的总开销为500个时钟周期,则CPU用于该外设I/O的时间占整个CPU时间的百分比是多少?(假设DMA与CPU之间没有访存冲突)(2009年原题、第八章:输入输出系统)

正确答案:试题分析:

(1)在中断方式下,每32位(4B)被中断一次,故每秒中断

0.5MB/4B =0.5×106/4 = 12.5×104次

要注意的是,这里是数据传输率,所以1MB=106B。因为中断服务程序包含18条指令,中断服务的其他开销相当于2条指令的执行时间,且执行每条指令平均需5个时钟周期,所以,

1秒钟之内用于中断的时钟周期数为

(18+2)×5×12.5×104=12.5×106

因为计算机的CPU主频为500MHz,故CPU用于中断的时间占整个CPU时间的百分比是((12.5×106)/(500×106))×100%=2.5%

(2)在DMA方式下,每秒进行DMA操作

5MB/5000B =5×106/5000 = 1×103次

因为DMA预处理和后处理的总开销为500个时钟周期,所以1秒钟之内用于DMA操作的时钟周期数为

500×1×103=5×105

故DMA方式下,占整个CPU时间的百分比是

((5×105)/(500×106))×100%=0.1%

10、某机字长8位,用4K*8位的RAM芯片和2K*8位的ROM芯片设计一个容量为16K 字的存储器,其中RAM为高8K字,ROM为低2K字,最低地址为0。

(1)地址线和数据线各为多少根?

(2)各种芯片的数量是多少?

(3)请画出存储器结构图及与CPU的连接图。

正确答案:(1)地址线14根,数据线8根;

(2)2片RAM,1片ROM;

(3)图略。

11、流水线中有三类数据相关冲突:写后读(RAW)相关;读后写(WAR)相关;写后写(WAW)相关。判断以下三组指令各存在哪种类型的数据相关。

(1) I1 LAD R1,A ;M(A)→R1,M(A)是存储器单元

I2 ADD R2,R1 ;(R2)+(R1)→R2

(2) I3 ADD R3,R4 ;(R3)+(R4)→R3

I4 MUL R4,R5 ;(R4)×(R5)→R4

(3) I5 LAD R6,B ;M(B)→R6,M(B)是存储器单元

I6 MUL R6,R7 ;(R6)×(R7)→R6

正确答案:解:

(1)写后读(RAW)相关;

(2)读后写(WAR)相关,但不会引起相关冲突;

(3)写后读(RAW)相关、写后写(WAW)相关

12、今有4级流水线分别完成取值、指令译码并取数、运算、送结果四步操作,今假设完成各步操作的时间依次为100ns,100ns,80ns,50ns。

请问:

(1)流水线的操作周期应设计为多少?

(2)若相邻两条指令发生数据相关,而且在硬件上不采取措施,那么第二条指令要推迟多

少时间进行。

(3)如果在硬件设计上加以改进,至少需推迟多少时间?

正确答案:解:

(1)流水线的操作时钟周期t应按四步操作中最长时间来考虑,所以t=100ns;

(2)两条指令发生数据相关冲突情况::

ADDR1,R2,R3;R2+R3→R1

SUBR4,R1,R5;R1-R5→R4

两条指令在流水线中执行情况如下表所示:

ADD指令在时钟4时才将结果写入寄存器R1中,但SUB指令在时钟3时就需读寄存器R1了,显然发生数据相关,不能读到所需数据,只能等待。如果硬件上不采取措施,第2条指令SUB至少应推迟2个操作时钟周期,即t=2×100ns=200ns;

(3)如果硬件上加以改进(采取旁路技术),这样只需推迟1个操作时钟周期就能得到所需数据,即t=100ns。

13、已知某机采用微程序控制方式,其控制存储器容量为:512×48(位)。微程序可在整个控制存储器中实现转移,可控制微程序转移的条件共4个,微指令采用水平型格式,后继微指令地址采用断定方式。

请问:

(1)微指令中的三个字段分别应为多少位?

(2)画出围绕这种微指令格式的微程序控制器逻辑框图。

正确答案:解:(l)假设判别测试字段中每一位作为一个判别标志,那么由于有4个转移条件,故该字段为4位;又因为控存容量为512单元,所以下地址字段为9位。

微命令字段则是:

(48-4-9)=35位。

(2)对应上述微指令格式的微程序控制器逻辑框图如下图所示。

其中微地址寄存器对应下地址字,P字段即为判别测试字段,控制字段即为微命令字段,后两部分组成微指令寄存器。地址转移逻辑的输入是指令寄存器的OP码、各种状态条件以及判别测试字段所给的判别标志(某一位为1),其输出用于控制修改微地址寄存器的适当位数,从而实现微程序的分支转移(此例微指令的后继地址采用断定方式)。

14、某机有8条微指令I1-I8,每条微指令所包含的微命令控制信号如下表所示。

正确答案:a-j分别对应10种不同性质的微命令信号。假设一条微指令的控制字段为8位,请安排微指令的控制字段格式。解:经分析,(e,f,h)和(b,i,j)可分别组成两个小组或两个字段,然后进行译码,可得六个微命令信号,剩下的a,c,d,g四个微命令信号可进行直接控制,其整个控制字段组成如下:

15、假设某机器有80条指令,平均每条指令由4条微指令组成,其中有一条取指微指令是所有指令公用的。已知微指令长度为32位,请估算控制存储器容量。

正确答案:解:

微指令条数为:(4-1)×80+1=241条

取控存容量为:256×32位=1KB

16、参见下图的数据通路,画出取数指令"LDA(R3),RO"的指令周期流程图,其含义是将(R3)为地址的主存单元的内容取至寄存器R0中,标出各微操作控制信号序列。

正确答案:解:"LDA(R3),RO"指令是一条取数指令,其指令周期流程图如下图所示:

17、参见下图的数据通路。画出存数指令"STA R1 ,(R2)"的指令周期流程图,其含义是将寄存器R1的内容传送至(R2)为地址的主存单元中。标出各微操作信号序列。

正确答案:解:"STAR1,(R2)"指令是一条存数指令,其指令周期流程图如下图所示:

18、设运算器结构如下图所示,IR为指令寄存器,R1~R3是三个通用寄存器,其中任何一个都可以作为源寄存器或目标寄存器,A和B是三选一多路开关,通路的选择分别由AS 0、AS1和BS0、BS1控制,S1、S2是ALU的操作性质控制器:当S1S2=00时,ALU输出B;=01时输出A+B;=10时输出A-B;=11时输出?B。另有三条机器指令:MOV(从源寄存器传送一个数到目标寄存器)、ADD(源寄存器内容于目标寄存器内容相加后送目标寄存器)和COM(源寄存器内容取反后送目标寄存器)。假设控存CM仅有16个单元,且只考虑运算器数据通路的控制,请设计微指令格式。

正确答案:微指令参考格式如下:

AS1 AS0 BS1 BS0 S2 S1 +1 ALU-BUS LDIR LDR1 LDR2 LDR3 P1 P2 μA3-μA3

位号1 2 3 4 5 6 7 8 9

10 11 12 13 14 15-18

19、流水线中有写后读、读后写和写后写三种数据相关冲突,试判断下面指令存在哪种类型的数据相关。

I1:ADD R1,R2,R3 ;R2+R3 -> R1

I2:SUB R4,R1,R5 ;R1-R5 -> R4

正确答案:解:

在I2指令进入流水线时,可能出现在I1指令写入R1前就读出R1内容,发生了写后读相关。

20、已知CPU结构如下图所示,其中包括一个累加器AC、一个状态寄存器和其他几个寄存器。各部分之间的连线表示数据通路,箭头表示信息传递方向。试完成以下工作:①写出图中四个寄存器A、B、C、D的名称和作用;②简述完成指令ADD Y的数据通路(Y 为存储单元地址,本指令功能为(AC)+(Y)→AC)。

正确答案:解答:

A-数据缓冲寄存器DR、

B-指令寄存器IR、

C-主存地址寄存器AR、

D-程序计数器PC。

操作的数据通路为:

PC→AR→MM→DR→IR→Y→AR(MAR)→MM→DR(MDR)→ALU→ADD(控制信号)→AC

21、

假定在一个8位字长的计算机中运行如下类C程序段:(2010年原题、第二章:运算方法和运算器)

unsigned int x = 134;

unsigned int y = 246;

int m = x;

int n = y;

unsigned int z1 = x-y;

unsigned int z2 = x+y;

int k1 = m-n;

int k2 = m+n;

若编译器编译时将8个8位寄存器R1~R8分别分配给变量x、y、m、n、z1、z2、k1和k2。请???答下列问题。(提示:带符号整数用补码表示)

(1)执行上述程序段后,寄存器R1、R5和R6的内容分别是什么?(用十六进制表示)

(2)执行上述程序段后,变量m和k1的值分别是多少?(用十进制表示)

(3)上述程序段涉及带符号整数加/减、无符号整数加/减运算,这四种运算能否利用同一个加法器辅助电路实现?简述理由。(4)计算机内部如何判断带符号整数加/

减运算的结果是否发生溢出?上述程序段中,哪些带符号整数运算语句的执行结果会发生溢出?

正确答案:

解答:

(1)R1=134=86H, R5=90H, R6=7CH;

134=1000 0110B=86H;x-y=1000 0110B-1111 0110B=1001 0000B=90H;x+y=1000 0110B+1111 0110B=0111 1100B(溢出)

(2)m=-122,k1=-112

m=1000 0110B,做高位为符号位,则m的原码为1111 1010B=-122;n=1111 0110B n的原码为1000 1001=-10;k1=m-n=-112。

(3)无符号数和有符号数都是以补码的形式存储,加减运算没有区别(不考虑溢出情况时),只是输出的时候若是有符号数的最高位是符号位。

减法运算求[-x]补的时候,是连同符号位一起按位取反末位加1,但是如果有溢出情况,这两者是有区别的,所以可以利用同一个加法器实现,但是溢出判断电路不同。

(4)判断方法是如果最高位进位和符号位的进位不同,则为溢出;“int k2=m+n;”会溢出;

三种方法可以判断溢出,双符号位、最高位进位、符号相同操作数的运算后与原操作数的符号不同则溢出。

22、某计算机的主存地址空间大小为256MB,按字节编址,指令Cache和数据C ache分离,均有8个Cache行,每个Cache行大小为64B,数据Cache采用直接映射方式,现有两个功能相同的程序A和B,其伪代码如下所示:(2010年原题、第三章:存储系统)

假定int类型数据用32位补码表示,程序编译时i,j,sum均分配在寄存器中,数组a按行优先方式存放,其地址为320(十进制数)。请回答下列问题,要求说明理由或给出计算过程。

(1)若不考虑用于Cache一致性维护和替换算法的控制位,则数据Cache的总容量为多少?

(2)数组无素a[0][31]和a[1][1]各自所在的主存块对应的Cache行号分别是多少(Cache行号从0开始)?

(3)程序A和B的数据访问命中率各是多少?哪个程序的执行时间更短?

正确答案:

【解答】

(1)数据Cache 的总容量为:4256 位(532 字节)。

(2)数组a 在主存的存放位置及其与Cache 之间的映射为:

a[0][31]所在主存块映射到Cache 第6 行,

a[1][1] 所在主存块映射到Cache 第5 行。

(3)编译时i, j, sum 均分配在寄存器中,故数据访问命中率仅考虑数组a 的情况。

①程序A 的数据访问命中率为93.75%;

②程序B 的数据访问命中率为0。

程序A 的执行比程序B快得多。

【解析]】

(1)主存容量256MB,按字节寻址的地址位数应为28 位,数据Cache分为8 行(用3 位地址),每行64B(用6 位地址),因此Cache 中每个字块的Tag 字段的位数应是28-9=19 位,还要使用一个有效位,二者合计为20 位;因此数据Cache 的总容量应为:64B×8+(20/8×8)B= 532B。

(2)数组a 在主存的存放位置及其与Cache 之间的映射关系如下图所示。

数组A[0][31]所在的主存块对应的Cache 行号是:

(320+31×4)div 64 = 6,

数组A[1][1]所在主存块对应的Cache 行号:

((320+256×4+ 1×4) div 64) mod 8 = 5。

所以a[0][31]所在主存块映射到Cache 第6行,

a[1][1]所在主存块映射到Cache 第5行。

(3)编译时i, j, sum 均分配在寄存器中,故数据访问命中率仅考虑数组a 的情况。

①这个程序的特点是数组中的每一个int 类型的数据只被使用一次。数组A 按行优先存放,数据Cache 正好放下数组半行中的全部数据,即数据的存储顺序与使用次序有更高的吻合度,每个字块存16 个int类型的数据,访问每个字块中头一个字不会命中,但接下来的15 个字都会命中,访问全部字块都符合这一规律,命中率是15/16,即程序

A 的数据访问命中率为93.75%;

②程而程序B 是按照数组的列执行外层循环,在内层循环过程中,将连续访问不同行的同一列的数据,不同行的同一列数据使用的是同一个Cache 单元,每次都不会命中,命中率是0,程序执行特别慢。根据上述计算出的命中率,得出程序B 每次取数都要访问主存,所以程序A 的执行比程序B 快得多。

23、

正确答案:

试题分析:

指令执行阶段每个节拍的功能和有效控制信号如表2所示。

24、某磁盘存贮器转速为3000转/ 分,共有4个记录面,每毫米5道,每道记录信息为1 2288字节,最小磁道直径为230mm,共有275道。

问:

(1)磁盘存贮器的容量是多少?

(2)最高位密度与最低位密度是多少?

(3)磁盘数据传输率是多少?

(4)平均等待时间是多少?

正确答案:解:

(1)每道记录信息容量=12288字节

每个记录面信息容量=275×12288字节

共有4个记录面,所以磁盘存储器总容量为:

4×275×12288字节=13516800字节

(2)最高位密度D1按最小磁道半径R1计算(R1=115mm):

D1=12288字节/2πR1=17字节/mm

最低位密度D2按最大磁道半径R2计算:

R2=R1+(275÷5)=115+55=170mm

D2=12288字节/2πR2=11.5字节/mm

(3)磁盘传输率C=r·N

r=3000/60=50周/秒

N=12288字节(信道信息容量)

C=r·N=50×12288=614400字节/秒

(4)平均等待时间=1/2r=1/(2×50)=10毫秒

25、

下图为某16位机的主存空间构成示意图,其中RAM为8K*16的随机存储器,ROM位8K*16位的只读存储器。仔细分析该图,并按要求答题。

(1)该存储器最大空间有多少?已经构成的空间有多少?

(2)图中构成的地址空间分布是怎样的?画出地址空间分布图。

正确答案:(1)存储器最大存储空间是64K字,已经构成的空间有24K字;

(2)两个ROM芯片构成存储器的低16K字空间,一个RAM芯片构成存储器的最大地址的8K字空间。分布图略。

26、某8位机地址16位,用8K*8位的ROM芯片和8K*8位的ram芯片组成存储器,按字节编址,其中RAM的地址为0000H~5FFFH,ROM的地址为6000H~9FFFH。要求:(1)画出存储器空间分布图,并确定需要的RAM以及RAM芯片数量;

(2)画出此存储器组成结构图及与CPU的连接图。

正确答案:(1)图略;需要3片RAM,2片ROM;

(2)图略。

27、主存容量为4MB,虚存容量为1GB,则虚存地址和物理地址各为多少位?如页面大小为4KB,则页表长度是多少?

正确答案:解:

已知主存容量为4MB,虚存容量为1GB

∵222=4M

∴物理地址为22位

又∵230=1G∴

虚拟地址为30位

页表长度为1GB÷4KB=230÷212=218=256K

28、一种单地址指令格式如下所示,其中I为间接特征,X为寻址模式,D为形式地址。I,X,D组成该指令的操作数有效地址E。设R为变址寄存器,R1 为基值寄存器,PC为程序计数器,请在下表中第一列位置填入适当的寻址方式名称。

正确答案:解:①直接寻址②相对寻址③变址寻址④基址寻址⑤间接寻址⑥基址间址寻址

29、

某计算机存储器按字节编址,虚拟(逻辑)地址空间大小为16MB,主存(物理)地址空间大小为1MB,页面大小为4KB;Cache采用直接映射方式,共8行;主存与Cac he之间交换的块大小为32B。系统运行到某一时刻时,页表的部分内容和Cache的部分内容分别如题44-a图、题44-b图所示,图中页框号及标记字段的内容为十六进制形式。(2011年原题:第三章:内部存储器:Cache)

正确答案:

解答:

(1)24位、前12位;20位、前8位。

16M=224故虚拟地址24位,4K=212,故页内地址12位,所以虚页号为前12位;1M=220故物理地址20位,20-12=8,故前8位为页框号。

(2)

主存字块标记(12bit)、cache字块标记(3bit)、字块内地址(5bit)

物理地址20位,其中,块大小为32B=25B故块内地址5位;cache共8行,8=23,故字块标记为3位;20-5-2=12,故主存字块标记为12位。

(3)在主存中,04C60H, 不命中,没有04C的标记字段

001C60H中虚页号为001H=1,查页表知其有效位为1,在内存中;该物理地址对应的也表项中,页框号为04H故物理地址为04C60H;物理地址04C60H在直接映射方式下,对应的行号为4,有效位为1但是标记位为064H≠04CH故不命中。

(4)在,012的那个标记是对的。

思路:标记11位组地址1位页内地址12位,前12位为0000 0010 0100,组地址位为0,

第0组中存在标记为012的页,其页框号为1F,故024BACH所在的页面存在主存中。30、

某计算机字长为16位,主存地址空间大小为128KB,按字编址,采用等字长指令格式,指令名字段定义如下:(2010年原题、第四章:指令系统)

转移指令采用相对寻址方式,相对偏移是用补码表示,寻址方式定义如下:

注:(X)表示有储蓄地址X或寄存器X的内容,请回答下列问题:

(1)该指令系统最多可有多少条指令?该计算机最多有多少个通用寄存器?存储器地址寄存器(MAR)和存储器数据寄存器(MDR)至少各需多少位?

(2)转移指令的目标地址范围是多少?

(3)若操作码0010B表示加法操作(助记符为add),寄存器R4和R5的编号分别为100B和101B,R4的内容为1234H,R5的内容为5678H,地址1234H中的内容为56 78H,地址5678H中的内容为1234H,则汇编语言为add(R4),(R5)+(逗号前为源操作数,逗号后为目的操作数)对应的机器码是什么(用十六进制表示)?该指令执行后,哪些寄存器和存储单元的内容会改变?改变后的内容是什么?

正确答案:

该题的考点是指令系统设计,注意操作码位数与指令条数的关系,地址码与寄存器数的关系,指令字长与MDR的关系,存储容量与MAR的关系;注意补码计算的偏移地址。(1)指令系统最多支持16 条指令;支持8 个通用寄存器;

MAR 至少为16 位;MDR 至少为16 位。

(2)转移指令的目标地址范围为0000H~FFFFH。

(3)汇编语句“add (R4), (R5)+”,对应的机器码为:2315H。

“add (R4), (R5)+”指令执行后,R5 和存储单元5678H 的内容会改变。执行后,R5 的内容为5679H。内存5678H 单元的内容为68ACH。

【解析]】

(1)该指令系统最多支持24=16 条指令;支持23=8 个通用寄存器;

因为地址空间大小为128 KB,按字编址,故共有64 K 个存储单元,地址位数为16 位,所以MAR 至少为16 位;因为字长为16 位,所以MDR 至少为16 位。

(2)转移指令的目标地址范围为0000H~FFFFH。

(3)对于汇编语句“add (R4), (R5)+”,对应的机器码为:0010 001 100010 101B,用十六进制表示为2315H。

该指令的功能是:把内存1234H 单元中的数据与内存5678H 单元中的数据进行相加,结果写回到5678H 单元,而且R5 的内容用作内存地址之后,还要执行R5 的内容加1 的操作,所以“add (R4), (R5)+”指令执行后,R5 和存储单元5678H 的内容会改变。执行后,R5 的内容从5678H 变为5679H。内存5678H 单元的内容将变为该加法指令计算得到的和:5678H+1234H=68ACH。

相关主题
相关文档
最新文档