计算机组成原理考研大题Word格式文档下载.docx

上传人:b****1 文档编号:1398503 上传时间:2023-04-30 格式:DOCX 页数:28 大小:2.75MB
下载 相关 举报
计算机组成原理考研大题Word格式文档下载.docx_第1页
第1页 / 共28页
计算机组成原理考研大题Word格式文档下载.docx_第2页
第2页 / 共28页
计算机组成原理考研大题Word格式文档下载.docx_第3页
第3页 / 共28页
计算机组成原理考研大题Word格式文档下载.docx_第4页
第4页 / 共28页
计算机组成原理考研大题Word格式文档下载.docx_第5页
第5页 / 共28页
计算机组成原理考研大题Word格式文档下载.docx_第6页
第6页 / 共28页
计算机组成原理考研大题Word格式文档下载.docx_第7页
第7页 / 共28页
计算机组成原理考研大题Word格式文档下载.docx_第8页
第8页 / 共28页
计算机组成原理考研大题Word格式文档下载.docx_第9页
第9页 / 共28页
计算机组成原理考研大题Word格式文档下载.docx_第10页
第10页 / 共28页
计算机组成原理考研大题Word格式文档下载.docx_第11页
第11页 / 共28页
计算机组成原理考研大题Word格式文档下载.docx_第12页
第12页 / 共28页
计算机组成原理考研大题Word格式文档下载.docx_第13页
第13页 / 共28页
计算机组成原理考研大题Word格式文档下载.docx_第14页
第14页 / 共28页
计算机组成原理考研大题Word格式文档下载.docx_第15页
第15页 / 共28页
计算机组成原理考研大题Word格式文档下载.docx_第16页
第16页 / 共28页
计算机组成原理考研大题Word格式文档下载.docx_第17页
第17页 / 共28页
计算机组成原理考研大题Word格式文档下载.docx_第18页
第18页 / 共28页
计算机组成原理考研大题Word格式文档下载.docx_第19页
第19页 / 共28页
计算机组成原理考研大题Word格式文档下载.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

计算机组成原理考研大题Word格式文档下载.docx

《计算机组成原理考研大题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机组成原理考研大题Word格式文档下载.docx(28页珍藏版)》请在冰点文库上搜索。

计算机组成原理考研大题Word格式文档下载.docx

有效控制信号

C1

MAR←(PC)

PCout,MARin

C2

MDR←M(MDR)

PC←(PC)+1

MemR,MDRinE,PC+1

C3

IR←(MDR)

MDRout,IRin

C4

指令译码

44.解答:

题干已给出取值和译码阶段每个节拍的功能和有效控制信号,我们应以弄清楚取指阶段

中数据通路的信息流动作为突破口,读懂每个节拍的功能和有效控制信号。

然后应用到解题

思路中,包括划分执行步骤、确定完成的功能、需要的控制信号。

先分析题干中提供的示例(本部分解题时不做要求):

取指令的功能是根据PC的内容所指主存地址,取出指令代码,经过MDR,最终送至IR。

这部分和后面的指令执行阶段的取操作数、存运算结果的方法是相通的。

C1:

(PC)→MAR

在读写存储器前,必须先将地址(这里为(PC))送至MAR。

C2:

M(MAR)→MDR,(PC)+1→PC

读写的数据必须经过MDR,指令取出后PC自增1。

C3:

(MDR)→IR

然后将读到MDR中指令代码送至IR进行后续操作。

指令“ADD(R1),R0”的操作数一个在主存中,一个在寄存器中,运算结果在主存中。

根据指令功能,要读出R1的内容所指的主存单元,必须先将R1的内容送至MAR,即(R1)→

MAR。

而读出的数据必须经过MDR,即M(MAR)→MDR。

因此,将R1的内容所指主存单元的数据读出到MDR的节拍安排如下:

C5:

(R1)→MAR

C6:

M(MAR)→MDR

ALU一端是寄存器A,MDR或R0中必须有一个先写入A中,如MDR。

C7:

(MDR)→A

然后执行加法操作,并将结果送入寄存器AC。

C8:

(A)+(R0)→AC

之后将加法结果写回到R1的内容所指主存单元,注意MAR中的内容没有改变。

C9:

(AC)→MDR

C10:

(MDR)→M(MAR)

有效控制信号的安排并不难,只需看数据是流入还是流出,如流入寄存器X就是Xin,流出寄存器X就是Xout。

还需注意其他特殊控制信号,如PC+1、Add等。

于是得到参考答案如下:

C5

MAR←(R1)

R1out,MARin

C6

MDR←M(MAR)

MemR,MDRinE

C7

A←(MDR)

MDRout,Ain

C8

AC←(A)+(R0)

R0out,Add,ACin

C9

MDR←(AC)

ACout,MDRin

C10

M(MAR)←(MDR)

MDRoutE,MemW

本题答案不唯一,如果在C6执行M(MAR)→MDR的同时,完成(R0)→A(即选择将(R0)写入A),并不会发生总线冲突,这种方案可节省1个节拍,见下表。

MDR←M(MAR),A←(R0)

MemR,MDRinE,R0out,Ain

AC←(MDR)+(A)

MDRout,Add,ACin

43.(11分)某计算机字长为16位,主存地址空间大小为128KB,按字编址。

采用单字长指令格式,指令各字段定义如图B-4所示。

转移指令采用相对寻址方式,相对偏移量用补码表示,寻址方式定义见表B-1。

151211650

OP

Ms

Rs

Md

Rd

源操作数目的操作数图B-4

表B-1

Ms/Md

寻址方式

助记符

含义

000B

寄存器直接

Rn

操作数=(Rn)

001B

寄存器间接

(Rn)

操作数=((Rn))

010B

寄存器间接、自增

(Rn)+

操作数=((Rn)),(Rn)+1→Rn

011B

相对

D(Rn)

转移目标地址=(PC)+(Rn)

注:

(X)表示存储器地址X或寄存器X的内容。

请回答下列问题:

(1)该指令系统最多可有多少条指令?

该计算机最多有多少个通用寄存器?

存储器地址寄存器(MAR)和存储器数据寄存器(MDR)至少各需要多少位?

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

(3)若操作码0010B表示加法操作(助记符为add),寄存器R4和R5的编号分别为100B和101B,R4的内容为1234H,R5的内容为5678H,地址1234H中的内容为5678H,地址5678H中的内容为1234H,则汇编语言为“add(R4),(R5)+”(逗号前为源操作数,逗号后为

目的操作数)对应的机器码是什么(用十六进制表示)?

该指令执行后,哪些寄存器和存储

单元中的内容会改变?

改变后的内容是什么?

(1)操作码占4位,则该指令系统最多可有24=16条指令;

操作数占6位,寻址方式占3位,于是寄存器编号占3位,则该机最多有23=8个通用寄存器;

主存容量为128KB,按字编址,计算机字长为16位,划分为128KB/2B=216个存储单元,故MDR和MAR至少各需16位。

(2)PC和Rn可表示的地址范围均为0~216-1,而主存地址空间为216,故转移指令的目标地址范围为0000H~FFFFH(0~216-1)。

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

该指令执行后,寄存器R5和存储单元5678H的内容会改变。

执行后,R5的内容从5678H

变成5679H。

存储单元5678H中的内容变成该加法指令计算的结果5678H+1234H=68ACH。

 

44.(12分)某计算机的主存地址空间大小为256MB,按字节编址。

指令Cache和数据Cache分离,均有8个Cache行,每个Cache行大小为64B,数据Cache采用直接映射方

式。

现有两个功能相同的程序A和B,其伪代码如下:

程序A:

inta[256][256]

intsum_array1()

{inti,j,sum=0;

for(i=0;

i<

256;

i++)for(j=0;

j<

j++)sum+=a[i][j];

returnsum;

程序B:

intsum_array2()

for(j=0;

j++)for(i=0;

i++)sum+=a[i][j];

假定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行对应一个标记项,如下图所示。

不考虑用于Cache一致性维护和替换算法的控制位。

地址总长度为28位(228=256M),块内地址6位(26=64),Cache块号3位(23=8),故Tag的位数为28-6-3=19位,还需使用一个有效位,故题中数据Cache行的结构如下图所示。

数据Cache共有8行,因此数据Cache的总容量为8×

(64+20/8)B=532B。

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

数组按行优先方式存放,首地址为320,数组元素占4个字节。

a[0][31]所在的主存块对应的Cache行号为(320+31×

4)/64=6;

a[1][1]所在的主存块对应的Cache行号为(320+256×

4

+1×

4)/64%8=5。

【另解】由

(1)可知主存和Cache的地址格式如下图所示。

278650

标记

块号

块内地址

主存地址

8650

Cache地址

数组按行优先方式存放,首地址320,数组元素占4个字节。

a[0][31]的地址为320+31×

4=1

10111100B,故其对应的Cache行号为110B=6;

a[1][1]的地址为320+256×

4+1×

4=1348=101

01000100B,故其对应的Cache行号为101B=5。

(3)数组a的大小为256×

256×

4B=218B,占用218/64=212个主存块,按行优先存放,程

序A逐行访问数组a,共需访问的次数为216次,未命中次数为212次(即每个字块的第一个数未命中),因此程序A的命中率为(216-212)/216×

100%=93.75%。

【另解】数组a按行存放,程序A按行存取。

每个字块中存放16个int型数据,除访

问的第一个不命中,随后的15个全都命中,访问全部字块都符合这一规律,且数组大小为字块大小的整数倍,故程序A的命中率为15/16=93.75%。

程序B逐列访问数组a,Cache总容量为64B×

8=512B,数组a一行的大小为1KB,正好是Cache容量的2倍,可知不同行的同一列数组元素使用的是同一个Cache单元,故逐列访问每个数据时,都会将之前的字块置换出,也即每次访问都不会命中,命中率为0。

由于从Cache读数据比从主存读数据快很多,所以程序A的执行比程序B快得多。

43.(11分)假定在一个8位字长的计算机中运行如下C程序段:

unsignedintx=134;

unsignedinty=246;

intm=x;

intn=y;

unsignedintz1=x-y;

unsignedintz2=x+y;

intk1=m-n;

intk2=m+n;

若编译器编译时将8个8位寄存器R1~R8分别分配给变量x、y、m、n、z1、z2、k1

和k2。

请回答下列问题。

(提示:

带符号整数用补码表示。

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

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

(3)上述程序段涉及带符号整数加/减、无符号整数加/减运算,这四种运算能否利用同一个加法器辅助电路实现?

简述理由。

(4)计算机内部如何判断带符号整数加/减运算的结果是否发生溢出?

上述程序段中,

哪些带符号整数运算语句的执行结果会发生溢出?

(1)134=128+6=10000110B,所以x的机器数为10000110B,故R1的内容为86H。

246=255-9=11110110B,所以y的机器数为11110110B。

x-y:

10000110+0000

1010=(0)10010000,括弧中为加法器的进位,故R5的内容为90H。

x+y:

10000110+11110110=

(1)01111100,括弧中为加法器的进位,故R6的内容为7CH。

(2)m的机器数与x的机器数相同,皆为86H=10000110B,解释为带符号整数m(用补码表示)时,其值为-1111010B=-122。

m-n的机器数与x-y的机器数相同,皆为90H=10010000B,解释为带符号整数k1(用补码表示)时,其值为-1110000B=-112。

(3)能。

n位加法器实现的是模2n无符号整数加法运算。

对于无符号整数a和b,a+b可以直接用加法器实现,而a-b可用a加b的补数实现,即a-b=a+[-b]补(mod2n),所以n

位无符号整数加/减运算都可在n位加法器中实现。

由于带符号整数用补码表示,补码加/减运算公式为:

[a+b]补=[a]补+[b]补(mod2n),[a-b]补

=[a]补+[-b]补(mod2n),所以n位带符号整数加/减运算都可在n位加法器中实现。

(4)带符号整数加/减运算的溢出判断规则为:

若加法器的两个输入端(加法)的符号

相同,且不同于输出端(和)的符号,则结果溢出,或加法器完成加法操作时,若次高位的

进位和最高位的进位不同,则结果溢出。

最后一条语句执行时会发生溢出。

因为10000110+11110110=

(1)01111100,括弧中为加

法器的进位,根据上述溢出判断规则,可知结果溢出。

44.(12分)某计算机存储器按字节编址,虚拟(逻辑)地址空间大小为16MB,主存(物理)地址空间大小为1MB,页面大小为4KB;

Cache采用直接映射方式,共8行;

主存与Cache之间交换的块大小为32B。

系统运行到某一时刻时,页表的部分内容和Cache的部分内容分别如题44-a图、题44-b图所示,图中页框号及标记字段的内容为十六进制形式。

虚页号有效位页框号行号有效位标记

1

06

0

1

2

3

4

5

6

7

020

04

0

15

01D

02

105

064

2B

14D

32

27A

2

3

5

6

7

题44-a图页表的部分内容题44-b图Cache的部分内容

(1)虚拟地址共有几位,哪几位表示虚页号?

物理地址共有几位,哪几位表示页框号(物理页号)?

(2)使用物理地址访问Cache时,物理地址应划分成哪几个字段?

要求说明每个字段的

位数及在物理地址中的位置。

(3)虚拟地址001C60H所在的页面是否在主存中?

若在主存中,则该虚拟地址对应的物理地址是什么?

访问该地址时是否Cache命中?

要求说明理由。

(4)假定为该机配置一个4路组相联的TLB共可存放8个页表项,若其当前内容(十六进制)如题44-c图所示,则此时虚拟地址024BACH所在的页面是否存在主存中?

(1)虚拟地址为24位,其中高12位为虚页号。

物理地址为20位,其中高8位为物理页号。

(2)20位物理地址中,最低5位为块内地址,中间3位为Cache行号,高12位为标志。

(3)在主存中。

虚拟地址001C60H=000000000001110001100000B,故虚页号为000000000001B,查看000000000001B=001H处的页表项,由于对应的有效位为1,故虚拟地

址001C60H所在的页面在主存中。

页表001H处的页框号(物理页号)为04H=00000100B,与页内偏移110001100000B拼接成物理地址:

00000100110001100000B=04C60H。

对于物理地址00000100110001100000B,所在主存块只能映射到Cache的第3行(即第011B行);

由于该行的有效位=1,标记(值为105H)≠04CH(物理地址高12位),故访

问该地址时Cache不命中。

(4)虚拟地址024BACH=000000100100101110101100B,故虚页号为000000100100B;

由于TLB只有8/4=2个组,故虚页号中高11位为TLB标记,最低1位为TLB组号,它们的值分别为00000010010B(即012H)和0B,因此,该虚拟地址所对应物理页面只可能映射到TLB的第0组。

由于组0中存在有效位=1、标记=012H的项,所以访问TLB命中,即虚拟地址024BACH

所在的页面在主存中。

43.假定某计算机的CPU主频为80MHz,CPI为4,平均每条指令访存1.5次,主存与Cache之间交换的块大小为16B,Cache的命中率为99%,存储器总线宽带为32位。

回答下列问题。

1)该计算机的MIPS数是多少?

平均每秒Cache缺失的次数是多少?

在不考虑DMA

传送的情况下,主存带宽至少达到多少才能满足CPU的访存要求?

2)假定在Cache缺失的情况下访问主存时,存在0.0005%的缺页率,则CPU平均每秒产生多少次缺页异常?

若页面大小为4KB,每次缺页都需要访问磁盘,访问磁盘时DMA传送采用周期挪用方式,磁盘I/O接口的数据缓冲寄存器为32位,则磁盘I/O接口平均每秒发出的DMA请求次数至少是多少?

3)CPU和DMA控制器同时要求使用存储器总线时,哪个优先级更高?

为什么?

4)为了提高性能,主存采用4体低位交叉存储模式,工作时每1/4个存储周期启动一

个体。

若每个体的存储周期为50ns,则该主存能提供的最大带宽是多少?

(1)平均每秒CPU执行的指令数为:

80M/4=20M,故MIPS数为20;

(1分)

平均每条指令访存1.5次,故平均每秒Cache缺失的次数=20M×

1.5×

(1-99%)=300k;

(1

分)

当Cache缺失时,CPU访问主存,主存与Cache之间以块为传送单位,此时,主存带宽为16B×

300k/s=4.8MB/s。

在不考虑DMA传输的情况下,主存带宽至少达到4.8MB/s才

能满足CPU的访存要求。

(2分)

(2)题中假定在Cache缺失的情况下访问主存,平均每秒产生缺页中断300000×

0.0005%=1.5次。

因为存储器总线宽度为32位,所以每传送32位数据,磁盘控制器发出一次DMA请求,故平均每秒磁盘DMA请求的次数至少为1.5×

4KB/4B=1.5K=1536。

(2分)(3)CPU和DMA控制器同时要求使用存储器总线时,DMA请求优先级更高;

因为DMA请求得不到及时响应,I/O传输数据可能会丢失。

(4)4体交叉存储模式能提供的最大带宽为4×

4B/50ns=320MB/s。

44.某16位计算机中,带符号整数用补码表示,数据Cache和指令Cache分离。

题44表给出了指令系统中部分指令格式,其中Rs和Rd表示寄存器,mem表示存储单元地址,

(x)表示寄存器x或存储单元x的内容。

表指令系统中部分指令格式

名称

指令的汇编格式

指令功能

加法指令

ADDRs,Rd

(Rs)+(Rd)->

算术/逻辑左移

SHLRd

2*(Rd)->

算术右移

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2