Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Memory 多级缓存访问时间_Memory_Cpu Architecture_Cpu Cache_Multi Level - Fatal编程技术网

Memory 多级缓存访问时间

Memory 多级缓存访问时间,memory,cpu-architecture,cpu-cache,multi-level,Memory,Cpu Architecture,Cpu Cache,Multi Level,如果有两个缓存L1和L2,其中L1是第一级缓存,L2是较低级别缓存。 假设L1未命中,L2命中。 现在,我们需要将所需的块从L2带到L1,然后从L1访问所需的字节,还是可以直接从L2访问所需的字节 平均访问时间可以表示为:-h1(t1)+(1-h1)(h2)(t1+t2),其中 h1:一级缓存的命中率, t1:L1的访问时间, h2:二级缓存的命中率, t2:L2的访问时间。我们可以直接从L2访问它,但我们也会将它带到L1中,以便下次访问速度更快。那么,为什么我们在L1未命中期间尝试从L2访问时

如果有两个缓存L1和L2,其中L1是第一级缓存,L2是较低级别缓存。 假设L1未命中,L2命中。 现在,我们需要将所需的块从L2带到L1,然后从L1访问所需的字节,还是可以直接从L2访问所需的字节

平均访问时间可以表示为:-h1(t1)+(1-h1)(h2)(t1+t2),其中

h1:一级缓存的命中率, t1:L1的访问时间, h2:二级缓存的命中率,
t2:L2的访问时间。

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

那么,为什么我们在L1未命中期间尝试从L2访问时再次添加时间t1?应该只有t2正确,因为我们可以直接从L2Well访问,这取决于架构。较新的体系结构可以同时访问所有级别的缓存,因此您不必支付时间损失,只需应用t2即可。在较旧的体系结构中,首先检查L1,然后如果L1不存在,则检查L2。因此,你必须为这两项支付时间罚金。我想这不是检查时间。这是读取一个字节所需的时间。你指的是哪种较新的体系结构?我所知道的几乎所有东西都只在L1未命中时访问L2。这有点出乎意料,否则,当从L1运行时,您希望维持比L2允许的更高的BW