有多少数据加载到 L2 和 L3 缓存中?

2023-12-21

如果我有这门课:

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 字节缓存块。 (但是,POWER4 在 L1 和 L2 中使用 128 字节块,但在片外 L3 中使用扇区 512 字节块。扇区块为子块提供有效位。对于 L2 和 L3 缓存,扇区允许单个一致性大小在整个系统中使用。)

在末级高速缓存中使用较大的高速缓存行大小可以减少标签开销,并有利于处理器和主内存之间的长突发访问(较长的突发可以提供更多带宽并有助于更广泛的纠错和 DRAM 芯片冗余),同时允许其他级别的高速缓存和缓存一致性以使用较小的块,从而减少带宽使用和容量浪费。 (大的末级缓存块还可以提供预取效果,由于末级缓存的容量相对较高,因此缓存污染问题不太严重。但是,硬件预取可以达到相同的效果,并且缓存容量的浪费较少。) (例如,典型的一级缓存),驱逐发生得更频繁,因此可以利用空间局部性的时间跨度更小(即,在缓存行被驱逐之前更有可能只使用一个较小块中的数据)。较大的缓存行也会减少可用块的数量,从某种意义上减少缓存的容量;这种容量减少对于小型高速缓存来说尤其成问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有多少数据加载到 L2 和 L3 缓存中? 的相关文章

  • 文件修改时间检查的成本

    对于Linux下包含少量字节的文件 我只需要处理自上次处理以来发生更改的时间 我通过调用 PHP 检查文件是否被更改clearstatcache filemtime 定期 由于整个文件总是很小 因此删除对 filemtime 的调用并通过将
  • 是否可以调整AppFabric缓存服务器来存储更大的对象?

    当我假设将较大的对象图添加到缓存中时 我收到 AppFabric 缓存服务器错误 错误代码 子状态 连接已终止 可能是由于服务器或网络问题或序列化对象大小大于服务器上的 MaxBufferSize 请求的结果未知 我确信这不是网络问题 我能
  • 为 PostgreSQL 查询选择正确的索引

    简化表 CREATE TABLE products product no integer PRIMARY KEY sales integer status varchar 16 category varchar 16 CREATE INDE
  • Rust 编程竞赛中最快的惯用 I/O 例程?

    我的问题已部分得到解答 因此我根据从评论和其他实验中学到的知识对其进行了修改 总之 我想要一个用于编程竞赛的快速 I O 例程 其中使用单个文件解决问题 无需外部包 它应该从一个以空格分隔的标记序列中读取BufRead 标准输入或文件 标记
  • 独立滚动矩阵的行

    我有一个矩阵 准确地说 是 2d numpy ndarray A np array 4 0 0 1 2 3 0 0 5 我想滚动每一行A根据另一个数组中的滚动值独立地 r np array 2 0 1 也就是说 我想这样做 print np
  • mysql表中的数据非常大。即使 select 语句也需要很多时间

    我正在开发一个数据库 它是一个相当大的数据库 有 13 亿行和大约 35 列 这是我检查表状态后得到的结果 Name Table Name Engine InnoDB Version 10 Row format Compact Rows 1
  • gcc 与 clang:符号剥离

    gcc 和 AMD Open64 opencc 都有一个 s选项 剥离符号表和重定位信息 到目前为止我还没能在 Clang LLVM 中找到相同的选项 它存在吗 您可以使用stripbinutils 中的实用程序 实际上 llvm ld 有
  • CPU 周期与总 CPU 时间

    在 Windows 上 GetProcessTimes 和 QueryProcessCycleTime 可用于获取应用程序所有线程的总计 我期望 显然是天真地 找到总周期数和总处理器时间 用户 内核 之间的比例关系 当转换为相同的单位 秒
  • 为什么X86中没有NAND、NOR和XNOR指令?

    它们是您可以在计算机上执行的最简单的 指令 之一 它们是我亲自实施的第一个指令 执行 NOT AND x y 会使执行时间和依赖链长度和代码大小加倍 BMI1 引入了 andnot 这是一个有意义的补充 是一个独特的操作 为什么不是这个问题
  • getItem 与 getItemAtPosition

    有两种方法可以获取列表视图中的选定项目 list getAdapter getItem position list getItemAtPosition position 我的问题是 哪一种是首选的做法 我见过人们同时使用这两种方法 您可以使
  • 为什么在连接两个字符串时 Python 比 C 更快?

    目前我想比较 Python 和 C 用来处理字符串的速度 我认为 C 应该比 Python 提供更好的性能 然而 我得到了完全相反的结果 这是 C 程序 include
  • 为什么 Collections.counter 这么慢?

    我正在尝试解决罗莎琳德的基本问题 即计算给定序列中的核苷酸 并在列表中返回结果 对于那些不熟悉生物信息学的人来说 它只是计算字符串中 4 个不同字符 A C G T 出现的次数 我期望collections Counter是最快的方法 首先
  • 正则表达式库基准

    我最近一直想知道正则表达式实现的性能 并且很难想出很多有用的信息 它很容易对浏览器 javascript 正则表达式性能进行基准测试 网上有很多工具 Chrome 和 Opera 中的 javascript 正则表达式实现几乎摧毁了所有其他
  • 使用 React.forwardRef 与自定义 ref prop 的价值

    我看到React forwardRef从反应文档来看 似乎是将引用传递给子功能组件的认可方式 const FancyButton React forwardRef props ref gt
  • 处理大数据二进制文件

    我正在处理包含原始数据的大型二进制文件 每个大约 2 GB 这些文件具有明确定义的结构 其中每个文件都是一个数组events 每个事件都是一个数组data banks Each event and data bank有一个结构 header
  • React Native:加载图像后应用程序性能不佳

    加载图像似乎没有问题 但是加载完毕后就出现问题了 在我的应用程序中 我在整个游戏中一张一张地加载卡片图像 一旦我加载了 40 张卡片图像 整个应用程序就会变得很慢 它总是发生在第 40 个图像处 当我在第 40 个图像之后继续加载更多卡片图
  • 在 MySQL 数据库中保持 TEXT 字段唯一的最佳方法

    我想让 TEXT 字段的值在我的 MySQL 表中唯一 经过小型研究 我发现由于性能问题 每个人都不鼓励在 TEXT 字段上使用 UNIQUE INDEX 我现在想用的是 1 创建另一个字段来包含 TEXT 值的哈希值 md5 text v
  • 如何优化分割重叠范围?

    我编写的这个 Python 脚本用于将重叠范围拆分为唯一范围 最后一次迭代 https codereview stackexchange com questions 285932 python script to split overlap
  • 比较两个 numpy 数组的最快方法

    我有两个数组 gt gt gt import numpy as np gt gt gt a np array 2 1 3 3 3 gt gt gt b np array 1 2 3 3 3 无论顺序如何 比较这两个数组的元素是否相等的最快方
  • 编写此代码片段的有效方法是什么? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 更有效和 或更短地重写此代码以节省字节并显得不那么冗长的方法 if N 2 0 N 6 N 8 N 10 N 12 N 14 N 16 N

随机推荐