Skip to content

cpu

1. cpu

超线程维护了两套寄存器、中断,共用其他硬件,ALU、L1 等。

die 是晶圆上切下的一个单元。

各种 aarch64 cpu 支持的指令集表 AArch64 SoC features

频率:lscpu 可以查看最大最小频率,perf stat ls 查看运行时频率

2. cache

  • L1 Cache:4 个周期
  • L2 Cache:10 个周期
  • L3 Cache:50 个周期
  • 主存:上百个周期
  • 硬盘:几千万个周期

一个空的缓存称为冷缓存,对冷缓存的不命中称为冷不命中

发生不命中就会执行放置策略

3. 时延

操作时延
L1 cache1 ns
分支惩罚3 ns
L2 cache4 ns
Mutex17 ns
内存100 ns
内存访问 1 MB10 us
SSD20 us
SSD 访问 1 MB1 ms
HDD 访问 1 MB5 ms

绑核

// 当前线程绑到 id 核上 cpu_set_t cpus; CPU_ZERO(&cpus); CPU_SET(id, &cpus); CHECK(sched_setaffinity(0, sizeof(cpu_set_t), &cpus) == 0);