2017-07-07 202 views
0

如果有2个高速缓存L1和L2,其中L1是第一级高速缓存,而L2是低级高速缓存。 假设L1有一个失误,L2有一个命中。 现在,我们是否需要将所需的块从L2传送到L1,然后从L1访问所需的字节,或者我们是否可以直接从L2访问所需的字节?多级高速缓存访​​问时间

平均存取时间可被给定为: - H1(T1)+(1-H1)(H2)(T1 + T2),其中

H1:击中L1高速缓存的比率, T1:的存取时间L1, h2:L2缓存的命中率, t2:L2的访问时间。

回答

1

我们可以直接从L2访问它,但是我们也会将它放到L1中,以便下次更快地访问它。

+0

那么为什么我们再次添加时间t1,当我们尝试在L1未命中L2时访问?它应该是只有t2正确,因为我们可以直接从L2 – Zephyr

+0

访问那么,这取决于体系结构。较新的体系结构会同时进入各级缓存,因此您不必支付那段时间的惩罚,而只需应用t2。在较老的体系结构中,首先检查L1,如果不在那里,则检查L2。因此你必须为两者付出时间的惩罚。 – GreatA1exander

+0

t1这里不是我猜测的检查时间。这是读取一个字节所需的时间。 – Zephyr