c - 从 Dcache (L1) 读取值与全局变量

标签 c gcc mips mips64

部分Dcache (L1)可用作cavium octeon架构(基于mips64)上的本地内存。 我想知道哪个更快;从该内存(Dcache)读取值还是从普通全局变量(.data)读取值?

最佳答案

CPU制造商之所以通过在CPU中添加不同的缓存来使设计和成本变得复杂,是为了减少内存读取延迟。从 L1 缓存访问数据比从 RAM 访问数据要快得多。所以答案是从 L1 数据缓存读取值要快得多(我没有确切的数字,这取决于内存的类型和延迟属性以及 CPU 的速度,但大致上我们是谈论 L1 可能不到 10 个时钟周期与从 DRAM 访问数据超过 100 个时钟周期(缓存未命中)之间的差异 - 实际上是非常粗略的数字)。

关于c - 从 Dcache (L1) 读取值与全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17486031/

相关文章:

C语言三角形邻接

c++ - gcc 的非空终止字符串编译器选项

mips - MIPS 代码集之间有什么区别?

gcc - Keil vs GCC for ARM7?

algorithm - 仅通过加法计算指数

assembly - 使用 mips 汇编语言计算整数中的 1(没有任何控制指令流)

c - 用 C 语言处理不同资源的游戏状态

c - malloc 和 BSS 之间有任何限制或位置差异吗?

c - 在控制台应用程序中显示像素值的二维数组

assembly - GNU 汇编器 .long 声明归零