1.提高工艺,提升内存颗粒本身的性能,缩短存储器的读写时间 2.加长存储器的字长(位扩展)
3.采用空间并行技术,即采用并行操作的双端口存储器
4.采用时间并行技术,即采用多模块交叉存储器(流水线技术); 5.在CPU和内存之间,加入高速缓冲存储器(cache技术);
6.快速页模式,加入页概念,同页内的操作不用更新地址,减少地址传输次数。
2 某机器中,配有四个16K×8bit的RAM芯片(编号1号到4号),CPU地址线16根,数据线8根,读写控制R/W(R/W=1为读控制,R/W=0为写控制)。每个RAM芯片有2个控制端:当 /CS有效时,该片选中;当 /WE =1时执行读操作,当 /WE =0 时执行写操作。用顺序存储方式画出此CPU与上述RAM芯片的连接图,并简述顺序存储相比交叉存储的优劣势。
A13~A0A15A14CPU0R/WD7~D0Y1__CSY02-4译码器Y2B0____CSA13~A01#___WED7~D0__CSA13~A02#___WED7~D0__CSA13~A03#___WED7~D0__CSA13~A04#___WED7~D0B1Y3____...顺序存储
顺序存储劣势:根据程序局部性原理,对连续地址的内存访问,顺序存储集中在一片RAM上工作,由于RAM存储相对CPU要慢,不利于流水线并行处理,而交叉存储对于连续地址的内存访问,分到不同的RAM块上,使得各RAM能并行工作,易于流水线操作,从而在整体上提高了内存访问性能。
顺序存储优势:内存扩展相比交叉存储要容易;期中一块内存损坏,不影响其它内存工作。
3、某机器中,配有四个16K×8bit的RAM芯片(编号1号到4号),CPU地址线16根,数据线8根,读写控制R/W(R/W=1为读控制,R/W=0为写控制)。每个RAM芯片有2个控制端:当 /CS有效时,该片选中;当 /WE =1时执行读操作,当 /WE =0 时执行写操作。用交叉存储方式画出此CPU与上述RAM芯片的连接图,并简述交叉存储相比顺序存储的优劣势。
A15~A2A1A0B1Y3__B0Y1__Y2____CSA13~A01#___WED7~D0__CSA13~A02#___WED7~D0__CSA13~A03#___WED7~D0__CSA13~A04#___WED7~D0CSY02-4译码器0__CPUR/WD7~D0...交叉存储
交叉存储优势:根据程序局部性原理,对连续地址的内存访问,交叉存储时连续数据分布在不同的存储模块上,有利于流水线并行工作,相比顺序存储,可获取更高的带宽。 交叉存储劣势:拓扑结构事先固定,内存扩展相比顺序存储要难;其中一块内存损坏,会影响存储的连续性。
4、某动态内存具有1024个记忆单元(32×32的存储矩阵)的存储芯片进行刷新,刷新是按行进行的,要求每行在2ms以内必须刷新一次,内存的存取周期为500ns(0.5?s),画出三种内存刷新方式的示意图,并比较各自特点。
0 读写操作 1 … 3967 3968 刷新 … 3999 3968个周期(1984 μs) 刷新间隔(2 ms) 32个周期(16 μs) 集中刷新
集中刷新缺点:在集中刷新期间必须停止读写,这一段时间称为“死区”,而且存储容量越大,死区就越长。
分散刷新
分散刷新:这种刷新方式增加了系统的存取周期,如存储芯片的存取周期为0.5?s,则系统的存取周期应为1?s。即牺牲了内存性能。没有充分利用2ms只需刷新一次,在2ms内过多刷新。 … 刷新 刷新 刷新 读写 读写 读写 62μs 0.5μs 62.5μs 62.5μs 刷新间隔(2 ms)
异步刷新
异步刷新:异步刷新方式虽然也有死区,但比集中刷新方式的死区小得多,仅为0.5?s。这样可以避免使CPU连续等待过长的时间,而且减少了没必要的刷新次数,是比较实用的一种刷新方式。
5、某机器采用模4交叉存储,今执行一小段循环程序,此程序放在存储器的连续地址单元中,且首地址为0000H。假设每条指令的执行时间相等(无流水线),均为TE,访问内存的时间由写地址时间和内存读写时间组成,写地址的时间是TA,内存数据读写到总线上的时间是TD,译码器译码时间忽略,计算下面两种情况程序执行时间(用TE、TA、TD表达)。
周期0 读写 刷新 周期1 读写 刷新 … 周期31 读写 刷新 刷新间隔(32 μs)
(1)循环程序由5条指令组成,重复执行80次。 (2)循环程序由8条指令组成,重复执行50次。
(3)若TE=TA=TD=1CPU周期,程序(2)相比程序(1)减少多少CPU周期。
(1)5条指令需取2次地址,总共运行时间:(2TA+5TD+5TE)×80=400(TD+TE)+160TA (2)8条指令需取2次地址,总共运行时间:(2TA+8TD+8TE)×50=400(TD+TE)+100TA 程序(2)比程序(1)减少了60个CPU周期
6. 换页次数:100K/1024=100 换页时间:2T×100=200T
页内访问时间:2T(列地址)+4T(访问周期)=6T 总共时间:200T+6T×100K
7. 换页次数:1M/1024=1K 换页时间:2T×1K=2KT
装入Cache时间:50T×1K=50KT
总共时间:2KT+50KT+(2T+1T)×1M
8. 2K×8位芯片构成的寻址:000 0000 0000~111 1111 1111 0A2FH= 0000 1010 0010 1111
8K×16位的最大寻址:1 1111 1111 1111;对应到2K芯片,由第13、12位进行译码, 因此0A2FH对应的芯片寻址范围:0 1000 0000 0000~0 1111 1111 1111
填充成完整的16位为:0000 1000 0000 0000~0000 1111 1111 1111,即0800H~0FFFH 9
LFU 策略:替换掉使用频率最少的块。
实现:每个块一个计数器,命中块的计数器自增1,其他块计数器保持不变,替换时选计数器最小值的块进行替换(使用次数最少)。
LRU策略:替换最近最少使用的块。
实现:每个块一个计数器,命中块对其计数器清零,并对其他块计数器自增1,替换时选最大值替换(最近使用次数最少,计数器没有清零,所以LRU为计数值最大者)。
具体过程如下:
LFU(最不经常使用) LRU(最近最少使用) 说明 块1 块2 块3 块4 说明 块1 块2 块3 块4 a a进入 1 0 0 0 a进入 0 1 1 1 b b进入 c c进入 d d进入 b 命中 1 1 1 1 1 1 1 2 0 1 1 1 0 b进入 1 0 1 c进入 命中 2 4 1 d进入 3 0 1 2 0 2 0 1 2 2 3 0 1 b 命中 c 命中 c 命中 d 命中 d 命中 a 命中 e 替换a 1 1 1 1 1 2 1 3 3 3 3 3 3 3 1 2 3 3 3 3 3 1 1 1 2 3 3 命中 命中 命中 命中 命中 命中 5 6 7 8 9 0 0 1 2 3 4 5 0 3 0 0 1 2 3 4 2 3 4 0 0 1 2 3 替换b 1
10 命中率h=Nc/(Nc+Nm)=1900/(1900+100)=0.95=95% 平均访问时间 ta=h*tc+(1-h)*tm=60ns 效率 e=tc/ta=83.3%