如何在 Apple M1 上的 Mac 操作系统中禁用硬件预取器?

问题描述 投票:0回答:1

在基于 Intel 的 Linux(或 macOS)中,我们可以通过使用

wrmsr
修改 0xa14 寄存器来禁用预取。

我读到,在 ARM Cortex-A53 上,

L1PCTL
寄存器的
CPUACTLR_EL1
部分可以设置为 0 以禁用 L1 预取器。

更改

L1PCTL
部分
CPUACTLR_EL1
注册也会在 M1 上工作吗?
如何在 Apple M1 中禁用预取?

macos assembly cpu-architecture apple-m1 arm64
1个回答
0
投票

更改

L1PCTL
部分
CPUACTLR_EL1
注册也会在 M1 上工作吗?

不。 M1 使用 Apple 的 Firestorm 和 Icestorm 内核,而不是 ARM 的 Cortex-A53。他们没有这个寄存器。

如何在 Apple M1 中禁用预取?

Apple 之前发布的来源包含以下定义:

#define ARM64_REG_HID5          s3_0_c15_c5_0
#define ARM64_REG_HID5_DisHwpLd (1<<44)
#define ARM64_REG_HID5_DisHwpSt (1<<45)

这会禁用加载(位 44)和存储(位 45)的 L2 硬件预取。我不知道有什么可以在 L1 级别控制这一点,但在许多未记录的系统寄存器之一中可能仍然有一些位。

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