小编Fro*_*ter的帖子

Intel CPU 中的“Sub-NUMA 集群”和“半球和象限模式”有什么区别?

Intel发布的技术概述中,“Sub-NUMA Clustering”和“Hemisphere and Quadrant Modes”分别进行了描述。但它们之间的主要区别尚不清楚。

这个答案中,它说“在象限或半球模式内,与 SNC 完成相同的 LLC 映射,但它公开为一个 numa 域和一个物理内存映射。”

在Intel 64和IA-re架构优化参考手册中,第10章仅描述了“Sub-NUMA Clustering”,没有提及“半球和象限模式”。

本文档中,“半球和象限模式”被归为“基于UMA的聚类”并与SNC冲突。

我是不是可以这样理解:对于CPU端和LLC行为端来说,这两种模式是完全一样的,除了暴露给操作系统的NUMA节点数量不同之外。

x86 caching intel cpu-architecture numa

5
推荐指数
1
解决办法
2264
查看次数

为什么需要取消层压?

“Intel CPU 中的 MicroFusion”中。丹尼斯·巴赫瓦洛夫 (Denis Bakhvalov)说道:

\n

在此输入图像描述\nSandyBridge 的取消层压在《Intel\xc2\xae 64 和 IA-32 架构优化参考手册》章节 \xe2\x80\x9c2.3.2.4:微操作队列和循环流检测器 (LSD)\xe2\x80 中进行了描述\x9d:

\n
\n

微操作队列为某些指令类型提供解码后功能。特别是,与计算操作和所有存储相结合的加载,当与索引寻址一起使用时,在解码器或解码 ICache 中表示为单个微操作。在微操作队列中,它们通过称为取消分层的过程被分成两个微操作,一个执行加载,另一个执行操作

\n
\n

BeeOnRope在HackerNews 主题中指出:

\n
\n

当指令在解码时融合,但在重命名之前为 \xe2\x80\x9cunlaminate\xe2\x80\x9d 时,它通常具有与根本不融合相似的性能(但它确实节省了 uop 缓存中的空间),因为 RAT 更可能是性能限制。

\n
\n

在这种情况下,为什么在指令解码时使用unlamination而不是使用更多 \xce\xbcops使用更多的 \xce\xbcops ?看起来没有必要吗?

\n

还是因为给定的\xce\xbcop是否应该unlamination在解码阶段是不确定的,需要根据运行时的CPU使用情况动态确定?

\n

cpu x86 intel cpu-architecture

3
推荐指数
1
解决办法
179
查看次数

为什么内核使用前后扩展相同的宏定义?

我发现内核代码中的一些宏定义展开前后是一样的。为什么要这么麻烦地定义这个宏呢?

例如,在/arch/arm64/include/asm/atomic.h中:

#define arch_atomic_add_return_relaxed      arch_atomic_add_return_relaxed
#define arch_atomic_add_return_acquire      arch_atomic_add_return_acquire
#define arch_atomic_add_return_release      arch_atomic_add_return_release
#define arch_atomic_add_return              arch_atomic_add_return
Run Code Online (Sandbox Code Playgroud)

c macros compilation linux-kernel

2
推荐指数
1
解决办法
81
查看次数

标签 统计

cpu-architecture ×2

intel ×2

x86 ×2

c ×1

caching ×1

compilation ×1

cpu ×1

linux-kernel ×1

macros ×1

numa ×1