Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
缓存一致性是否始终可以防止读取过时的值?失效队列允许吗?
在 MESI 协议中 仅当将缓存行保持在独占 修改状态时才写入缓存行 要获取独占状态 您可以向持有同一高速缓存行的所有核心发送无效请求 但是是否存在一种微架构 其中某些内核会在实际使缓存线无效之前做出确认响应 如果确实如此 那不是违反了缓存
caching
cpuarchitecture
cpucache
memorybarriers
MESI
我们如何计算这段代码片段中缓存的读取/未命中次数?
鉴于我目前正在学习的这本教科书中的代码片段 Randal E Bryant David R O Hallaron 计算机系统 程序员的视角 第 3 版 2016 年 Pearson 全球版 因此本书的练习可能是错误的 for i 31 i
caching
computerscience
cpuarchitecture
cpucache
使用 NEON 优化 Cortex-A8 颜色转换
我目前正在执行颜色转换例程 以便从 YUY2 转换为 NV12 我有一个相当快的函数 但没有我预期的那么快 主要是由于缓存未命中 void convert hd uint8 t orig uint8 t result uint32 t wi
Assembly
arm
neon
cpucache
cortexa8
软件预取手动指令合理的场景
我读过有关 x86 和 x86 64 Intel 的内容gcc提供特殊的预取指令 include
c
gcc
cpucache
Prefetch
CPU缓存:两个地址之间的距离是否需要小于8字节才能具有缓存优势?
这似乎是一个奇怪的问题 假设缓存行的大小为 64 字节 此外 假设 L1 L2 L3 具有相同的缓存行大小 this https stackoverflow com a 15333156 8385554帖子说英特尔酷睿 i7 就是这种情况
caching
cpuarchitecture
cpucache
如何避免动态图中的“堆指针意大利面条”?
一般问题 假设您正在编写一个由图组成的系统 以及可以根据相邻节点的配置激活的图重写规则 也就是说 您有一个在运行时不可预测地增长 收缩的动态图 如果你天真地使用malloc 新节点将被分配在内存中的随机位置 经过足够的时间 你的堆将变成一个
c
Algorithm
datastructures
Graph
cpucache
链表、数组和硬件内存缓存
虽然之前有人问过关于链表与数组的问题 但答案大多归结为我们大多数人在某些时候可能已经学到的东西 列表擅长插入和删除 数组擅长随机访问 现在 像 Bjarne Stroustrup 这样受人尊敬的人已经argued https www you
Arrays
performance
LinkedList
languageagnostic
cpucache
现代缓存中的方式预测
我们知道 就缓存命中时间而言 直接映射缓存优于集合关联缓存 因为不涉及特定标签的搜索 另一方面 组关联缓存通常比直接映射缓存具有更好的命中率 我读到 现代处理器试图通过使用一种称为路径预测的技术来结合两者的优点 他们预测给定集合中最有可能发
caching
cpuarchitecture
processor
cpucache
microarchitecture
CPU缓存性能。存储未命中与加载未命中
我使用 perf 作为基本事件计数器 我正在开发一个遭受数据缓存存储未命中的程序 其中比例高达80 我知道缓存原则上是如何工作的 它会在各种未命中情况下从内存加载 并在需要时从缓存中删除数据 我不明白的是 存储未命中和加载未命中之间有什么区
performance
caching
cpucache
perf
CPU寄存器和CPU缓存有什么不同吗? [关闭]
Closed 这个问题是无关 help closed questions 目前不接受答案 CPU寄存器和CPU缓存有什么不同吗 是的 CPU寄存器只是少量的数据存储 方便CPU的一些操作 CPU缓存 它是一种高速易失性存储器 尺寸较大 有助
cpuregisters
cpucache
计算 Amd Zen 2 处理器上的 L3 缓存访问事件
我试图找出与 perf stat 命令一起使用的事件来计算 AMD Zen 2 处理器上的 L3 缓存访问次数 根据 PPR http developer amd com wordpress media 2017 11 54945 PPR
Linux
x86
cpucache
perf
amdprocessor
查看x86架构中的cpu缓存内容
如何查看或转储基于 x86 的架构的 cpu 缓存内容 每次进行缓存刷新时 我如何才能看到刷新了什么 在哪里 你不能 真的 CPU 缓存被设计为对于 CPU 上运行的代码是透明的 它具有加快代码执行速度的效果 但 CPU 管理有关缓存的所有
caching
x86
CPU
cpuarchitecture
cpucache
超低延迟硬实时多线程 x86 代码的意外周期性行为
我正在具有 RT 优先级的专用 CPU 上循环运行代码以进行多次迭代 并希望长时间观察其行为 我发现代码有一个非常奇怪的周期性行为 简而言之 这就是代码的作用 Arraythread while 1 if flag Multiply mat
Linux
Multithreading
profiling
embeddedlinux
cpucache
可以直接使用程序集访问缓存吗?
就效率而言 缓存是一个核心问题 我知道缓存通常会自动发生 但是 我想自己控制缓存的使用 因为我认为我可以比一些不知道确切程序的启发式方法做得更好 因此 我需要汇编指令来直接移入或移出高速缓存单元 like movL1 address con
performance
Assembly
caching
cpuarchitecture
cpucache
Skylake 中干净缓存行的写回?
我观察到 Skylake SP 在真实硬件上对干净的缓存行进行写回 Leeor 对这篇文章的回答对于 Intel Core i3 i7 数据从缓存集中逐出后的去向 https stackoverflow com questions 1941
x86
intel
cpuarchitecture
cpucache
现代 x86 CPU 使用什么缓存一致性解决方案?
我对缓存一致性系统在现代多核 CPU 中的功能有些困惑 我已经看到基于侦听的协议 例如基于 MESIF MOESI 侦听的协议 已在 Intel 和 AMD 处理器中使用 另一方面 基于目录的协议对于多核来说似乎更加高效 因为它们不广播而是
x86
computerscience
cpuarchitecture
cpucache
MESI
在Linux中测量C程序缓存命中/未命中和CPU时间的最简单工具?
我正在用 C 编写一个小程序 我想测量它的性能 我想看看它在处理器中运行了多少时间以及它进行了多少次缓存命中 未命中 有关上下文切换和内存使用情况的信息也很好 该程序的执行时间不到一秒钟 我喜欢 proc pid stat 的信息 但我不知
performance
cpucache
measurement
contextswitch
memcachestats
计算三级缓存的实际/有效CPI
a 给定一个具有两级高速缓存 L1 和 L2 的内存系统 以下是规格 L1缓存命中时间 2个时钟周期 一级缓存命中率 92 L2 缓存的未命中惩罚 L2 的命中时间 8 个时钟周期 二级缓存命中率 86 主存丢失惩罚 37 个时钟周期 暂时
caching
cpuarchitecture
cpucache
在 Linux 上以编程方式获取准确的 CPU 缓存层次结构信息
我试图获得 Linux 上当前 CPU 的数据缓存层次结构的准确描述 不仅是各个 L1 L2 L3 可能还有 L4 数据缓存的大小 还包括它们在不同系统之间分割或共享的方式核心 例如 在我的 CPU AMD Ryzen Threadripp
c
Linux
cpuarchitecture
cpucache
为什么指令高速缓存对齐可以提高组相联高速缓存实现的性能?
我有一个关于指令缓存对齐的问题 我听说 对于微优化 对齐循环使其适合缓存行可以稍微提高性能 我不明白为什么那会有什么作用 我了解缓存命中的概念及其对计算速度的重要性 但似乎在组关联缓存中 相邻的代码块不会映射到同一个缓存组 因此 如果循环跨
cpuarchitecture
memoryalignment
cpucache
microoptimization
1
2
3
4
»