本人考11月4日的软件设计师,所以看了一下5月份的试卷,有些题不会做,就从网上查了一下资料,特把查得的结果贴上来。
高速缓存Cache与主存间采用全相联地址映像方式,高速缓存的容量为4MB,分为4块,每块1MB,主存容量为256MB。若主存读写时间为30ns,高速缓存的读写时间为3ns,平均读写时间为3.27ns,则该高速 缓存的命中率 (1) %。若地址变换表如下所示,则主存地址为8888888H时,高速缓存地址为 (2) H
解析:(1)D 这是一道命中率的计算题.
公式:cache读写时间 * 命中率+主存读写时间 * (1-命中率)=平均读写时间。
设命中率为x,根据题意可以得到3x+30(1-x)=3.27得出:x=0.99
(2)D这道题一个是考查直接映像、全相联、组相联,以及在具体映射时候是如何实现的。这里有个基本的计算,那就是1M=10 00 00H
这样是不是就比较醒目了:
内存地址范围 Cache地址范围
3800000H-38FFFFFH 000000H-0FFFFFH
8800000H-88FFFFFH 100000H-1FFFFFH
5900000H-59FFFFFH 200000H-2FFFFFH
6700000H-67FFFFFH 300000H-3FFFFFH
=================================================
某指令流水线由5段组成,各段所需要的时间如下图所示。
连续输入10条指令时的吞吐率为___(6)___。
(6)A.10/70Δt B.10/49Δt C.10/35Δt D.10/30Δt
解析:(6)C。只要你会画时空图就知道怎么做了。
==表示正执行第一条指令,~~表示正执行第二条指令
每段--+--+--+--+--+--+--+--+--+--+--+时间轴
△t== ~~ |---3△t---|
3△t == == == ~~ ~~ ~~ | |
△t == ~~| |
2△t == == |~~ ~~ |
△t ==| ~~|
第一条指令完成时间是8△t 。可以看出由于指令重叠,此后每3△t 完成一条指令(即+号)。所以,后9条指令完成时间是9*3△t。所以它完成10个任务所用的时间为:8△t +9*3△t = 35△t
吞吐率=n/Tk ,n为任务数,Tk是完成n个任务所用的时间。因些吞吐率为:10/35△t。
======================================
与逆波兰式ab+-c*d-对应的中缀表达式是 (45) 。
(45)A. a-b-c*d B. -(a+b)* c-d C. -a+b*c-d D. (a+b)* (-c-d)
解析:B。逆波兰式不需要括号,将运算对象写在前面,而把运算符号写在后面。
先看一个中缀表达式:1+(2*(4-2))%5,它的逆波兰式(后缀表达式)为:1242-*5%。
根椐这个规律,可以明白:-(a+b)*c-d正好与ab+-c*d-相配。
PS:在网上查资料,发现自己在数据结构课堂上曾学习过与逆波兰式相关的知识。但当时老师似乎并没有提到逆波兰式这个称号,也有可能是自己没用心听吧。