胡伟武《处理器设计》(系统结构)2009年1月试题

1、 写出64位定点数的补码、原码表示范围。


2、 理解计算题。计算L2Cache缺失时的损失周期数。题目大意:
L1Cache命中时,读数据需要3个周期,当L1不命中时,需要去L2取数据,当L2命中的时候,若L2为直接映射,则增加3个Cycle的周期损失,若L2为二路组相连,则增加2个Cycle的周期损失,若L2为四路组相连,则增加1个Cycle的周期损失;当L2不命中的时候,损失50个Cycle。已知直接映射时L2Cache命中率为20%,二路组相连时L2Cache命中率为15%,四路组相连时L2Cache命中率为10%。分别求三种相连情况下读L1Cache的周期损失数。


3、 问答题。考察对数据一致性的理解。题目大意
在计算机体系结构中,经常存在一个数据的多个副本,可能会造成数据的不一致性。试说明(1)WriteBuffer和Cache之间可能存在的数据一致性问题(2)Cache和主存之间的数据一致性问题,并且分别给出消除不一致性的硬件或软件的解决方案。


4、 理解计算题。考察寄存器重命名。题目大意
某N发射流水线定义了m个虚拟寄存器,采用物理寄存器重命名机制。已知从重命名阶段到写回阶段需要t1个时钟周期,从重命名阶段到提交阶段需要t2个时钟周期。为了保证流水线可以全速最大负荷运行,问至少需要多少个物理寄存器。


5、 双发射流水线软件指令调度,写指令序列,计算每个循环的最小周期数。题目大意
已知有双发射流水线(浮点指令可以和其它指令并行发射),且有如下指令序列
L: LDR2,0(R1)
ADDDR4,R2,R1
SD0(R1),R4
SUBIR1,R1,8
BNER1,L
NOP
已知相关的LD指令和ADDD指令间至少相隔1个周期,ADDD指令和SD指令之间至少相隔2个周期。现在采用3次循环展开,采用重命名技术。问此时每个循环至少需要多少个时钟周期?

做累了没?来我博客歇会儿呗;)

http://raywill.blog.sohu.com


6、 问答题。TLB异常、PageFault之关系
(1)TLB缺失和PageFault异常之间有何联系?
(2)可不可能发生这种情况:TLB命中并且发生缺页异常。


7、 用Verilog写16个8位数相加的华莱士树,要求最后一级使用先行进位加法器。


8、 证明[X]补+[Y]补=[X+Y]补


9、 对于CPUA,它采用一条比较指令计算条件码,紧接着一条指令根据条件码执行跳转。对于CPUB,采用传统的MIPS形式,同一条指令中计算跳转条件并执行跳转。由于这种区别,CPUA的主频是CPUB的1.2倍。已知某段代码中跳转指令占总指令数的25%,那么计算条件码的指令相应地占25%。问CPUA、B哪个快?如果CPUA的主频是CPUB的1.1倍呢?(Note:此题原题有歧义,存在争议)


10、 MIPS指令中,不能有Reg-Mem型的定点数操作指令,必须写成:

LD$1,0($n)

ADD$2,$2,$1

假设引入一种MIPS变种指令,可以使用Reg-Mem型,上面的指令可写成:
ADD$2,0($n)


(1)请写出一个指令序列,使得即使有了Reg-Mem型指令支持,编译器也无法将你的指令序列转化成Reg-Mem型。
(2)Reg-Mem型指令会带来5%的主频下降。假设CPI不变,已知代码中有26%的LD指令,问至少将这些LD中的多少(百分百)转化成Reg-Mem型指令才能保证性能不下降?
(3)在静态流水线(IF,ID,EX,MEM,WB)中,难以实现对Reg-Mem型指令的支持,为什么?

---------------------

老师说题目难度比较大,大家不要担心。运用之妙,存乎一心!

你可能感兴趣的:(设计)