1( 单选题 | 1 分)
下面代码中,对数组x填充后,采用直接映射高速缓存,所有对x和y引用的命中率为()
A . 1
B . 1/4
C . 1/2
D . 3/4
正确答案: D
解析:填充消除了抖动冲突不命中。对于x和y数组,只有在引用第0个和第4个元素的时候发生不命中,即四分之三的引用命中。
2( 多选题 | 1 分)
有关高速缓存的说法正确的是()
A . 高速缓存的容量可以用C=SEB 来计算
B . 高速缓存容量为2048,高速缓存结构为( 32 ,8,8,32)
C . 直接映射高速缓存要:组选择、行匹配、字抽取
D . 当程序访问大小为2的幂的数组时,直接映射高带缓存中常发生冲突不命中
正确答案: A C D
解析:在填充了之后,对于x和y数组,只有在引用第0个和第4个元素的时候发生不命中。因而命中率为75%(即(8-2)/8)。
3( 多选题 | 1 分)
The following table gives the parameters for a number of different caches. For
each cache, determine the number of cache sets (S), tag bits (t), set index bits (s),
and block offset bits (b)
A . 第三行S为1
B . 第一行t为24
C . 第二行b为5
D . 第三行s的值为0
正确答案: A D
解析:根据书上图6-26,b=log2(B),S=2^S,s=log2(S),t=m-(s+b),所以第二行的b=3,第三行的S为1,第一行的t为22,所以选A D
4( 多选题 | 1 分)
有关缓存的说法,正确的是()
A . LRU策略指的是替换策略的缓存会选择最后被访问时间距现在最远的块
B . 不同层之间以字节为传送单元来回复制
C . 缓存不命时,决定哪个块是牺牲块由替换策略来控制
D . 空缓存的不命中叫冲突不命中
正确答案: A C
解析:空的缓存被称为冷缓存,此类不令中称为强制性不令中或冷不令中。缓存不令中时,会覆盖现存一个块,称为替换或驱逐,决定该替换哪个块是由缓存的替换策略来控制。LRU:Least Recently Used,最近最少使用。判断最近被使用的时间,目前最远的数据优先被淘汰。不同层之间以块大小为传送单元来回复制
5( 多选题 | 1 分)
下面说法正确的是()
A . 存储层次结构中最小的缓存是寄存器
B . 存储层次结构的中心思想是每一层都缓存来自较低一层的数据对象
C . L4主存可以看作是L5:本地磁盘的缓存
D . L4主存可以看作是L6的缓存
正确答案: A B C
解析:层次结构中的每一层都缓存来自较低一层的数据对象。最小的缓存——CPU寄存器组。位于K层的更快更小的存储设备作为位于k+1层更大更慢的存储设备的缓存。
6( 单选题 | 1 分)
下面代码的步长是()
A . 1
B . N
C . N*N
D . NNN
正确答案: C
解析:步长值就是循环体中计数器每次的增量值。k被放在了第一个位置,因此会增加步长至NN本题该循环体中计数器每次的增量为NN。
7( 单选题 | 1 分)
下面代码中()局部性最差
1 #define N 1000
2
3 typedef struct {
4 int vel[3];
5 int acc[3];
6 } point;
7
8 point p[N];
A .
1 void clear1(point *p, int n)
2 {
3 int i, j;
4
5 for (i = 0; i < n; i++) {
6 for (j = 0; j < 3; j++)
7 p[i].vel[j] = 0;
8 for (j = 0; j < 3; j++)
9 p[i].acc[j] = 0;
10 }
11 }
B .
1 void clear2(point *p, int n)
2 {
3 int i, j;
4
5 for (i = 0; i < n; i++) {
6 for (j = 0; j < 3; j++) {
7 p[i].vel[j] = 0;
8 p[i].acc[j] = 0;
9 }
10 }
11 }
C .
1 void clear3(point *p, int n)
2 {
3 int i, j;
4
5for (j = 0; j < 3; j++) {
6 for (i = 0; i < n; i++)
7 p[i].vel[j] = 0;
8 for (i = 0; i < n; i++)
9 p[i].acc[j] = 0;
10 }
11 }
D . 不确定
正确答案: C
解析:函数clear1以步长为1的引用模式访问数组,因此明显地具有最好的空间局部性。函数clear2依次扫描N个结构中的每一个,但在每个结构中,它以步长不为1的模式跳到下列相对于结构起始位置的偏移处:0、12、4、16、8、20。所以clear2的空间局部性比clear1要差,函数clear3不仅在每个结构中跳来跳去,而且还从结构跳到结构,所以clear3的最差。
8( 单选题 | 1 分)
程序中()语句具有良好的局部性
A . 顺序
B . 分支
C . 循环
D . 以上都是
正确答案: C
解析:for循环体里的指令是按照连续的内存顺序执行的,因此循环具有良好的空间局部性。因为循环体会被执行很多次,所以它也有很好的时间局部性。
9( 单选题 | 1 分)
下面代码,()具有差的空间局部性。
A .
1 int sumvec(int v[N])
2 {
3 int i, sum = 0;
4
5 for (i = 0; i < N; i++)
6 sum += v[i];
7 return sum;
8 }
B .
1 int sumarrayrows(int a[M][N])
2 {
3 int i, j, sum = 0;
4
5 for (i = 0; i < M; i++)
6 for (j = 0; j < N; j++)
7 sum += a[i][j];
8 return sum;
9 }
C .
1 int sumarraycols(int a[M][N])
2 {
3 int i, j, sum = 0;
4
5 for (j = 0; j < N; j++)
6 for (i = 0; i < M; i++)
7 sum += a[i][j];
8 return sum;
9 }
D . 以上都不对
正确答案: C
解析:A答案是一个具有良好局部性的程序,B答案是一个有良好的空间局部性,是因为数组是按照与它存储在内存中一样的行优先顺序来被访问的。C的空间局部性很差,因为它使用步长为N的引用模式来扫描。
10( 多选题 | 1 分)
有关局部性原理,说法正确的是()
A . 程序访问一个向量,步长越小或短,空间局部性越好
B . 局部性有两种形式:空间局部性,时间局部性
C . 程序访问一个向量,步长越大空间局部性越好。
D . 硬件、OS,应用程序都会用到局部性原理
正确答案: A B D
解析:程序中步长增加,空间局部性下降。局部性通常有两种不同的形式:时间局部性和空间局部性。现代计算机系统的各个层次,从硬件到OS、再到应用程序,它们的设计都利用了局部性。
11( 多选题 | 1 分)
下面说法正确的是()
A . CPU通过内存映射I/O向I/O设备发命令
B . DMA传送不需要CPU的干涉
C . SSD是一种基于闪存或Flash的存储技术
D . 逻辑磁盘块的逻辑块号可以翻译成一个(盘面,磁道,扇区 )三元组。
正确答案: A B C D
解析:将一个逻辑块号翻译一个(盘面、磁道、扇区)的三元组,这个三原则唯一地表示了对应的物理扇区。 SSD是一种基于闪存或Flash的存储技术。CPU使用一种称为内存映射I/O的技术来向I/O设备发射命令。
12( 单选题 | 1 分)
下面()是I/O总线
A . USB
B . PCI
C . 网卡
D . 图形卡
正确答案: B
解析:PC机中的总线分为CPU总线和I/O总线,PCI总线属于I/O总线。
13( 单选题 | 1 分)
图中磁盘一个扇区的访问时间约为()ms
A . 10
B . 5
C . 6
D . 8
E . 12
正确答案: A
14( 多选题 | 1 分)
有关磁盘操作,说法正确的是()
A . 对磁盘扇区的访问时间包括三个部分中,传送时间最小。
B . 磁盘以字节为单位读写数据
C . 磁盘以扇区为单位读写数据
D . 读写头总处于同一柱面
正确答案: A C
解析:在任何时刻,所有的读写头都位于同一个柱面上。磁盘以扇区大小的块来读写数据。对扇区的访问时间有三个主要的部分:寻道时间、旋转时间、传送时间。
15( 单选题 | 1 分)
计算下面磁盘的容量():4个盘片,100000个柱面,每条磁道400个扇区,每个扇区512个字节
A . 81.92GB
B . 40.96GB
C . 163.84
D . 327.68GB
正确答案: C
解析:磁盘容量C=柱面(磁道)数T x 磁盘面(磁头)数H x 扇区数S x 字节数 =4x2x100000x400x512=163.84GB
16( 多选题 | 1 分)
有关磁盘,说法正确的是()
A . 磁盘的读取时间为毫秒级
B . 每张磁盘有一个表面
C . 表面由磁道组成
D . 每个扇区的面积不同,包含的数据位的数量也不一样
正确答案: A C
解析:磁盘读取的时间为毫秒级,每张磁盘有两个表面,每张表面由磁道组成。每个扇区所能容纳的数据量是相同的,都是512字节,数据量需要平均分配在扇区面积的每个角落。
17( 多选题 | 1 分)
根据携带信号不同,总线可分为()
A . 系统总线
B . 数据总线
C . 内存总线
D . 地址总线
E . 控制总线
正确答案: B D
18( 多选题 | 1 分)
关于非易失性存储器,下面说法正确的是()
A . DRAM是非易失性存储器
B . SRAM是非易失性存储器
C . PROM只能编程一次
D . EEPROM可以用紫外线进行擦除
E . 存在ROM中的程序通常被称为固件
正确答案: C E
解析:SRAM、DRAM不是非易失性存储;PROM只能被编程一次,其中的熔丝只能用高电流熔断一次。EEPROM是一种掉电后数据不丢失的存储芯片,EEPROM可以在电脑上或专用设备上擦除已有信息,重新编程。
19( 单选题 | 1 分)
通过使用两个时钟沿作为控制信号,对DRAM进行增强的是()
A . FPM DAM
B . SDRAM
C . DDR SDRAM
D . VRAM
E . EDO DRAM
正确答案: C
解析:双倍数据速率同步DRAM(DDR SDRAM):使用两个时钟沿作为控制信号,使DRAM速度翻倍。
20( 多选题 | 1 分)
有关RAM的说法,正确的是()
A . SRAM和DRAM掉电后均无法保存里面的内容。
B . DRAM将一个bit存在一个双稳态的存储单元中
C . 一般来说,SRAM比DRAM快
D . SRAM常用来作高速缓存
E . DRAM将每一个bit存储为对一个电容充电
F . SRAM需要不断刷新
G . DRAM被组织为二维数组而不是线性数组
正确答案: A D E G
解析:SRAM是在静态触发器的基础上附加门控管而构成的。因此,它是靠触发器的自保功能存储数据的。DRAM由动态MOS存储单元组成,动态MOS存储单元利用MOS管的栅极电容来存储信息,电荷保存的时间有限。为了避免存储信息的丢失,必须定时地给电容补充漏掉的电荷。SRAM速度快、使用简单、不需刷新、静态功耗极低。
21( 多选题 | 1 分)
有关计算机存储系统,下面说法正确的是()
A . 程序具有良好的局部性表现在倾向于从存储器层次结构中的较低层次处访问数据,这样节省时间
B . 存储层次涉用不同容量,成本,访问时间的存储设备
C . 存储层次设计基于局部性原理
D . “存储山”是时间局部性和空间局部性的函数
正确答案: B C D
解析:程序具有良好的局部性表现在倾向于从存储器层次结构中的较高层次处访问数据,这样节省时间。正是由于局部性原理的存在才得以使整个存储器系统高效稳定的运行。