Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
为什么指令高速缓存对齐可以提高组相联高速缓存实现的性能?
我有一个关于指令缓存对齐的问题 我听说 对于微优化 对齐循环使其适合缓存行可以稍微提高性能 我不明白为什么那会有什么作用 我了解缓存命中的概念及其对计算速度的重要性 但似乎在组关联缓存中 相邻的代码块不会映射到同一个缓存组 因此 如果循环跨
cpuarchitecture
memoryalignment
cpucache
microoptimization
写组合缓冲区位于哪里? x86
Write Combine 缓冲区在物理上是如何连接的 我见过说明许多变体的框图 L1 和内存控制器之间 CPU 的存储缓冲区和内存控制器之间 CPU 的 AGU 和 或存储单元之间 它依赖于微架构吗 写缓冲区在不同的处理器中可以有不同的目
x86
intel
cpuarchitecture
cpucache
amdprocessor
包容还是排他? Intel Core IvyBridge 处理器中的 L1、L2 缓存
我有 Intel Core IvyBridge 处理器 Intel R Core TM i7 3770 CPU 3 40GHz L1 32KB L2 256KB L3 8MB 我知道L3是包容性的 是多核共享的 我想了解有关我的系统的以下信
c
cpuarchitecture
processor
cpucache
文件支持的内存映射的 CPU 缓存行为/策略?
有谁知道哪种类型的CPU缓存行为或策略 例如不可缓存的写组合 被分配给内存映射文件支持现代 x86 系统上的区域 有什么方法可以检测是哪种情况 并可能覆盖默认行为吗 Windows 和 Linux 是人们感兴趣的主要操作系统 编者注 这个问
c
x86
operatingsystem
cpuarchitecture
cpucache
intel core i7 处理器使用哪种缓存映射技术?
我了解了不同的缓存映射技术 例如直接映射和完全关联或集关联映射 以及这些技术之间的权衡 维基百科 https en wikipedia org wiki Cache placement policies 但我很好奇现在Intel core
x86
intel
cpuarchitecture
cpucache
amdprocessor
优化 Java 对象以提高 CPU 缓存线效率
我正在写一个库 其中 它将需要运行在广泛的不同平台 Java 实现 常见情况可能是运行 Windows 或 Linux 的 Intel 64 位计算机上的 OpenJDK 或 Oracle Java 实现高性能是首要任务 就我关心对象访问中
Java
performance
Optimization
cpucache
全关联缓存是否比直接映射缓存具有更高的未命中率?
以下是一个面试问题 为什么全关联缓存的未命中率可能高于直接映射缓存 我认为这根本不可能 有人可以分享一些对此的见解吗 你应该假设它们大小相同吗 如果不是 则如果大多数未命中是 容量 未命中 而不是冲突未命中 则较小的全关联高速缓存仍然可能会
caching
cpuarchitecture
cpucache
cpu 缓存行和预取策略
我读了这篇文章http igoro com archive gallery of processor cache effects http igoro com archive gallery of processor cache effec
c
cpuarchitecture
cpucache
clflush 不刷新指令缓存
考虑以下代码段 include
c
Assembly
x86
cpucache
是否有任何此类处理器具有绕过缓存的指令?
是否有任何这样的处理器具有绕过特定数据的缓存的指令 这个问题 https stackoverflow com questions 9544094 c working with the cpu cache还有一个答案表明 SSE4 2 指令确
Assembly
x86
processor
cpucache
instructions
使用 while() 和 sleep() 让程序进入睡眠模式的区别
我创建了一个共享对象并从两个不同的程序访问它并测量时间 DATA 数组是两个进程之间的共享对象 您没有准确描述如何运行不同版本 不同的进程 但假设它们是连续的 您可能会看到 sleep 的影响 当然 这取决于具体的实现和硬件 但很可能会让您
c
Linux
performancetesting
cpucache
MESI协议中的L3$角色是什么
我想了解intel Broadwell中MESI的更多细节 假设一个cpu插槽有6个核心 core 0 到 core 5 他们每个人都有自己的 L1 和 L2 并共享 L3 共享内存中有一个var X x位于cache line 称为 XC
caching
x86
cpuarchitecture
cpucache
MESI
INVD指令有什么用?
The x86 INVD http faydoc tripod com cpu invd htm使缓存层次结构无效without显然 将内容写回内存 我很好奇 这样的指令有什么用 鉴于人们对各个缓存级别中可能存在哪些数据的控制非常少 甚至对
Assembly
x86
cpucache
机器码对齐
我正在尝试了解机器代码对齐的原理 我有一个汇编器实现 可以在运行时生成机器代码 我在每个分支目标上使用 16 字节对齐 但看起来这不是最佳选择 因为我注意到 如果我删除对齐 有时相同的代码会运行得更快 我认为这与缓存线宽度有关 因此某些命令
Optimization
Assembly
cpuarchitecture
cpucache
cpuspeed
写入和读取的持久内存缓存策略
有谁知道尝试使用的任何缺点英特尔傲腾 DC 内存 https itpeernetwork intel com intel optane dc persistent memory operating modes gs pu5agg DCPMM
x86
intel
cpucache
persistentstorage
persistentmemory
在 Skylake 中使用 MSR 正确禁用硬件预取
我正在尝试禁用我的机器上的硬件预取 CPU系列 6 型号 78 型号名称 Intel R Core TM i5 6200U CPU 2 30GHz 我已经检查过 gcc march native Q help target grep Mar
x86
intel
cpucache
Prefetch
MSR
使CPU的缓存失效
当我的程序执行具有获取语义的加载操作 具有释放语义的存储操作或可能是完整栅栏时 它会使 CPU 的缓存无效 我的问题是 缓存的哪一部分实际上失效了 只有保存我使用的获取 释放变量的缓存行 或者整个缓存都失效了 L1 L2 L3 等等 当我使
caching
CPU
cpucache
对于尚未在缓存中的地址,CLFLUSH 如何工作?
我们正在尝试使用 Intel CLFLUSH 指令在用户空间刷新 Linux 中进程的缓存内容 我们创建一个非常简单的 C 程序 首先访问一个大数组 然后调用 CLFLUSH 刷新整个数组的虚拟地址空间 我们测量 CLFLUSH 刷新整个数
c
Linuxkernel
intel
cpuarchitecture
cpucache
通过虚拟地址刷新/无效范围; ARMv8;缓存;
我正在为 32 位模式下运行的 ARMv8 Cortex A53 实现缓存维护功能 当我尝试使用虚拟地址 VA 刷新内存区域时出现问题 DCacheFlushByRange看起来像这样 some init kDCacheL1 0 kDCac
arm
cpucache
ARMv8
直接映射缓存
直接映射缓存由 16 个块组成 主存包含 16K 块 每个块 8 字节 主存地址格式是什么 意思是每个字段的大小 我知道这些字段是 Tag Block Offset 我只是不知道如何获得每个的尺寸 这是作业吗 为了解决这个问题 您需要知道相
caching
cpucache
«
1
2
3
4
»