赞
踩
4.1解释下列名词
存取时间:又称为存储器的访问时间,是指启动一次存储器的操作(读或写分别对应存与取)到该操作完成所经历的时间。
存取周期:连续启动两次访问操作之间的最短时间间隔。
存储器带宽:单位时间内存储器所能传输的信息量,常用的单位包括位/秒或字节/秒。
存储单元:保存数据的基本内存单元。根据保存内容的大小,一般可分位存储单元,字存储单元等。存储单元一般应具有存储数据和读写数据的功能,每个单元有一个地址,并按地址访问。
边界对齐的数据存放:
大端存储:数据的高字节存储在低地址中,数据的低字节存储在高地址中。
小端存储:数据的高字节存储在高地址中,数据的低字节存储在低地址中。
静态存储器(SRAM):不需要刷新,运行速度快,储存成本高的SRAM,常用作Cache。
动态存储器(DRAM):需要刷新,运行速度较慢,储存成本低的DRAM,常用作主存。
刷新:动态存储单元中,为使所存信息能长期保存,在电容电荷泄露完之前定时地补充电荷的过程。
刷新周期:需要多久刷新一次,一般为2ms。
字扩展:用多位满足一定要求的存储芯片构成容量更大的存储器。
位扩展:用多片存储芯片构成位数更多的存储器。
多体交叉存储器:由多个存储容量相同,读写速度相同或相近的多个存储模块构成容量更大的存储器,根据存储模块的组织方式不同,又可分为低位交叉和高位交叉两种组织方式。
高速缓冲存储器(Cache):为缓解快速的CPU与慢速主存之间的速度差异,在CPU和主存之间插入的一至多级速度较快、容量较小的SRAM,起到缓冲作用;使CPU既可以以较快速度存取SRAM中的数据,又不使系统成本上升过高。
双端口存储器:
相联存储器(CMA):在计算机系统中,相联存储器主要用于虚拟存储器中存放段表、页表和快表以及高速缓冲存储器中的查找。
时间局部性:指当程序访问一个存储位置时,有很大的可能性程序会在不久的将来再次访问同一位置,程序的循环结构和过程调用就很好地体现了时间局部性。
地址映射:指把主存地址空间按照某种规则映射到Cache的地址空间。
直接相联映射:地址映射时,主存数据块只能映射到索引字段所指向的Cache行中保存;地址变换时,需查找的范围也只涉及索引字段所指向的特定Cache行。
全相联映射:主存数据块可以映射到Cache的任意行中;地址变换时,需查找所有的Cache行。
组相联映射:地址映射时,主存数据块只能映射到索引字段所指向的Cache特定组(其中的行可任选);地址变换时,需查找的范围也只是索引字段所指向的特定Cache组的所有行。
命中率:指CPU访问存储系统时,命中Cache的次数占总访问次数的比率。设NC为某程序运行期间命中Cache的次数,Nm为从主存中访问信息的次数,则命中率H定义为:
虚拟存储器:是一种解决主存容量不足的存储管理机制,处于存储系统层次结构中“主存-辅存”存储层次。
虚拟存储器:
页框号:
页表(慢表):是一张保存虚拟页号和物理页号(也称实页号)之间对应关系的表格。
页表项:页表的表项,每一个表项由有效位和物理页号两部分构成,用于实现虚拟地址与物理地址之间的转换。
TLB(快表):为了降低虚拟存储器地址转换的开销,根据局部性原理,将页表的一部分装入Cache中,从而减少虚拟地址与物理地址之间转换时访问内存的次数。
LRU算法:近期最少使用算法
LFU算法:最不经常使用算法
Cache一致性:指保存在cache中的数据与保存在主存相关单元的数据相同。
写回法:当CPU对Cache写命中时,只修改Cache的内容不立即写入主存,只当Cache行被替换时才将Cache中的数据写回主存。
写穿法:当Cache写命中时,同时对Cache和主存中同一数据块进行修改;当cache写未命中时,直接向主存写入新的信息,但此时是否将修改过的主存块调入Cache,写穿法有两种选择。一种是把主存中的块调入Cache,在Cache中修改,称为写分配法。另一种是只写入主存,不调入Cache,称为非写分配法。
4.2
(1)下列有关RAM和ROM的叙述中,正确的是()。
Ⅰ.RAM是易失性存储器,ROM是非易失性存储器
Ⅱ.RAM和ROM都是采用随机存取的方式进行信息访问
Ⅲ.RAM和ROM都可用作Cache
Ⅳ.RAM和ROM都需要进行刷新
A.仅Ⅰ和Ⅱ
B.仅Ⅱ和Ⅲ
C.仅Ⅰ,Ⅲ,Ⅲ
D.仅Ⅱ,Ⅲ,Ⅳ
答案:A
用作Cache的是SRAM,需要进行刷新的是DRAM。
(2)某容量为256MB的存储器由若干4M×8位的DRAM芯片构成,该DRAM芷片的地址引脚和数据引脚总数是_______。
A.19
B.22
C.30
D.36
答案:A
4M=2^22,DRAM采用地址复用技术,地址引脚数为22/2=11,数据引脚数为8
(3)某计算机主存容量为64KB,其中ROM区为4KB,其余为RAM区,按字节编址。现要用2K×8位的ROM芯片和4K×4位的RAM芯片来设计该存储器,则需要上述规格的ROM芯片数和RAM芯片数分别是______。
A.1、15
B.2、15
C.1、30
D.2、30
答案:D
ROM:4KB/2KB=2RAM:60KB/(4K×4)=30
(4)假定用若干个2K×4位芯片组成一个8K×8位存储器,则地址081FH所在芯片的最小地址是()。
A.0000H
B.0600H
C.0700H
D.0800H
(5)假定DRAM芯片中存储阵列的行数为r、列数为c,对于一个2K×1位的DRAM芯片,为保证其地址引脚数最少,并尽量减少刷新开销,则r、c的取值分别是()
A.2048、1
B.64、32
C.32、64
D.1、2048
答案:C
2K×1=2^11
为保证其地址引脚数最少,行、列数为64、32或32、64;DRAM按行刷新,尽量减少刷新开销,行数应为32
(6)假定一台计算机采用 3 通道存储器总线,配套的内存条型号为 DDR3-1333,即内存条所接插的存储器总线的工作频率为1333 MHz、总线宽度为64位,则存储器总线的总带宽大约是( )。
A.10. 66 GB/s
B.32 GB/s
C.64 GB/s
D.96 GB/s
答案:B
存储器总线的总带宽大约是3*1333 MHz*64bit=32 GB/s
(7)某计算机使用4体交叉编址存储器,假定在存储器总线上出现的主存地址(十进制)序列为8005,8006,8007,8008,8001,8002,8003,8004,8000,则可能发生访存冲突的地址对是_______。
A.8004和8008
B.8002和8007
C.8001和8008
D.8000和8004
(8)下列存储器中,在工作期间需要周期性刷新的是_______。
A.SRAM
B.SDRAM
C.ROM
D.FLASH
答案:B
需要进行刷新的是DRAM。
(9)下列各类存储器中,不采用随机存取方式的是()。
A.EPROM
B.CDROM
C.DRAM
D.SRAM
答案:B
(10)下列关于闪存(Flash Memory)的叙述中,错误的是_______。
A.信息可读可写,并且读、写速度一样快
B.存储单元由MOS管组成,是一种半导体存储器
C.掉电后信息不丢失,是一种非易失性存储器
D.采用随机访问方式,可替代计算机外部存储器
答案:A
信息写入时需要先擦除原有信息,写速度比读速度慢得多。
(11)下列关于数组a的访问局部性的描述中,正确的是()
A.时间局部性和空间局部性皆有
B.无时间局部性,有空间局部性
C.有时间局部性,无空间局部性
D.时间局部性和空间局部性皆无
答案:A
(12)某计算机的Cache共有16块,采用2路组相联映射方式(即每组2块)。每个主存块大小为32字节,按字节编址。主存129号单元所在主存块应装入到的Cache组号是( )
A.0
B.2
C.4
D.6
答案:C
(13)假设某计算机按字编址,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
(14)假定主存地址为32位,按字节编址,主存和Cache之间采用直接映射方式,主存块大小为4个字,每字32位,采用回写(writeback)方式,则能存放4K字数据的Cache的总容量的位数至少是()。
A.146K
B.147K
C.148K
D.158K
(15)采用指令Cache与数据Cache分离的主要目的是()
A.降低Cache的缺失损失
B.提高Cache的命中率
C.降低CPU平均访存时间
D.减少指令流水线资源冲突
答案:D
(16)假定编译器将赋值语句"x=x+3;“转换为指令"add xaddr,3”,其中xaddr是x对应的存储单元地址。若执行该指令的计算机采用页式虚拟存储管理方式,并配有相应的TLB,且Cache使用直写(Write Through)方式,则完成该指令功能需要访问主存的次数至少是_______。
A.0
B.1
C.2
D.3
(17)下列命中组合情况中,一次访存过程中不可能发生的是______。
A.TLB命中、Cache命中、Page(页表)命中
B.TLB未命中、Cache命中、Page(页表)命中
C.TLB未命中、Cache未命中、Page(页表)命中
D.TLB命中、Cache命中、Page(页表)未命中
(18)某计算机主存地址空间大小为256MB,按字节编址。虚拟地址空间大小为4GB,采用页式存储管理,页面大小为4KB,TLB(快表)采用全相联映射,有4个页表项,内容如下表所示。
有效位 | 标记 | 页框号 |
0 | FF180H | 0002H |
1 | 3FFF1H | 0035H |
0 | 02FF3H | 0351H |
1 | 03FFFH | 0153H |
则对虚拟地址03FFF180H进行虚实地址变换的结果是_______。
A.015 3180H
B.003 5180H
C.TLB缺失
D.缺页
(19)下列关于缺页处理的叙述中,错误的是( )。
A.缺页是在地址转换时 CPU 检测到的一种异常
B.缺页处理由操作系统提供的缺页处理程序来完成
C.缺页处理程序根据页故障地址从外存读入所缺失的页
D.缺页处理完成后回到发生缺页的指令的下一条指令执行
4.3
(1)算机系统中采用层次化存储体系结构的目的是什么?
采用层次化存储体系的目的包括两方面:其一是解决快速的CPU和慢速的主存之间的速度差异;其二是解决主存容量不够大的问题。
(2)为什么在存储器芯片中设置片选输入端?
由于存储芯片的容量及字长与目标存储器的容量及字长之间可能存在差异,应用存储芯片组织一定容量与字长的存储器时,一般可采用位扩展、字扩展、字位同时扩展等方法来组织。这样就会使用多个存储芯片,从而要设置片选输入端来选择正确的存储芯片来进行操作。
(3)动态MOS存储器为什么要刷新?如何刷新?
动态存储单元中,信息以电荷形式存储在T1或T2管的栅极电容中。由于电容容量小,所存电荷会在一段时间后逐渐泄漏(一般为ms级),为使所存信息能长期保存,需要在电容电荷泄露完之前定时地补充电荷,这一过程称为刷新。
刷新的方法: ①刷新方式:集中刷新、分散刷新和异步刷新。前者存在CPU死时间;分散刷新由于刷新次数过多,降低了存储器的速度;异步刷新是前两者的折中。②刷新按行进行,因此设计刷新电路时需要知道动态存储器的内部行、列结构。
③刷新地址由刷新地址计数提供。
(4)试述多体交叉存储器的设计思想和实现方法。
多体交叉存储器由多个存储模块构成,这些模块的容量和存取速度相同,具有各自独立的地址寄存器、地址译码器、驱动电路和读写控制电路。根据对多各模块编址方式的不同,又可分为高位多体交叉和低位多体交叉两种方式。
(1)高位交叉:按存储器地址的高位地址划分模块,同一存储体内的地址是连续的。当多个目标同时访问存储器时(如CPU和DMA设备同时访问存储器),如果访问的地方范围处于不同的存储芯片,则提供并行访问。
(2)低位交叉:按存储器地址的低位地址划分模块,同一存储体内的地址不相邻,相邻地址处在不同存储体中。CPU可同时启动多个存储体,并进行并行访问。
(5)为什么说Cache对程序员是透明的?
因为在程序员看来,数据是在内存和辅存之间进行交换的,程序员感觉不到中间层cache 的存在。
(6)直接映射方式下为什么不需要使用替换算法?
因为在直接映射方式中,一个内存块只能固定的映射到cache中的特定行,当有新的主存块调入时, cache特定行中的内容必须调出,因此不需要替换算法去选择替换掉哪一块。
(7)为什么要考虑cache的一致性?
正常情况下,cache中的数据是主存数据的副本,当两者不一致时可能导致程序结果不正确,因此,必须考虑并设法保证Cache的一致性。
(8)替换算法有哪几种?他们各有何优缺点?
① 先进先出算法(FIFO)
基本思想:按照数据块进入Cache的先后决定替换的顺序,即在需要进行替换时,选择最先被调入Cache中的块作为替换块。这种方法要求为每块记录它们进入Cache的先后次序。
优点:FIFO算法系统开销较小。
缺点:是不考虑程序访问的局部性,可能会把一些需要经常使用的块(如循环程序块)也作为最早进入Cache的块而替换掉,因此,可能导致Cache的命中率不高。
② 近期最少使用(LRU)算法基本思想:将近期内长久未被访问过的行换出。为此,每行设置一个计数器,cache每命中一次,命中行计数器清零,其它各行计数器增1,因此它是未访问次数计数器。当需要替换时,比较各特定行的计数值,将计数值最大的行换出。
优点:这种算法显然保护了刚调入Cache的新数据,符合cache工作原理,因而使cache有较高的命中率。LRU算法硬件实现简单
③ 最不经常使用(LFU)算法基本思想:将一段时间内被访次数最少的那行数据换出。为此,每行设置一个计数器,新调入行的数据从0开始计数,每访问一次被访行的计数器增1。当需要替换时,对这些特定行的计数值进行比较,将计数值最小的行换出。
缺点:一段期间访问情况不能严格反映近期访问情况。例如特定行中的A、B两行,A行在期间的前期多次被访问而后期未被访问,但累积计数值很大,B行是前期不常用而后期却正被频繁访问,但可能由于累积计数小于A行而被LFU算法换出了。
④ 随机替换算法基本思想:需要进行替换时,从特定的行位置中随机地选取一行进行替换。
优点:硬件实现最容易,而且速度也比前几种策略快。
缺点:随意换出的数据很可能马上又要用,从而降低命中率和cache工作效率。但这个负面效应随着cache容量增大会减少,模拟研究表明随机替换策略的功效只是稍逊于LFU和LRU。
4.4 对于32KB容量的存储器,若按16位字编址,其地址寄存器应是多少位?数据寄存器是多少位?
按16位字编址,数据寄存器有16位。
32KB/2B=16K=2^14,地址寄存器有14位。
4.5 用4个32K×8 位 SRAM 存储芯片可设计出哪几种不同容量和字长的存储器?画出相应设计图
并完成与 CPU 的连接。
4.6 用32K×8位 RAM芯片和64K×4位ROM 芯片设计256K×8位存储器。其中,从30000H 到 3FFFFH的地址空间为只读存储区,其他为可读、可写存储区。完成存储器与CPU的连接。
4.7 某计算机字长为16位,主存容量为128KB,请用16Kx8 位的静态RAM 芯片和32K×16位的
ROM 芯片为该机设计一个主存储器。要求18000H ~ 1FFFFH为 ROM 区,其余为 RAM 区。画出该存储器结构及其与CPU 连接的框图。
4.8 用64Kx1位的 DRAM 芯片构成 1Mx8位的存储器,若采用异步刷新,每行刷新间隔不超过
2ms,则产生刷新信号的间隔时间是多少?假设读写周期为 0.5us,若采用集中刷新方式,则存储器刷新一遍最少要用多少个读写周期?CPU 的“死”时间为多少?
64Kx1位的 DRAM 芯片的内部结构为256*256,DRAM芯片按行刷新,产生刷新信号的间隔时间是2ms/256=7.8125us
若采用集中刷新方式,则存储器刷新一遍最少要用256个读写周期,CPU 的“死”时间为0.5us*256=128us
4.9 设有某动态RAM芯片,容量为 64K X1位,除电源线、接地线和刷新线外,该芯片的最小引脚
数量是多少?
该芯片1位数据线
64K的存储器对应16根地址线,在DRAM中,行和列复用,即地址线为8根,行选通和列选通各一位
故在不考虑电源线的情况下,该DRAM芯片的最小引脚数为1+8+1+1 = 11个。
4.10 用16Kx1 位的DRAM芯片构成 64K×8位的存储器,设存储器的读写周期为 0.5us,要使 CPU在1us 内至少访问存储器一次,采用哪种刷新方式比较合适?若每行刷新间隔不超过 2ms,该方式下刷新信号的产生周期是多少?
设存储器的读写周期为 0.5us,要使 CPU在1us 内至少访问存储器一次,采用分散刷新或异步刷新方式比较合适。若每行刷新间隔不超过 2ms,该方式下刷新信号的产生周期是2ms/128=15.625us
4.11 设cache 的容量为 2^14 块,每块是一个 32位字,主存容量是 cache 容量的 256倍,其中有表 4.13 所示的数据(均为16进制)。
地址 | 数据 |
000000 | 8756 8536 |
000008 | 8779 2301 |
010004 | 9ABE FCD0 |
01FFFC | 4FFF FC68 |
FFFFF8 | 01BF 2460 |
将主存中这些数据裝入cache 后,cache 各块中的数据内容及相应的标志是什么?
(1)全相联映射;(2)直接相联映射;(3)四路组相联映射。
(1)全相联映射:(2)直接相联映射:
cache行 标志 数据 0 000000 8756 8536 1 000002 8779 2301 2 004001 9ABE FCD0 3 007FFF 4FFF FC68 4 3FFFFE 01BF 2460 (3)四路组相联映射:
cache行 地址 数据 0000 00 8756 8536 0002 00 8779 2301 0001 01 9ABE FCD0 3FFF 01 4FFF FC68 3FFE FF 01BF 2460
cache行 地址 数据 000 000 8756 8536 002 000 8779 2301 001 004 9ABE FCD0 0FFF 007 4FFF FC68 0FFE 3FF 01BF 2460
4.12 某计算机的cache 由 64 个存储块构成,采用四路组相联映射方式,主存包含 4096个存储块,每块由 128 个字组成,访问地址为字地址。
(1)主存地址和cache 地址各有多少位?
(2)按照题干条件中的映射方式,列出主存地址的划分情况,并标出各部分的位数。
(1)4096*128=2^19,主存地址位数为19位。64*128=2^13,cache地址位数为13位
(2)64 个存储块采用四路组相联共分成16=2^4组,组索引需要4位;主存块地址共12位(4096=2^12),故标记tag需要12-4=8位;每块由 128 =2^7个字组成,块内偏移需要7位。
标记(tag),8bits 组索引(index),4bits 块内偏移(offset),7bits
4.13 某计算机的主存容量为 4MB,cache 容量为 16KB,每块包含8个宇,每字为 32 位,映射方式采用四路组相联。设cache 的初始状态为空,CPU 依次从主存第 0,1,2,…,99 号单元读出 100个字(每次读一个字),并重复此操作 10次,替换算法采用 LRU 算法。
(1)求cache 的命中率。
(2)若 cache 比主存快 10 倍,分析采用cache 后存储访问速度提高了多少。
4.14 假定某数组元素按行优先顺序存放在主存中,则在以下两段伪代码A 和B中,分析下列问题。
(1)两段代码中对数组访问的时间局部性和空间局部性。
(2)变量 sum 的时间局部性和空间局部性。
(3)for 循环体对指令访问的时间局部性和空间局部性。
- int sum_array_A(int a[M][N])
- {
- int i, j, sum=0;
- for(i=0; i<M; i++)
- for(j=0; j<N; j++)
- sum+=a[i][j];
- return sum;
- }
- int sum_array_A(int a[M][N])
- {
- int i, j, sum=0;
- for(i=0; i<N; i++)
- for(j=0; j<M; j++)
- sum+=a[i][j];
- return sum;
- }
解:(1)程序A中具有很好的空间局部性,不存在时间局部性;
而程序B空间局部性不佳,同样也不存在时间局部性;(2)变量sum在循环中被多次使用,故具有良好的时间局部性。
(3)for循环中的指令会被反复循环执行,因此具有较好的时间局部性,另外循环体中的机器指令序列通常会顺序执行,因此也具有一定的空间局部性。
(持续更新中……)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。