随笔-处理器微架构-获取处理器参数
intel
x86 芯片有提供CPUID指令,输出结果为16进制的数据,按照特定的格式进行解析即可
直接可用的工具有:cpuid/lscpu/x86info、getconf -a| grep -i cache
参考:
intel CPUID instruction
ARM
工具:cat /proc/cpuinfo、lscpu
原理:
- https://www.kernel.org/doc/html/latest/arch/arm64/cpu-feature-registers.html
- https://developer.arm.com/documentation/100798/0401/AArch64-System-registers
比如解析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
本文来自博客园,作者:LiYanbin,转载请注明原文链接:https://www.cnblogs.com/stellar-liyanbin/p/18423299