cpu-cache 相关问题

CPU高速缓存是CPU用来减少平均访问存储器时间的硬件结构。

内存一致性需要缓存一致性吗?

缓存一致性处理存在缓存的情况下单个内存位置的读/写顺序,而内存一致性涉及有/没有缓存的所有位置的访问顺序。

回答 1 投票 0

英特尔文档,原子访问描述没有意义

我想知道这句话的意思,解析。 对适合高速缓存行的高速缓存内存进行未对齐的 16 位、32 位和 64 位访问 我实在看不懂,想了解一下...

回答 1 投票 0

CPU 缓存性能。存储未命中与加载未命中

我使用 perf 作为基本事件计数器。我正在开发一个遭受数据缓存存储未命中的程序。其中比例高达80%。 我知道缓存原则上是如何工作的。它从内存加载...

回答 2 投票 0

为什么英特尔使用 VIPT 缓存而不是 VIVT 或 PIPT?

我不确定,但如果我没记错的话Intel使用了VIPT(virtual index physical tagged)缓存,我想知道这个选择的原因,为什么它比VIVT或PIPT好,有什么优势d.. .

回答 2 投票 0

为什么通过堆数据结构进行线性搜索比遍历树更快?

在下面的代码中,indexOfSlow 在我的测试用例中比 indexOf 慢大约 17 倍,尽管前者比后者做的比较少。 这是为什么? (我的直觉是优越

回答 0 投票 0

英特尔高速缓存分配技术是否允许一组中的 CPU 命中另一组中的高速缓存行?

在MESI协议中,如果一个cacheline需要加载到一个cache中,CPU会下发一个PrRd。根据缓存行是否已经在另一个缓存中,发出 BusRd。而其他缓存将...

回答 1 投票 0

我怎样才能完成我的写函数来模拟所有缓存级别的写请求?

我有一些函数可以处理来自具有这些规范的缓存的读取请求: 缓存有两个级别: 一个缓存块是 16 字节。 每个地址访问 1 个字节的数据。 L1 ...

回答 0 投票 0

防止 CPU 内核使用 LL 缓存

我有以下问题:我有一个低延迟应用程序在核心 0 上运行,一个常规应用程序在核心 1 上运行。我想确保核心 0 应用程序获得尽可能多的缓存,然后......

回答 2 投票 0

C++优化矩阵乘法微内核L1缓存使用

我的任务是实现一个优化的矩阵乘法微内核,它从以下代码片段开始在 C++ 中计算 C = A*B。我有一些反直觉的行为......

回答 0 投票 0

了解Intel Xeon PHi 7210上的矩阵乘法技术

我有以下的工作程序,它的结果是正确的,但是我对一些统计数据感到困惑。设置是这样的。硬件:英特尔Xeon Phi处理器7210软件。乘法...

回答 1 投票 0

在 perf 事件组中只有 2 个 PERF_TYPE_HW_CACHE 事件。

在 perf_event_open 的基础上,我需要同时监控多个 PERF_TYPE_HW_CACHE 的自定义实现。英特尔手册上说,每个线程有4个可编程计数器(或 ...

回答 1 投票 1

C++编译器是否对静态变量的顺序读取进行优化?

当这个变量通过const ref访问时,C++编译器是否会优化函数作用域中同一个静态变量的顺序读取?所以CPU会从它的地址中读出它的值,在 ...

回答 2 投票 1

存储指令是否阻止高速缓存未命中的后续指令?

假设我们有一个具有两个内核(C0和C1)的处理器,以及一个从地址k开始的缓存行,该行最初由C0拥有。如果C1在第k行的8字节插槽上发出存储指令,则将...

回答 1 投票 2

为什么RFO报废后不按顺序中断内存?

我以为我了解如何处理L1D写入未命中,但是仔细思考就使我感到困惑。这是一个汇编语言片段:; rdi包含一些有效的64字节对齐的...

回答 1 投票 2

为什么PREFETCHNTA被“必须是回写存储器类型”限定?

[根据Intel 64-ia-32-架构优化手册(2019年9月)中的“将数据预取到L1数据缓存”,如果“加载来自回写存储器类型”,则PREFETCHNTA指令有效。我的...

回答 1 投票 0

为什么目录状态转换图不处理教科书上的写命中事件

我正在阅读基于目录的缓存一致性协议:《计算机体系结构》一书的基础一种定量方法。以下是...

回答 1 投票 1

您可以使用程序集直接访问缓存吗?

缓存是提高效率的核心。我知道缓存通常会自动发生。但是,我想自己控制缓存的使用,因为我认为我可以做得比...

回答 1 投票 0

现代x86 CPU使用什么高速缓存一致性解决方案?

我对高速缓存一致性系统在现代多核CPU中的功能感到困惑。我已经看到基于侦听的协议,例如基于MESIF / MOESI的侦听协议,已在...

回答 1 投票 1

代码在发布中比在调试中运行慢

我正在尝试测试缓存行一致性规则对性能的影响。测试代码如下:constexpr uint64_t loop = 1000000000; struct no_padding_struct {no_padding_struct():x(0),y(...

回答 1 投票 0

是否总是在查找时触发L2行填充?

这是一个有据可查的事实,对于L1D来说L2是非唯一的,这意味着L2不必包含L1DCache具有的所有行。 L1d是否也错过L2(读取,RFO)是否填充L1d ...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.