随笔-处理器微架构-获取处理器参数

intel

x86 芯片有提供CPUID指令,输出结果为16进制的数据,按照特定的格式进行解析即可
直接可用的工具有:cpuid/lscpu/x86info、getconf -a| grep -i cache
参考:
intel CPUID instruction

ARM

工具:cat /proc/cpuinfo、lscpu

原理:

比如解析MIDR-EL1(Main-ID-Register)

processor       : 7
BogoMIPS        : 48.00
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
cpu model       : Rockchip RK3588
CPU implementer : 0x41
CPU architecture: 8 # arm-v8架构
CPU variant     : 0x4 
CPU part        : 0xd0b # Cortex®‑A76 core.
CPU revision    : 0

比如解析ID_AA64PFR0_EL1(PFR:Processor Feature Reg)/ID_AA64PFR1_EL1

比如解析CTR_EL0 Cache Type Register获取缓存相关属性

```plaintext
//ARM_CPU_PART的定义

#define ARM_CPU_PART_AEM_V8             0xD0F
#define ARM_CPU_PART_FOUNDATION         0xD00
#define ARM_CPU_PART_CORTEX_A57         0xD07
#define ARM_CPU_PART_CORTEX_A72         0xD08
#define ARM_CPU_PART_CORTEX_A53         0xD03
#define ARM_CPU_PART_CORTEX_A73         0xD09
#define ARM_CPU_PART_CORTEX_A75         0xD0A
#define ARM_CPU_PART_CORTEX_A35         0xD04
#define ARM_CPU_PART_CORTEX_A55         0xD05
#define ARM_CPU_PART_CORTEX_A76         0xD0B
#define ARM_CPU_PART_NEOVERSE_N1        0xD0C
#define ARM_CPU_PART_CORTEX_A77         0xD0D
#define ARM_CPU_PART_NEOVERSE_V1        0xD40
#define ARM_CPU_PART_CORTEX_A78         0xD41
#define ARM_CPU_PART_CORTEX_A78AE       0xD42
#define ARM_CPU_PART_CORTEX_X1          0xD44
#define ARM_CPU_PART_CORTEX_A510        0xD46
#define ARM_CPU_PART_CORTEX_A710        0xD47
#define ARM_CPU_PART_CORTEX_X2          0xD48
#define ARM_CPU_PART_NEOVERSE_N2        0xD49
#define ARM_CPU_PART_CORTEX_A78C        0xD4B
posted @   LiYanbin  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示