计算机组成原理 - 存储系统

本章节的学习还是以梳理历年真题为主。

 

【2011】 下列各类存储体中, 不采用随机存取方式的是()

A EPROM

B CD-ROM

C DRAM

D SRAM

 

答案: B

 

* 主存 - 辅存 构成 “虚拟存储系统”。

接下来,练习一道非真题。

 

 

P 94 

问题:CPU 执行一段程序时,Cache 完成存取的次数为 1900 ,主存完成存取的次数 100,已知 Cache 存取周期 50ns,主存存取周期 250 ns。设主存与 Cache 同时间访问。

(1)Cache-主存系统效率。

(2)平均访问时间是多少。

 

解答:

(1)Cache 命中率 H = Cache Hit / (Cache Hit + Memory Hit) = 1900 / (1900 + 100) = 95%

平均访问时间 = 0.95 * 50 ns + (1-0.95) * 250 ns = 47.5 ns + 12.5 ns = 60 ns

系统效率 = Cache访问时间 / 平均访问时间  = 50 / 60 = 83.3%

(2)平均访问时间 = 60ns 

 

注意公式:

  • Cache Hit-rate= Cache Hit / ( Cache Hit + Memory Hit ) 
  • 记住“Cache 命中率 = Cache命中次数 / (Cache命中次数 + Memory命中次数)”。
  • 平均访问时间 =  Cache hit-rate * Cache Time + ( 1 - Cache hit rate ) * Memory Time

 

 

【2014】某容量为 256MB 的存储器由若干 4M X 8 位的 DRAM 芯片构成,该 DRAM 芯片地址引脚和数据引脚总数是()

A 19

B 22

C 30

D 36

 

答案:A

解析:

 

 

【2010】下列有关 RAM 和 ROM 的叙述中,正确的是()

(I)RAM 易失性存储器,ROM 是非易失性存储器

(II)RAM 和 ROM 都采用随机存储的方式进行信息访问

(III)RAM 和 ROM 都可用作 Cache
(IV)RAM 和 ROM 都需要进行刷新

A 仅 I 和 II

B 仅 II 和 III

C 仅 I, II 和 III

D 仅 II,III 和 IV

 

答案:A

解析:

1.Cache 造在 CPU 内部,用的是 SRAM。

2.ROM 无需刷新

 

 

【2012】下列关于闪存的叙述中,错误的是i()

A 信息可读可写,并且读、写速度一样快

B 存储元由 MOS 管组成,是一种半导体存储体

C 掉电后信息不丢失,是一种非易失性存储器

D 采用随机访问方式,可替代计算机外部存储器

 

答案:A

解析:

1.写,肯定是慢于读取的

 

 

【2015】下列存储器中,在工作期间需要周期性刷新的是()

A SRAM

B SDRAM

C ROM

D FLASH

 

答案: B

解析:

1.ROM不需要刷新

2.RAM中也是动态的 RAM 需要刷新。

 

 

* 主存储器 与 CPU 连接

* 位扩展,字扩展,位字同时扩展

* 片选信号: 1.线选法  2.译码片选法

* 存储器与 CPU 连接: 地址线、数据线、读写命令、片选线,四种连接。

 

 

【2009】某计算机主存容量为 64KB,其中 ROM 区为 4KB,其余为 RAM 区,按字节编址。现要用 2K x 8位的 ROM 芯片和 4K x 4 位的 RAM 芯片来设计该存储器,需要上述规格的 ROM 芯片数和 RAM 芯片数分别是()

A 1, 15

B 2, 15

C 1, 30

D 2, 30

 

答案:D

解析:

1.RAM 芯片作位扩展 4K x 4位 * 2

2.ROM 区域 4KB,RAM 区域 60KB

因此,#ROM = 2块; #RAM = 60 / 4 * 2 = 30块

选择 D

 

 

【2010】假定用若干 2K x 4位的芯片组成一个 8K x 8位的存储器,则地址 0B1FH 所在芯片最小地址()

A 0000H

B 0600H

C 0700H

D 0800H

 

答案:

解析:这道题目的关键是。一个比特对应着一块芯片。

1.位扩展 2K x 4位 * 2

2.需要 4 组芯片

3.[ 地址 XXXX 所在芯片最小地址 ] 含义,如果芯片从 0000H 开始放置,那么 0B1FH 所属的地址,是哪几号芯片。

4.一组两片,一行。另外,一块芯片 2^(11) ,一个 SLOT 一个字节(8bit)。于是:

第一行: 0000H -  07FFH

第二行: 0800H -  0FFFH

第三行: 1000H -  17FFH

第四行: 1800H -  1FFFH

5.本质上,第一行有 11个低位1

第二行,12个地位1

第三行,13个地位1

第四行,14个地位1

6.其中, 0B1FH = 0000 1011 0001 1111 B

由低到高的 12 个 SLOT = 1,因此属于第二行。起始地址 0800H,选择B 。

 

 

【2016】某存储器容量 64KB,按字节编址,地址 4000H - 5FFFH 为 ROM 区,其余为 RAM 区。若采用 8K x 4 位的 SRAM 芯片进行设计,则需要该芯片的数量是()

A 7  

B 8

C 14

D 16

 

答案:C

解析:

1. 首先进行位扩展 8K x 4位 * 2

2. 共 64KB,即 2^(16) bit,ROM 区域大小 1FFFH = 2^(13)  bit 

RAM 大小为 2^16 - 2^13 = 7 * 2^13 字节 = 56KB

3.于是,组数 = 56KB / 8K = 7组

共计 7 * 2 = 14 块芯片。选择 C。

 

 

【2011】某计算机存储器按字节编址,主存地址空间大小为 64MB,现用 4M x 8位的 RAM 芯片组成 32MB 的主存储器,则存储器地址寄存器 MAR 位数至少是()

A 22位

B 23位 

C 25位

D 26位

 

答案:D

解析:

1.MAR 位数,应该是留给芯片的 SLOT 的数量。

2.由于不同寻址方式,最稳妥,就是 一个 SLOT 连接一根地址线。SLOT 连到其他区域。

综上,#MAR = 64MB = 2^(26) 根

 

 

【注意】

1.通常题目都是,按字节编址,即 8 bit 一行。

2.偶尔,以 4B 编址,这类情况,芯片是字扩展,还是位扩展,还是混合呢?

3.芯片组合,主要考虑,有门牌号的放在一行,4B = 32 bit,即编号的比特一行 32 个,第二行第一个bit 再写个号码。

因此,此时,芯片 只要不是 32位的,都作位扩展,直至芯片存储单元和所需要的一致。

4.例如,需要 32K存储体,现在芯片规格 8K * 8 bit 。采用【位扩展】,即 8K * 8bit * 4。

芯片数量是一样的,关键是总线 连数据线引脚,还是地址线引脚。

 

【注意】

1.数据线 - 位扩展;地址线 - 字扩展

2.例如:24根地址线,32根数据线。512K * 8位 芯片,需要几片?

回答:

第一,数据线 32 根,即 32 位,因此 4块芯片一组;

第二,24根地址线,意味着 2^(24) SLOTs,一组芯片 512K = 2^(19)

需要芯片的组数 = 2^(24) / 2^(19) = 2^(5) = 32

每组芯片 4 块,共计 32 * 4 = 128 块。

 

【注意】

1.译码器由地址线连接,而且永远连接【高位】,连接哪一条呢?

2.连接的地址线,依据地位的地址线占用情况。即 先计算需要 字扩展的地址线,地位全部占据之后,再连接高位地址线。

上述,是综合各类资料。

 

 

【2018】 假定 DRAM 芯片中存储阵列的行数 r ,列数为 c,对于一个 2K x 1位的 DRAM 芯片,为保证其地址引脚数最少,并尽量减少刷新开销,则 r, c 的取值分别是()

A 2048, 1

B 64, 32

C 32, 64

D 1, 2048

 

答案:C

解析:

1.首先,“引脚数最少” ,即最少的芯片达到想要的效果 -- 怎样排列最有效率!!

2.其次,DRAM 采用地址复用技术。

 尽量选用 行列 值差得不大的。

DRAM 按行刷新,因此 行数要少。存储芯片字长

3.综上,2K x 1位的芯片要怎么排列?

因为地址复用,所以 行和列数量要接近;

又由于 按行 读取,因此行数较少。

 

 

* 总线带宽 > 存储字长

接着,几种提高 CPU 与 主存交互速率的技术。

 

多模块存储器(408考试重点)

 

 

 2023年12月15日

 

复习集计算机组成原理,多模块存储体时候遇到困难。

如上图,先知道所谓的双端口 RAM 和 多模块存储体 其实是两种提升 CPU  主存交互的两种解决方案。

 

低位交叉多模块存储器,主要是模块化和并行。

一个存储周期内,可以同时读取好几个模块 —— 基本 IDEA

 

例题-1:存储体存储周期 110 ns,总线传输周期(存取周期)为 10 ns,采用低位交叉编址的多模块存储器时,存储体数应该是()

A 小于 11

B 等于 11

C 大于 11

D 大于等于 11

 

答案:D

解析:

 1.模块个数 = 存储周期 / 总线传输周期 = 11个

2.模块个数 大于等于 11

 

 

例题-2:四体并行低位交叉存储器,每个模块容量 64K x 32 位,存取周期 200ns,总线周期(存取时间/存取周期) 50ns,下述说法正确的是()

A 在 200 ns 内,存储器能向 CPU 提供 256 位二进制信息

B 在 200 ns 内,存储器能向 CPU 提供 128 位二进制信息 

C 在 50 ns 内,每个模块能向 CPU 提供 32 位二进制信息

D 以上均不对

 

答案:B

解析:

1.首先是模块的个数,个数 = 200 ns / 50 ns = 4 

2.4 * 32 位  = 128 位。即 1 个存储周期内可以 传输 128 位信息。数据总线 32 根,用逻辑门,分成 128 位信息。

 

 

这两道题搞懂,应该是算是基本理解 how it works 

 

 

【2015】某计算机使用四体交叉编址存储器,假定在存储器总线上出现的主存地址(十进制)序列为 8005,8006,8007,8008,8001,8002,8003,8004,8000,则可能发生访存冲突的地址是()

A 8004, 8008

B 8002,8007

C 8001,8008

D 8000,8004

 

答案:D

解析:

1.四体低位交叉

8000, 8001, 8002, 8003

8004, 8005, 8006, 8007

8008

2.冲突地址怎么识别?

考察前后紧邻的地址序号,是否在同一列上。

3.注意到:

第一列,8000,8004,8008,是否有紧邻的。有 8004,8000。

第二列,8001,8005 是否紧邻? 没有。

第三列,8002,8006 是否紧邻? 没有。

第四列,8003,8007 是否紧邻? 没有。

故选择 D 。

 

 

【2017】某计算机主存按字节编址,由 4 个 64M x 8位 的 DRAM 芯片采用交叉编址方式构成,并与宽度为 32 位的存储器总线相连,主存每次最多读写 32 位数据。若 double 型变量 x 的主存地址为 804 001AH ,则读取 x 需要的存储周期数是 ()

A 1  B 2  C 3  D 4

 

答案:C

解析:

1.首先,知道 x 主存地址 1000 0000 0100 0000 0000 0001 1010 

2.最低 2 位 “10”,说明从编号为 2 的芯片开始存。如下所示:

芯片0 芯片1 芯片2 芯片3

XXXX XXXX 1000 0000

0100 0000 0000 0001

1010

3.因为存储的芯片编号2,因此要读 3 个周期。

4.为什么变量的最低两位显示存储芯片的编号?

因为,4块 低位交叉的芯片模式。在计算机编址技术规则下,最低两位拿出来用作【体号】。BTW,如果是高位交叉,则是最左边两位拿出来作为【体号】。

 

 

Cache 高速缓存储器

 

1.Cache 每块由若干个字节组成,块长,或者称为 “行长”。

2.如果 CPU 选择同时访问 Cache 和 主存的,如果 Cache 命中,则停止访问主存。否则,停止访问主存,并替换 Cache。

3.替换 Cache 还分为全写法(write through) 和 写回法(write back)。 

 

Cache  命中率

Cache_hit_rate = #Cache_hit / ( #Cache_hit + #Memory_hit )

 

Cache - Mem 平均访问时间

Cache - Mem Average Time = Cache_hit_rate * T_cache + ( 1 - Cache_hit_rate ) * T_Mem

 

Cache - Mem 映射方式

1.直接相联映射

Cache 块号,在 Mem 里也是按照 Cache 块号一一对应。

 

2.组相联映射 

Cache 分组,Mem 里是按照组号编号。例如,Cache分成 4 组。那么,Mem 里 0, 4, 8 对应同一块 Cache。

 

Cache 替换算法

1.随机替换

2.先进先出 FIFO

3.最近最少使用 LRU。用 count,命中一次,count = 0

4.最近最不常使用 LFU。用 count, 新建立时候 count=0,被访问一次,count++

 

替换 Cache 写策略

1.全写法 

写命中,同时写入 Cache 和 主存。

 

2.写回法

写命中,修改 Cache;换出时候,Cache 内容写回主存。

 

 

【2009】假设某计算机的存储系统由 Cache 和主存组成,某程序过程中访存 1000 次,其中访问 Cache 缺失(未命中)50次,则 Cache 的命中率是()

A 5%  B 9.5%  C 50%   D 95%

 

答案:D 

解析:

1.根据公式 Cache_hit_rate = #Cache_hit / ( #Cache_hit + #Mem_hit ) = #cache_hit / #total

Cache_hit_rate = (1000 - 50) / 1000 = 95% 

2.注意公式中,是命中次数,并非缺失次数。

选择 D

 

 

【2009】某计算机的 Cache 共有 16 块,采用二路组相联映射方式(即每组 2 块)。每个主存块大小为 32 B,按字节编址,主存 129 号单元所在主存块应装入的 Cache 组号是()

A 0  B 2  C 4  D 6

 

答案:C

解析: 

1.注意到 主存大小 = 2^(5) B

一块主存块,编号最多 0 - 31

第 129 号主存,在第 5 个主存块中。此前,分别为 0-31, 32- 63, 64-95, 96-127,128(0) 129(2)。

 

2.由于二路组,因此129 对应 4 号。

注意:

按照答案,组号编号 0,2,4,6,8,10,12,14 

主存中对应模式,每个 主存块 可以放 4 轮Cache,如下:

0(0),1(2),2(4),3(6),4(8),5(10),6(12),7(14)

8(0),9(2),10(4),11(6),12(8),13(10),14(12),15(14)

16(0),17(2),18(4),19(6),20(8),21(10),22(12),23(14)

24(0),25(2),26(4),27(6),28(8),29(10),30(12),31(14)

……

128(0),129(2)

 

 

【2012】假设某计算机按字节编址,Cache 有 4 行,Cache 和主存之间的交换块大小为 1 个字。若 Cache 内容初始为空,采用 2 路组相联映射方式和 LRU 替换策略,则访问的主存地址依次为 0,4,8,2,0,6,8,6,4,8 时,命中 Cache 次数是()

A 1  B 2  C 3  D 4

 

答案:C 

解析:

1.Cache 4行,二路组,说明如图所示。

1个字 = 32 bit

主存地址 0-1,2-3,4-5,6-7,8-9(64 bit)

其中, 

第 0 组,0-1, 4-5, 8-9

第 1 组,2-3, 6-7

【注意】这里主存地址的编号,因为主存地址序列如此。每个编号对应一个字。

 

2.二路组相联,Cache 命中情况

 

* CPU 与 Cache/主存 之间交互,单位为 "字";

* Cache 与主存之间交互,单位 "块"

 

 

* 页面失效率 = 缺失次数 / 作业数

具体到题目,页面缺失率 = 6/20 = 30%

  注意,首次进入的作业,如果木有 HIT 到,也要计入 缺页。

 

 

* 主存和 Cache 怎么映射?

1.计算主存有多少个地址位。通常,都是低位的若干位表示 Cache 内部地址;

2.Cache 内部的行号,和一行内部的位置。用低位表示。

3.Cache 和主存的地址映射,一定要很熟悉。

 

 

地址映射表大小

* 主存大小是 Cache 的 4096 倍

* Cache 行数 64 行

* 显然,要映射出 Cache 大小,需要 12 个bit

* 需要 1 个bit,表示有效与否

* 地址映射表的大小 = 64 * 13 bit

 

 

关于 Index, Tag, Offset 计算

* Cache 每组 8 * 16 B = 2^(7) B -- 这个做法是错误的

订正: Cache 组数 = 2^(3) SLOTs 

 

* Cache 容量 = 2^(14 ) SLOTs 

组数 = 2^(11) 组

主存地址 0001 0010 0011 0100 0101 0110 0111

注意:这里 offset + tag + index 

 

* 重要指标

Offset = 3

Tag  = 11

Index = 28 - 11 - 3 = 14 

 

* 主存地址 000, 1 0010 0011 01, 00 0101 0110 0111

    offset, tag, index

tag = 0000 0100 1000 1101 = 048DH

 

注意:

1.易错点,把内部 16B 也拆开来精确到字节,其实 offset 对应的单位的是 SLOT。这意味着,对应的芯片为单位。不用拆到字节。

2.易错点,低位交叉方案。 offset + tag + index

tag 左边位数不足的,补“0”。

3.最小单位,要么是字节,要么芯片。

 

 

【2016】如下 C 语言程序段:

for (k=0; k<1000l k++) 

  a[k] = a[k] + 32;

 若数组 a 和变量 k 均为 int 型占据 4B,数据 Cache 采用直接映射方式,数据区大小为 1KB,块大小为 16B,该程序段执行前 Cache 为空,则该程序段执行过程中,访问数组 a 的Cache 缺失率约为()

A 1.25%

B 2.5%

C 12.5%

D 25%

 

答案:C 

解析:

1.这段程序,有四个 整数,k, a[k],a[k], 32

2.读取某个变量时候,读取需要访存一次,计算后存结果再访存一次。共两次访存。

3.综上,4个未知变量,需要访存 8次,而只有首次访存的时候会产生缺页。其他其次可以直接获取变量值,缺页率 = 1/8 = 12.5%

4.这道题很多 info 是多余的!一定要知道考卷考什么。

本题目比较难,可以直接背出来!

 

 

【2014】采用指令 Cache 和 数据 Cache 分离的主要目的是()

A 降低 Cache 的缺失损失

B 提高 Cache 命中率

C 降低 CPU 平均访存时间

D 减少指令流水线资源冲突

 

答案:D

解析:直接背

 

 

【2017】某 C 语言程序段如下:

for ( i=0; i<=9; i++ ) {

temp=1;

for ( j=0; j<i; j++ ) temp *= a[j];

sum += temp;

 下列关于数组 a 的访问局部性描述中,正确的是()

A 时间局部性和空间局部性均有

B 无时间局部性,有空间局部性

C 有时间局部性,无空间局部性

D 时间局部性和空间局部性皆无

 

答案:A

解析:

1.循环本身就是一种时间局部性。现在在运行的运算,很可能未来还需要运行;

2.空间局部性,某个变量自我迭代。

 

 

【2010】某计算机的主存地址空间大小 256MB,按字节编址。指令 Cache 和 逻辑 Cache 分离,均有 8 个 Cache 行,每个 Cache 行大小为 64B,数据 Cache 采用直接映射的方式,现有两个功能相同的程序A 和程序 B ,其伪代码如下所示:

 假定 int 类型数据用 32 位补码表示,程序编译时,i, j, sum 均分配在寄存器中,数组 a 按行优先方式存放,其首地址为 320 (十进制数)。请回答下列问题,要求说明理由或给出计算过程。

(1)不考虑用于 Cache 一致性维护和替换算法的控制位,数据 Cache 的总容量为多少?

(2)数组元素 a[0][31] 和 a[1][1] 各自所在的主存块对应的 Cache 行号是多少(Cache 行号从 0 开始)?

(3)程序 a 和 b 数据访问命中率各是多少?哪个程序的执行时间更短?

 

答案:

(1)主存大小 = 2^(28) B

Cache 每行大小 = 2^(6) B

Cache 大小= 8 * 2^(6) + 20  = 532 B

 

(2)数组 a 按行存放,首地址 320 位,数组占 4B。

a[0][31]: 所在 Cache 第几行?

a[1][1] 所在 Cache 第几行?

 

这道题目我想了蛮久的,氧气还耗尽了!于是昨天又睡了 5 个小时i!!HAHA

现在成果来了!

 

 (3)命中率不会,直接跳掉。

本题数组应该是已然存在的,因此循环一次,只有区数一个动作。

因此先不纠结。

应该是按行存取的速度快(程序A),和硬件结构一致。

 

 

【2013】某 32 位计算机,CPU 主频为 800MHz ,Cache 命中时的 CPI 为 4,Cache 块大小为 32B;主存采用 8 体交叉存储方式,每个体的存储字长 32 位,存储周期为 40 ns;存储器总线宽度为 32 位,总线时钟周期频率 200 MHz,支持突发传送总线事务。每次读突发传送总线事务的过程包括:送首地址和命令、存储器准备数据、传送数据。每次突发传送 32B,传送地址或 32位数据均需要一个总线时钟周期。请回答,给出计算过程。

(1)CPU 和总线的时钟周期各为多少?总线的带宽(即最大数据传输率)为多少?

(2)Cache 缺失时,需要用几个读突发传送总线事务来完成一个主存块的读取?

(3)存储器总线完成一次读突发传送总线事务所需的时间是多少?

(4)若程序 BP 执行过程中共执行了 100 条指令,平均每条指令需进行 1.2 次访存,Cache 缺失率 5%,不考虑替换开销,则 BP 的 CPU 执行时间是多少?

 

答案:

(1)总线周期 = 1/总线频率 = 1/200MHz = 5 * 10^(-9) second/instruction = 5ns

CPU周期 = 1/主频 = 1 / 800MHz = 1.25 * 10^(-9) second/instruction = 1.25ns

总线带宽 = 32 bit/clock * 200 clock/second = 6400 bit/second = 800 Bps

 

(2)Cache 大小是 32 B,Cache缺失,用一个突发传送总线事务,读取一个主存块。

如果突发传输字节数只有16字节,此时需要传 2 次,不考虑传地址的字节占据。

 

来自知乎的回答。参考:

https://www.zhihu.com/question/370833548 

猝发传输可以连续传送地址连续的数据,因此存取一连串数据的时候只要第一次发地址,后面直接传数据,减少了发地址的时间就增加了传输率 

 

突发传送 32B,总线带宽 800 B/s

于是,突发传送需要时间 = 突发传送 / 总线带宽 = 32B / 800B/s = 0.04 (second)

 

(3)一次读突发 = 地址传送 + 数据传送 32B

A 传地址时间 = 1个总线周期

B 传数据时间 = 读取存储体时间 + 传数据时间

因为 8体交叉存储,需要 8 个时钟周期传输数据。

C 一次读突发 = 传地址时间(1个总线周期) + 读取存储体时间(存储周期) + 8 * 单个存储体事务时间

* 每隔 40 ns 刷新一次,刷新 8 个存储体,平摊在每个存储体时间 = 40 ns / 8 = 5ns

* 一次读突发总线事务总时间 = 5ns + 40ns + 8 * 5ns = 85 ns

 

(4)注意几个点

A CPU 额外开销由缺失造成,处理  一次额外事务  需要时间 85 ns

   多少次额外事务呢?

   平均每条指令,额外事务占据CPU执行 1.2 次,缺失率(执行无效的比例)  

  1.2 * 5% * 85 ns = 5.1 ns

B 每条指令 CPU 执行时间 = CPI * CPU周期(second/clock) = 4 * 1.25 ns = 5ns 

C 一条指令的平均 CPU 执行时间 = 5.1 + 5 = 10.1 ns

D 程序一共 100 条 指令,程序执行时间 = 100 * 10.1 = 1010 ns

 

 

【2016】某计算机采用页式虚拟存储管理方式,按字节编址,虚拟地址为 32 位,物理地址为 24 位,页大小为 8KB;TLB 采用全相联映射; Cache 数据区大小为 64KB,按 2 路组相联方式组织,主存块大小为 64B。存储访问过程的示意图如下。

 

 

 回答下列问题:

(1)图中字段 A - G 的位数各是多少?TLB 标记字段 B 中存放的是什么信息? 

(2)将块号为 4099 的主存块装入 Cache 时,所映射的 Cache 组号是多少?对应的 H 字段内容是什么?

(3)是 Cache 缺失处理的时间开销大还是缺页处理的时间开销大?为什么?

(4)为什么 Cache 可以采用直写策略,而修改页面内容时总是采用回写策略?

 

 答案:

在开始答题之前(只适用于不熟悉 知识点的同学),梳理出所有隐藏的条件。

 

1) Cache 行数

Cache 行数 = 64 KB / (2*64B) = 512 行

如图

 

2) 理论拨出多少主存?

一个物理地址连一个字节 B

一共可以连 2^(24) 个字节 = 16 MB

    -- 符合本题的主存区域大小

 

3)主存可以容纳多少个 Cache?

#Supposed Cache =16MB / 64KB = 2^(24) B / 2^(16) B = 2^(8) 个 = 256 个 

 

(1)页面大小 8KB,offset = 13 bit  

物理地址 D=13

Cache 行数 = 64KB / (2*64B) = 512 行, tag = 9 即 F=9

由上述公式知道,一个单位(主存块)大小 64B = 2^(6) B , offset = 6 即 G = 6

由题目,C=11, A=19, E=9

 

(2)Cache 有 1024 块主存块,一块主存块 0-63。

4099 mod 64 = 3 Cache 组号 3

注意:也算是 Takeaway ,组号的含义,一行当中的编号,从 0 - 127。

 

关于计算机编址

* 按字节编址,就是增加1,地址增加 1B;

* 注意这个地址,是十进制。

 

具体到本题

因为 4099 是地址! 因此,我们的思路是,将 4099 写成二进制。

4099 = 4096 + 3 = 00 0001 0000 0000 0011 B

 

依据 index(9), tag(9)

4099 = 00 0001 000, 0 0000 0011 B 

 

H字段对应 物理地址 中的 F,F  = 0 0000 1000B

[H]内容 = 0 0000 1000B 

 

【注意】

给出的地址,根据按字节编址,要对颗粒度有概念,这样就能知道 “ 增加 1 个单位时候,增加多少物理块 ”

 

(3)是 Cache 缺失处理的时间开销大还是缺页处理的时间开销大?为什么?

答:Cache 处理时间开销小,缺页处理开销大。因为缺页需要访问主存。

 

(4)为什么 Cache 可以采用直写策略,而修改页面内容时总是采用回写策略?

 答:首先,“修改页面” 概念,即主存 - 外存交互。

其次,因为写外存慢很多,因此采用回写这种不同步操作会更省时间。Cache - 主存的写操作,同时修改的直写策略不会有太多时间差问题。

 

 

 

半导体随机存储器

 

(1)SRAM

静态 RAM,易失性存储器,断电即信息小时。

(2)SRAM

动态 RAM,非易失性存储器,每隔 2ms 刷新一次。地址线复用。

(3)ROM

ROM 中的信息不丢失,即使电源切断有不会主动丢失信息。

 

12/15 下午 1:30 果然不能通宵,一通宵白天只想睡觉。

 

【2014】某容量 256 MB 存储器由若干 4M  x 8位 DRAM 芯片构成,该 DRAM 芯片的地址引脚和数据引脚总数()

A 19 

B 22

C 30

D 36

 

答案:A

解析:

1.数据线 8 根

2.地址线数量 = lb( 4M ) = 22 

3.DRAM 地址线复用,因此 使用 11根地址线 

4.引脚数 = 8+11 = 19 

 

 

【2010】下列有关 RAM 和 ROM 说法正确的是()

(I)RAM易失性存储器,ROM非易失性存储器

(II)RAM 和 ROM 都采用随机存取方式进行信息访问

(III)RAM 和 ROM 都可用作 Cache

(IV)RAM 和 ROM 都需要进行刷新

A 仅 I 和 II

B 仅 II 和 III

C 仅 I,II,III

D 仅 II,III,IV

 

答案:A

解析:直接记忆即可

 

 

【2012】下列关于闪存叙述中,错误的是()

A 信息可读可写,并且读写速度一样快

B 存储元由 MOS 管组成,是一种半导体存储器

C 掉电后信息不丢失,是一种非易失性存储器

D 采用随机访问方式,可替代计算机外部存储器

 

答案:A

解析:记忆即可

 

 

【2015】下列存储器中,在工作期间需要周期性刷新的是()

A SRAM

B SDRAM

C ROM

D FLASH

 

答案:B

解析:SDRAM 需要周期性刷新

 

 

 

ShoelessCai.com 值得您的关注!

 

posted on 2023-12-15 05:30  Mira_2019  阅读(670)  评论(0编辑  收藏  举报