计算机组成原理的缓存

1.这里主要讲计算,Cache的效率:e=(访问Cache的时间/平均访问时间)*100%

比如cpu执行某一个代码时,共访问Cache命中2000次,访问主存50次。已知Cache的存储周期为50ns,主存的主存周期为200ns.

求Cache的命中率:为2000/(2000+50)=0.97

平均访问时间为 :50ns*0.97+200ns*(1-0.97)=54.5ns  (没有命中就是命中主存的概率是1-0.97)

设访问Cache的时间为t,访问主存的时间为4t,访问效率为e (他们的时间之比1:4)

效率:e=(t/(0.97*t+(1-0.97)*4t))*100%=91.7%  (效率是时间之比)

2.Cache--主存地址映射

1.直接映射

就是Cache和主存直接相连,当cpu从Cache中读不出数据时才会从主存中读数据。主存地址里面有三部分,一块叫主存字块标记,也被称t位,一块Cache字块地址,也被称为c位,还有一块叫字块内地址。

2.全相联映射

3.组相联映射

废话不多说,直接做题吧,因为这个全靠我自己理解,老师在哪里讲计算还跟讲文科一样。

比如主存容量为512kB,Cache的容量为4KB,每个字块为16个字,每个字32位。

求Cache地址有多少位 :  2的12次方,所以是12位

可容纳多少块:4KB/4B 为1K字           1k/16 =64块

主存地址也是这样求的

然后让你求主存字块标记,缓存字块地址,字块内地址

其实就是我上面说的,主存字块标记可以用主存地址长度-Cache地址长度   这里是19-12=7位

缓存字块地址:按照容纳多少块来算的,就比如说这里是64块 ,也就是2的6次方 所以是6位。

字块内地址:这里我是按照主存地址长度- t位-c位-字块内地址   也就是19-7-6=6;(这个是按访存地址计算)32位/8=4字节       4*16=64字节          64是2的6次方 所以是6位  (教材又不讲是按照字节还是字)按照答案是这样的。所以题目上应该是每个字块为16个字节。

当然也有别的求法。可以尽管说。

你可能感兴趣的:(缓存)