PPC 的 x86 PAUSE 指令的等效项

发布于 2024-10-26 05:10:31 字数 75 浏览 5 评论 0原文

是否存在与 x86 PAUSE 指令等效的指令,该指令被放置在繁忙的等待循环中以提高性能,特别是在 SMT 机器上、PowerPC 上?

Does there exist an equivalent of the x86 PAUSE instruction, which is placed within busy waiting loops to improve performance, particularly on SMT machines, on PowerPC?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

妄司 2024-11-02 05:10:31

在 Linux 内核中,我们在 arch/powerpc/include/asm/processor.h 中有这个,

/* Macros for adjusting thread priority (hardware multi-threading) */
#define HMT_very_low()   asm volatile("or 31,31,31   # very low priority")
#define HMT_low()    asm volatile("or 1,1,1      # low priority")
#define HMT_medium_low() asm volatile("or 6,6,6      # medium low priority")
#define HMT_medium()     asm volatile("or 2,2,2      # medium priority")
#define HMT_medium_high() asm volatile("or 5,5,5      # medium high priority")
#define HMT_high()   asm volatile("or 3,3,3      # high priority")

我不熟悉 x86 PAUSE,但听起来“或 31,31,31”就是你想要的。

您在哪种 powerpc 处理器上执行此操作?对于 SMT 必须是 POWER5、6 或 7?

In the Linux kernel we have this in arch/powerpc/include/asm/processor.h

/* Macros for adjusting thread priority (hardware multi-threading) */
#define HMT_very_low()   asm volatile("or 31,31,31   # very low priority")
#define HMT_low()    asm volatile("or 1,1,1      # low priority")
#define HMT_medium_low() asm volatile("or 6,6,6      # medium low priority")
#define HMT_medium()     asm volatile("or 2,2,2      # medium priority")
#define HMT_medium_high() asm volatile("or 5,5,5      # medium high priority")
#define HMT_high()   asm volatile("or 3,3,3      # high priority")

I'm not familiar with x86 PAUSE, but sounds like "or 31,31,31" is what you want.

Which powerpc processor are you doing this on? For SMT it must be POWER5, 6 or 7?

秋叶绚丽 2024-11-02 05:10:31

Cell 内部的 PowerPC 将识别某些 NOP 编码作为调整内核中两个物理线程的相对优先级的指示。 文档列出了这些特殊 NOP 的 cctplcctpmcctph 扩展助记符。

从其他 Google 结果来看,IBM RS64 系列可能具有类似的特殊 NOP 指令,因此该功能可能已经在各种 IBM PowerPC 芯片的“Book IV”中存在相当长一段时间了。

Power ISA 2.06 文档在第 3 章中提供了额外的特殊 NOP 定义以及扩展助记符,例如 yieldmdoiomdoom。它还定义了与 Cell 中的 cctplcctpm 相同的 NOP。

The PowerPC inside of Cell will recognize certain NOP encodings as indication to adjust the relative priority of the two physical threads in the core. The documentation lists the cctpl, cctpm, and cctph extended mnemonics for these special NOPs.

From the look of other Google results, it looks like perhaps the IBM RS64 line had similar special NOP instructions, so this functionality has probably been in "Book IV" of various IBM PowerPC chips for quite some time.

The Power ISA 2.06 document has additional special NOP definitions in chapter 3 with extended mnemonics like yield, mdoio, and mdoom. It also defines the same NOPs as cctpl and cctpm from Cell.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文