- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我有这个类:
class MyClass{
short a;
short b;
short c;
};
我有这段代码对上面的内容进行计算:
std::vector<MyClass> vec;
//
for(auto x : vec){
sum = vec.a * (3 + vec.b) / vec.c;
}
我知道 CPU 只从 L1 缓存中加载它需要的数据,但是当 L1 缓存从 L2 缓存中检索数据时,它会加载整个“缓存行”(可能包括它不包含的几个字节的数据)不需要)。
L2 缓存从 L3 缓存加载多少数据,L3 缓存从主内存加载多少数据?它是根据页面定义的吗?如果是,这个答案根据不同的 L2/L3 缓存大小?
最佳答案
L2 和 L3 缓存也有比虚拟内存系统页面更小的缓存行。 L2 和 L3 缓存行的大小大于或等于 L1 缓存行的大小,通常是 L1 缓存行大小的两倍。
对于最新的 x86 处理器,所有缓存都使用相同的 64 字节缓存行大小。 (早期的 Pentium 4 处理器有 64 字节的 L1 缓存线和 128 字节的 L2 缓存线。)
IBM 的 POWER7 在 L1、L2 和 L3 中使用 128 字节缓存 block 。 (然而,POWER4 在 L1 和 L2 中使用 128 字节 block ,但在片外 L3 中使用扇区化的 512 字节 block 。扇区化 block 为子 block 提供有效位。对于 L2 和 L3 缓存,扇区化允许单个一致性大小是在整个系统中使用。)
在末级缓存中使用更大的缓存行大小可减少标记开销并促进处理器和主内存之间的长突发访问(更长的突发可以提供更多带宽并促进更广泛的纠错和 DRAM 芯片冗余),同时允许其他级别缓存和缓存一致性以使用更小的 block ,从而减少带宽使用和容量浪费。 (大的末级缓存 block 也提供预取效果,由于末级缓存的容量相对较高,缓存污染问题不那么严重。但是,硬件预取可以达到同样的效果,缓存容量的浪费较小。) (例如,典型的 L1 缓存),驱逐发生得更频繁,因此可以利用空间局部性的时间跨度更小(即,更有可能在缓存行被驱逐之前仅使用一个较小块中的数据)。较大的缓存行也会减少可用 block 的数量,从某种意义上说会降低缓存的容量;这种容量减少对于小型缓存来说尤其成问题。
关于performance - L2 和 L3 缓存中加载了多少数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23024574/
我正在开发一个需要能够平均三个数字的 Facebook 应用程序。但是,它总是返回 0 作为答案。这是我的代码: $y = 100; $n = 250; $m = 300; $number = ($y
我只是无法弄清楚这一点,也找不到任何对我来说有意义的类似问题。我的问题:我从数据库中提取记录,并在我的网页上以每个面板 12 条的倍数显示它们。因此,我需要知道有多少个面板可以使用 JavaScrip
我是一名优秀的程序员,十分优秀!