计算机组成试题及答案.docx

上传人:b****8 文档编号:29613657 上传时间:2023-07-25 格式:DOCX 页数:21 大小:267.18KB
下载 相关 举报
计算机组成试题及答案.docx_第1页
第1页 / 共21页
计算机组成试题及答案.docx_第2页
第2页 / 共21页
计算机组成试题及答案.docx_第3页
第3页 / 共21页
计算机组成试题及答案.docx_第4页
第4页 / 共21页
计算机组成试题及答案.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

计算机组成试题及答案.docx

《计算机组成试题及答案.docx》由会员分享,可在线阅读,更多相关《计算机组成试题及答案.docx(21页珍藏版)》请在冰豆网上搜索。

计算机组成试题及答案.docx

计算机组成试题及答案

本科生期末试卷一

一.选择题(每小题1分,共10分)

1.计算机系统中的存贮器系统是指______。

ARAM存贮器

BROM存贮器

C主存贮器

Dcache、主存贮器和外存贮器

2.某机字长32位,其中1位符号位,31位表示尾数。

若用定点小数表示,则最大正小数为______。

A+(1–2-32)B+(1–2-31)C2-32D2-31

3.算术/逻辑运算单元74181ALU可完成______。

A16种算术运算功能

B16种逻辑运算功能

C16种算术运算功能和16种逻辑运算功能

D4位乘法运算和除法运算功能

4.存储单元是指______。

A存放一个二进制信息位的存贮元

B存放一个机器字的所有存贮元集合

C存放一个字节的所有存贮元集合

D存放两个字节的所有存贮元集合;

5.相联存贮器是按______进行寻址的存贮器。

A地址方式B堆栈方式C内容指定方式D地址方式与堆栈方式

6.变址寻址方式中,操作数的有效地址等于______。

A基值寄存器内容加上形式地址(位移量)

B堆栈指示器内容加上形式地址(位移量)

C变址寄存器内容加上形式地址(位移量)

D程序记数器内容加上形式地址(位移量)

7.以下叙述中正确描述的句子是:

______。

A同一个CPU周期中,可以并行执行的微操作叫相容性微操作

B同一个CPU周期中,不可以并行执行的微操作叫相容性微操作

C同一个CPU周期中,可以并行执行的微操作叫相斥性微操作

D同一个CPU周期中,不可以并行执行的微操作叫相斥性微操作

8.计算机使用总线结构的主要优点是便于实现积木化,同时______。

A减少了信息传输量

B提高了信息传输的速度

C减少了信息传输线的条数

D加重了CPU的工作量

9.带有处理器的设备一般称为______设备。

A智能化B交互式C远程通信D过程控制

10.某中断系统中,每抽取一个输入数据就要中断CPU一次,中断处理程序接收取样的数

据,并将其保存到主存缓冲区内。

该中断处理需要X秒。

另一方面,缓冲区内每存储N

个数据,主程序就将其取出进行处理,这种处理需要Y秒,因此该系统可以跟踪到每

秒______次中断请求。

A.N/(NX+Y)B.N/(X+Y)NC.min[1/X,1/Y]D.max[1/X,1/Y]

二.填空题(每小题3分,共15分)

1.存储并按顺序执行,这是型计算机的工作原理。

2.移码表示法主要用于表示数的阶码E,以利于比较两个的大小和

操作。

3.闪速存储器能提供高性能、低功耗、高可靠性及能力,为现有的体

系结构带来巨大变化,因此作为用于便携式电脑中。

4.微程序设计技术是利用方法设计的一门技术。

具有规整性、可维护

性、C.______等一系列优点。

5.衡量总线性能的重要指标是,它定义为总线本身所能达到的最高。

PCI

总线的带宽可达。

三.(10分)设机器字长32位,定点表示,尾数31位,数符1位,问:

(1)定点原码整数表示时,最大正数是多少?

最小负数是多少?

(2)定点原码小数表示时,最大正数是多少?

最小负数是多少?

四.(9分)设存储器容量为32字,字长64位,模块数m=4,分别用顺序方式和交叉方式进行组织。

存储周期T=200ns,数据总线宽度为64位,总线周期τ=50ns.问顺序存储器和交叉存储器的带宽各是多少?

五.(9分)指令格式如下所示,OP为操作码字段,试分析指令格式特点。

312622181716150

OP

源寄存器

变址寄存器

偏移量

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

←操作控制→←——————顺序控制————————→

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

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

七.(9分)画出PCI总线结构图,说明三种桥的功能。

八.(9分)某机用于生产过程中的温度数据采集,每个采集器含有8位数据缓冲寄存器一个,比较器一个,能与给定范围比较,可发出“温度过低”或“温度过高”的信号,如图B1.1所示。

主机采用外设单独编址,四个采集器公用一个设备码,共用一个接口,允许采用两种方式访问:

(1)定期巡回检测方式,主机可编程指定访问该设备中的某一采集器。

(2)中断方式,当采集温度比给定范围过底或过高时能提出随机中断请求,主机应能判别是哪一个采集器请求,是温度过低或过高。

请拟定该接口中有哪些主要部件(不要求画出完整的连线图),并概略说明在两种方式下的工作原理。

九.(10分)机动题

十.(10分)机动题

本科生期末试卷一答案

一.选择题

1.D2.B3.C4.B5.C

6.C7.A、D8.C9.A10.A

二.填空题

1.·诺依曼

2.A.

3.A.

4.A.软件B.操作控制C.灵活性

5.A.总线带宽B.传输速率C.264MB/S

三.解:

(1)定点原码整数表示:

最大正数:

数值=(231–1)10

最小负数:

数值=-(231–1)10

(2)定点原码小数表示:

最大正数值=(1–2-31)10

最小负数值=-(1–2-31)10

四.解:

信息总量:

q=64位×4=256位

顺序存储器和交叉存储器读出4个字的时间分别是:

t2=mT=4×200ns=8×10–7(s)

t1=T+(m–1)τ=200+3×50=3.5×10–7(s)

顺序存储器带宽是:

W1=q/t2=32×107(位/S)

交叉存储器带宽是:

W2=q/t1=73×107(位/S)

五.解:

(1)操作码字段为6位,可指定26=64种操作,即64条指令。

(2)单字长(32)二地址指令。

(3)一个操作数在源寄存器(共16个),另一个操作数在存储器中(由变址寄

存器内容+偏移量决定),所以是RS型指令。

(4)这种指令结构用于访问存储器。

六.解:

(1)假设判别测试字段中每一位为一个判别标志,那么由于有4个转移条件,故该字段为4位(如采用字段译码只需3位),下地址字段为9位,因此控制存储器容量为512个单元,微命令字段是(48–4-9)=35位。

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

其中微地址寄存器对应下地址字段,P字段即为判别测试字段,控制字段即为微命令子段,后两部分组成微指令寄存器。

地址转移逻辑的输入是指令寄存器OP码,各状态条件以及判别测试字段所给的判别标志(某一位为1),转移逻辑输出修改微地址寄存器的适当位数,从而实现微程序的分支转移。

七.

解:

PCI总线结构框图如图B1.3所示:

PCI总线有三种桥,即HOST/PCI桥(简称HOST桥),PCI/PCI桥,PCI/LAGACY桥。

在PCI总线体系结构中,桥起着重要作用:

(1)它连接两条总线,使总线间相互通信。

(2)桥是一个总线转换部件,可以把一条总线的地址空间映射到另一条总线的地址空间上,从而使系统中任意一个总线主设备都能看到同样的一份地址表。

(3)利用桥可以实现总线间的猝发式传送。

八.解:

数据采集接口方案设计如图B1.4所示。

现结合两种工作方式说明上述部件的工作。

(1)定期巡检方式

主机定期以输出指令DOA、设备码;(或传送指令)送出控制字到A寄存器,其中用四位分别指定选中的缓冲寄存器(四个B寄存器分别与四个采集器相应)。

然后,主机以输入指令DIA、设备码;(或传送指令)取走数据。

(2)中断方式

比较结果形成状态字A',共8位,每二位表示一个采集器状态:

00正常,01过低,10过高。

有任一处不正常(A'中有一位以上为“1”)都将通过中断请求逻辑(内含请求触发器、屏蔽触发器)发出中断请求。

中断响应后,服务程序以DIA、设备码;或传送指令)取走状态字。

可判明有几处采集数据越限、是过高或过低,从而转入相应处理。

九.

十.

习题

1.给出以下概念的解释说明。

指令流水线(Instructionpipelining)流水线深度(PipelineDepth)

指令吞吐量(Instructionthroughput)流水线冒险(Hazard)

结构冒险(Structuralhazard)控制冒险(Controlhazard)

数据冒险(Datahazard)流水线阻塞(Pipelinestall)

气泡(Bubble)空操作(nop)

分支条件满足(Branchtaken)分支预测(Branchpredict)

静态分支预测(Staticpredict)动态分支预测(Dynamicpredict)

延迟分支(Delayedbranch)分支延迟槽(Delayedbranchslot)

转发(Forwarding)旁路(Bypassing)

流水段寄存器(Pipelineregister)IPC(InstructionsPerCycle)

静态多发射(Staticmultipleissue)动态多发射(Dynamicmultipleissue)

超流水线(Superpipelining)超长指令字VLIW

超标量流水线(Superscalar)动态流水线(Dynamicpipelining)

指令预取(Instructionprefetch)指令分发(Instructiondispatch)

按序发射(in-orderissue)无序发射(out-of-orderissue)

存储站(Reservationstation)重排序缓冲(Reorderbuffer)

指令提交单元(Instructioncommitunit)乱序执行(out-of-orderexecution)

按序完成(in-ordercompletion)无序完成(out-of-ordercompletion)

2.简单回答下列问题。

(1)流水线方式下,一条指令的执行时间缩短了还是加长了?

程序的执行时间缩短了还是加长了?

为什么?

(2)具有什么特征的指令集易于实现指令流水线?

(3)流水线处理器中时钟周期如何确定?

单条流水线处理器的CPI为多少?

每个时钟周期一定有一条指令完成吗?

为什么?

(4)流水线处理器的控制器实现方式更类似于单周期控制器还是多周期控制器?

(5)为什么要在各流水段之间加寄存器?

各流水段寄存器的宽度是否都一样?

为什么?

(6)你能列出哪几种流水线被阻塞的情况?

你知道硬件和软件是如何处理它们的吗?

(7)超流水线和多发射流水线的主要区别是什么?

(8)静态多发射流水线和动态多发射流水线的主要区别是什么?

(9)为什么说Pentium4是“CISC壳、RISC核”的体系结构?

3.假定在一个五级流水线(如图所示)处理器中,各主要功能单元的操作时间为:

存储单元:

200ps;ALU和加法器:

150ps;寄存器堆读口或写口:

50ps。

请问:

(1)若执行阶段EX所用的ALU操作时间缩短20%,则能否加快流水线执行速度?

如果能的话,能加快多少?

如果不能的话,为什么?

(2)若ALU操作时间增加20%,对流水线的性能有何影响?

(3)若ALU操作时间增加40%,对流水线的性能有何影响?

参考答案:

a.ALU操作时间缩短20%不能加快流水线指令速度。

因为存储单元的时间为200ps,所以流水线的时钟周期不会因为ALU操作时间的缩短而变短。

b.ALU操作时间延长20%时,变为180ps,比200ps小,对流水线性能没有影响;

c.ALU操作时间延长40%时,变为210ps,比200ps大,所以,流水线的时钟周期将变为210,其效率降低了(210-200)/200=5%。

 

4.假定某计算机工程师想设计一个新CPU,一个典型程序的核心模块有一百万条指令,每条指令执行时间为100ps。

请问:

(1)在非流水线处理器上执行该程序需要花多长时间?

(2)若新CPU是一个20级流水线处理器,执行上述同样的程序,理想情况下,它比非流水线处理器快多少?

(3)实际流水线并不是理想的,流水段间数据传送会有额外开销。

这些开销是否会影响指令执行时间(Instructionlatency)和指令吞吐率(Instructionthroughput)?

参考答案:

(1)非流水线处理器上执行该程序的时间为:

100psx106=100µs.

(2)若在一个20级流水线的处理器上执行,理想情况下,每个时钟周期为:

100/20=5ps,所以,程序执行时间约为5x106=5µs.快100/5=20倍。

(3)流水线段之间数据的传递产生的额外开销,使得一条指令的执行时间被延长,即影响Instructionlatency;同时也拉长了每个流水段的执行时间,即影响Instructionthroughput。

还有什么不理想的因素?

——时钟周期不会是5us

——可能发生阻塞等

5.假定最复杂的一条指令所用的组合逻辑分成6块,依次为A~F,其延迟分别为80ps、30ps、60ps、50ps、70ps、10ps。

在这些组合逻辑块之间插入必要的流水段寄存器就可实现相应的指令流水线,寄存器延迟为20ps。

理想情况下,以下各种方式所得到的时钟周期、指令吞吐率和指令执行时间各是多少?

应该在哪里插入流水线寄存器?

(1)插入一个流水段寄存器,得到一个两级流水线

(2)插入两个流水段寄存器,得到一个三级流水线

(3)插入三个流水段寄存器,得到一个四级流水线

(4)吞吐量最大的流水线

参考答案:

(1),每条指令的执行时间为2x190=380ps。

(2)两个流水段,每条指令的执行时间为3x130=390ps。

(3)三个流水段,每条指令的执行时间为4x110=440ps。

(4)因为所有组合逻辑块中最长延时为80ps,所以,达到最大可能吞吐率的划分应该是以一个流水段延时为80ps+20ps来进行,因此,至少按五段来划分,分别把流水段寄存器插在A和B、B和C、C和D、D和E之间,这样第一段的组合逻辑延时为80ps,第二段为30ps,第三段为60ps,第四段为50ps,最后一段为70+10=80ps。

这样每个流水段都以最长延时调整为80+20=100ps,故时钟周期为100ps,指令吞吐率为1/100ps=10GOPS,每条指令的执行时间为5x100=500ps。

——吞吐率的提高,单条指令执行时间的延长

6.以下指令序列中,哪些指令对发生数据相关?

假定采用“取指、译码/取数、执行、访存、写回”五段流水线方式,那么不用“转发”技术的话,需要在发生数据相关的指令前加入几条nop指令才能使这段程序避免数据冒险?

如果采用“转发”是否可以完全解决数据冒险?

不行的话,需要在发生数据相关的指令前加入几条nop指令才能使这段程序不发生数据冒险?

add$s3,$s1,$s0

sub$t2,$s0,$s3

lw$t1,0($t2)

add$t1,$t1,$t2

参考答案:

发生数据相关的有:

第1和2间关于$s3、第2和3间关于$t2、第2和4间关于$t2、第3和4间关于$t1。

不进行“转发”处理的话,需要分别在第2、3、4条指令前加三条nop指令才能避免数据冒险。

而通过“转发”可以避免1和2、2和3、2和4间的数据相关;但第3和4间是load-use数据相关,所以无法用“转发”消除冒险,因此,需在第4条指令前加入一条nop指令。

 

寄存器写口和寄存器读口分别安排在一个时钟周期的前、后半个周期内独立工作呢?

——2、3、4条之前分别插入2条nop就可以

7.假定以下MIPS指令序列在图7.18所示的流水线数据通路中执行:

addu$s3,$s1,$s0

subu$t2,$s0,$s3

lw$t1,0($t2)

add$t3,$t1,$t2

add$t1,$s4,$s5

请问:

(1)上述指令序列中,哪些指令的哪个寄存器需要转发,转发到何处?

(2)上述指令序列中,是否存在load-use数据冒险?

(3)第5周期结束时,各指令执行状态是什么?

哪些寄存器的数据正被读出?

哪些寄存器将被写入?

参考答案:

(1)发生数据相关的有:

第1和2间关于$s3、第2和3间关于$t2、第2和4间关于$t2、第3和4间关于$t1。

通过“转发”可以避免1和2、2和3、2和4间的数据相关;

(2)第3和4间是load-use数据相关,所以无法用“转发”消除冒险。

(3)第五个时钟内各条指令的执行情况如下:

指令1在“WB”,$s3正在被写,结束时写完

指令2在“MEM”。

sub指令在该阶段进行的是空操作;在转发检测单元中,因为流水段寄存器Ex/Mem中的目的寄存器RegRd为$t2,流水段寄存器ID/Ex中的源寄存器Rs也为$t2,同时,流水段寄存器Ex/Mem中的RegWr控制信号为1,所以检测到转发条件满足,因而,此时,sub指令在上一个时钟周期中的执行结果(在流水段寄存器Ex/Mem中的ALU输出结果)正被回送到ALU的输入端;结束时转发完成

指令3在“EXE”阶段,ALU正在执行“add”操作,进行地址运算,ALU输出结果将被写入流水段寄存器Ex/Mem中;结束时运算完成。

正在检测是否loaduse冒险

指令4在“ID/REG”,$t1和$t2正在被读出。

在load-use冒险检测单元中,因为流水段寄存器IF/ID中源操作数寄存器Rs为$t1,流水段寄存器ID/Ex中目的操作数寄存器Rt也为$t1,同时,因为上条指令是lw,故流水段寄存器ID/Ex中的MemRead控制信号为1,所以在该阶段检测到load-use冒险条件满足,此时,需要进行load-use冒险处理,在流水线中插入一个“气泡”,将指令的执行阻塞一个时钟周期。

包括以下三个步骤:

①将流水段寄存器ID/Ex中的控制信号全部清0,以保证第4条指令被阻塞一个时钟周期执行;②将流水段寄存器IF/ID中的指令维持不变,以保证第4条指令重新译码后执行;③将PC的值维持不变,以保证根据PC的值重新取出第5条指令。

结束时完成上述工作。

指令5在“IF”阶段,指令正被读出。

结束时已送到流水段寄存器IF/ID的输入端。

因为之前发生了load-use数据冒险,所以该指令将在随后的第6个时钟周期内重新被读出。

8.假定有一个程序的指令序列为“lw,add,lw,add,…”。

add指令仅依赖它前面的lw指令,而lw指令也仅依赖它前面的add指令,寄存器写口和寄存器读口分别在一个时钟周期的前、后半个周期内独立工作。

请问:

(1)在带转发的五段流水线中执行该程序,其CPI为多少?

(2)在不带转发的五段流水线中执行该程序,其CPI为多少?

参考答案:

(1)因为lw指令和add指令之间存在一个load-use数据冒险,所以每个lw指令和add指令之间要有一次流水线阻塞。

而add指令和lw指令之间的数据冒险可通过数据转发解决。

即:

(2)如果没有转发,而寄存器写口和寄存器读口分别在一个时钟周期的前、后半个周期内工作,则在每条lw指令和add指令之间将会有两个阻塞,这样每条指令相当于都要有三个时钟才能完成。

即:

CPI为3

9.假定在一个带转发功能的五段流水线中执行以下程序段,则可以怎样调整以下指令序列使其性能达到最好?

参考答案:

1lw$2,100($6)

2add$2,$2,$3

3lw$3,200($7)

4add$6,$4,$7

5sub$3,$4,$6

6lw$2,300($8)

7beq$2,$8,Loop

因为采用“转发”技术,所以,只要对load-use数据冒险进行指令序列调整。

从上述指令序列来看,第1和第2条指令、第6和第7条指令之间存在load-use数据冒险,所以,可将与第2和第3条指令无关的第4条指令插入第2条指令之前;将无关的第5条指令插入第7条指令之前。

调整顺序后的指令序列如下(粗体部分为变换了位置的指令)。

lw$2,100($6)

add$6,$4,$7

add$2,$2,$3

lw$3,200($7)

lw$2,300($8)

sub$3,$4,$6

beq$2,$8,Loop

10.在一个采用“取指、译码/取数、执行、访存、写回”的五段流水线中,若检测结果是否为“零”的操作在执行阶段进行,则分支延迟损失时间片(即分支延迟槽)为多少?

以下一段MIPS指令序列中,在考虑数据转发的情况下,哪些指令执行时会发生流水线阻塞?

各需要阻塞几个时钟周期?

1loop:

add$t1,$s3,$s3

2add$t1,$t1,$t1

3add$t1,$t1,$s6

4lw$t0,0($t1)

5bne$t0,$s5,exit

6add$s3,$s3,$s4

7jloop

8exit:

参考答案:

若检测操作在执行阶段进行,则分支延迟损失时间片(即分支延迟槽)为2。

分析:

发生数据相关的是:

第1和第2条指令之间关于$t1,第2和第3条指令之间关于$t1,第3和第4条指令之间关于$t1,第4和第5条指令之间关于$t0,以及第6和第1条指令之间关于$s3。

此外,第5和第7条指令的执行都会发生控制相关。

对于数据冒险,如果不采用“转发”,而是简单地通过加入nop指令来避免冒险的话,那么应该在第2、3、4、5条指令前各加两条nop指令,以消除数据相关;对于第6条和第1条指令之间的数据相关,则可通过在第7条“jloop”指令后面加一条或两条nop指令消除(这样同时还能解决第7条“jloop”指令的控制冒险);

此处,第2、3、4条指令所需的操作数可通过“转发”得到,无需加nop指令。

第5条bne指令所需的操作数$t0是load-use冒险,不能用“转发”解决问题,需要在第5条指令前加一条nop指令,或通过硬件将第5条指令的执行阻塞一个时钟周期。

j指令如果在译码阶段就根据译码结果计算跳转目标地址,那么j指令后面指令会被阻塞1个时钟周期,若在执行阶段计算,则要阻塞2个时钟周期。

 

-------------------------其它

11.假设数据通路中各主要功能单元的操作时间为:

存储单元:

200ps;ALU和加法器:

100ps;

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

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

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1