1.下面代码中,对数组x填充后,采用直接映射高速缓存,所有对x和y引用的命中率为()

image

A . 1
B . 1/4
C . 1/2
D . 3/4

题目解析:填充消除了冲突不命中,冲突不命中就是有足够的高速缓存空间但是却交替引用映射到同一个组的块。因为在x和y块儿之间进行了反复抖动。故x和y引用的命中率为3/4.

2
(多选题|1分)
有关高速缓存的说法正确的是()
:

A .
高速缓存的容量可以用C=SEB来计算

B .
高速缓存容量为2048,高速缓存结构为( 32 ,8,8,32)

C .
直接映射高速缓存要:组选择、行匹配、字抽取

D .
当程序访问大小为2的幂的数组时,直接映射高带缓存中常发生冲突不命中

题目解析:

  • 直接映射高速缓存要:组选择、行匹配、字抽取
  • 高速缓存容量为2048,高速缓存结构为( 32 ,8,8,32) 3288=2048
  • 当程序访问大小为2的幂的数组时,直接映射高带缓存中常发生冲突不命中
  • 高速缓存的容量可以用C=SEB来计算

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)
image

==A ==.
第三行S为1

B .
第一行t为24
C .
第二行b为5

D .
第三行s的值为0

题目解析:p427原题,主要利用了 高速缓存的容量可以用C=SEB

4
(多选题|1分)

有关缓存的说法,正确的是()
:
A .
LRU策略指的是替换策略的缓存会选择最后被访问时间距现在最远的块
B .
不同层之间以字节为传送单元来回复制
C .
缓存不命时,决定哪个块是牺牲块由替换策略来控制
D .
空缓存的不命中叫冲突不命中

题目解析:缓存命中

当程序需要第k+1层中的某个数据时d,会首先在它的缓存k层中寻找。如果数据刚好在k层中,就称为缓存命中(cache hit)。

5
(多选题|1分)
下面说法正确的是()
image

A .
存储层次结构中最小的缓存是寄存器

B .
存储层次结构的中心思想是每一层都缓存来自较低一层的数据对象

C .
L4主存可以看作是L5:本地磁盘的缓存

D .
L4主存可以看作是L6的缓存

题目解析:

  • 存储层次结构的中心思想是每一层都缓存来自较低一层的数据对象
  • 存储层次结构中最小的缓存是寄存器
  • 一般情况下,L5磁盘与L4主存速度相差几十万倍, 而L3-L0之间,它们每级缓存的速度差异大概是10倍。
  • 我们在电脑主板上可以看到内存条(L4主存)。硬盘(L5),但是却没看到L3-L0。原因很简单,他们都是集成在CPU芯片内部的。

6
(单选题|1分)
下面代码的步长是()
image

A . 1
B . N
C . N * N
D . N* N*N

题目解析:

  • 简单说步长值就是循环体中计数器每次的增量值啊,当然,增量也可以是负数的。 For...Next循环的步长step应依据你作该循环的需求确定
    根据网上所说:
步长 就是变量值得间隔
如
for(i=1;i<100;i+=2);        //这个i的步长就是2了
如
for(i=1;i<100;i+=3); //步长为3

由题可得步长应该为1?
但是答案是 N * N,还没有理解。

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 5
for (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 .
不确定

题目解析:

  • 时间局部性指的是:被引用过一次的存储器位置在未来会被多次引用(通常在循环中)。
  • 空间局部性(spatial locality)
    如果一个存储器的位置被引用,那么将来他附近的位置也会被引用。

8
(单选题|1分)
程序中()语句具有良好的局部性
:

A .
顺序

B .
分支

C .
循环

D .
以上都是

题目解析:

  • 时间局部性指的是:被引用过一次的存储器位置在未来会被多次引用(通常在循环中)。
  • 空间局部性(spatial locality)
    如果一个存储器的位置被引用,那么将来他附近的位置也会被引用。
  • 在循环过程中,计算被限制在程序中一个很小的相邻部分中。所以循环语句具有良好的局部性

9.下面代码,()具有差的空间局部性。
:
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 .
以上都不对

题目解析:因为它按照列顺序来扫描数组,而不是按照行顺序,导致他的空间局部性很差。

10
(多选题|1分)
有关局部性原理,说法正确的是()
:

A .
程序访问一个向量,步长越小或短,空间局部性越好

B .
局部性有两种形式:空间局部性,时间局部性

C .
程序访问一个向量,步长越大空间局部性越好。

D .
硬件、OS,应用程序都会用到局部性原理

题目解析:

  • 程序访问一个向量,步长越小或短,空间局部性越好
  • 局部性有两种形式:空间局部性,时间局部性
  • 硬件、OS,应用程序都会用到局部性原理

11
(多选题|1分)
下面说法正确的是()
:

A .
CPU通过内存映射I/O向I/O设备发命令

B .
DMA传送不需要CPU的干涉

C .
SSD是一种基于闪存或Flash的存储技术

D.
逻辑磁盘块的逻辑块号可以翻译成一个(盘面,磁道,扇区 )三元组。

题目解析:

  • CPU通过内存映射I/O向I/O设备发命令
  • DMA传送不需要CPU的干涉
  • SSD是一种基于闪存或Flash的存储技术
  • 逻辑磁盘块的逻辑块号可以翻译成一个(盘面,磁道,扇区 )三元组。
    12

(单选题|1分)
下面()是I/O总线
:

A . USB
B . PCI
C . 网卡
D . 图形卡

题目解析:

  • IO总线指缆线和连接器系统,用来传输I/O路径技术指定的数据和控制信号,另外还包括一个总线终结电阻或电路,这个终结电阻用来减弱电缆上的信号反射干扰。
  • 可以详细看此网页介绍

14
(多选题|1分)
有关磁盘操作,说法正确的是()
:

A . 对磁盘扇区的访问时间包括三个部分中,传送时间最小。

B . 磁盘以字节为单位读写数据

C . 磁盘以扇区为单位读写数据

D . 读写头总处于同一柱面

题目解析:

  • 对磁盘扇区的访问时间包括三个部分中,传送时间最小。还包括寻到时间和旋转时间。
  • 磁盘以扇区为单位读写数据而不是字节

15
(单选题|1分)
计算下面磁盘的容量():4个盘片,100000个柱面,每条磁道400个扇区,每个扇区512个字节
:

A . 81.92GB
B . 40.96GB
C . 163.84
D . 327.68GB

题目解析:
4 * 2 * 2 * 10 * 100000 * 400=163.84G

16
(多选题|1分)
有关磁盘,说法正确的是()
:

A .
磁盘的读取时间为毫秒级

B .
每张磁盘有一个表面

C .
表面由磁道组成

D .
每个扇区的面积不同,包含的数据位的数量也不一样

题目解析:

  • 磁盘的读取时间为毫秒级
  • 磁盘表面由磁道组成

17
(多选题|1分)
根据携带信号不同,总线可分为()
:

A . 系统总线
B . 数据总线
C . 内存总线
D . 地址总线
E . 控制总线

题目解析:

  • 根据携带信号不同,总线可分数据总线,地址总线,控制总线。

18
(多选题|1分)
关于非易失性存储器,下面说法正确的是()
:

A . DRAM是非易失性存储器

B . SRAM是非易失性存储器

C . PROM只能编程一次

D . EEPROM可以用紫外线进行擦除

E . 存在ROM中的程序通常被称为固件

题目解析:

  • DRAM是易失性存储器
  • SRAM是易失性存储器
  • PROM只能编程一次
  • 存在ROM中的程序通常被称为固件

19
(单选题|1分)
通过使用两个时钟沿作为控制信号,对DRAM进行增强的是()
:

A . FPM DAM
B . SDRAM
C . DDR SDRAM
D . VRAM
E . EDO DRAM

题目解析:

  • 通过使用两个时钟沿作为控制信号,对DRAM进行增强的是 DDR SDRAM

20
(多选题|1分)
有关RAM的说法,正确的是()
:

A .
SRAM和DRAM掉电后均无法保存里面的内容。

B .
DRAM将一个bit存在一个双稳态的存储单元中

C .
一般来说,SRAM比DRAM快

D .
SRAM常用来作高速缓存

E .
DRAM将每一个bit存储为对一个电容充电

F .
SRAM需要不断刷新

G .
DRAM被组织为二维数组而不是线性数组

题目解析:

  • SRAM和DRAM掉电后均无法保存里面的内容。
  • SRAM常用来作高速缓存
  • DRAM被组织为二维数组而不是线性数组

21
(多选题|1分)
有关计算机存储系统,下面说法正确的是()
:
A .
程序具有良好的局部性表现在倾向于从存储器层次结构中的较低层次处访问数据,这样节省时间

B .
存储层次涉用不同容量,成本,访问时间的存储设备

C .
存储层次设计基于局部性原理

D .
“存储山”是时间局部性和空间局部性的函数

题目解析:

  • 存储层次涉用不同容量,成本,访问时间的存储设备
  • 存储层次设计基于局部性原理
  • “存储山”是时间局部性和空间局部性的函数