How does that work? It would seem the opposite to me. If my CPU can handle faster data processing than my RAM's bandwidth then wouldn't the CPU be operating at less than 100% capacity?
The CPU cores stall while waiting for a memory miss (they're in the middle of an instruction).
From the outside, software can't tell the difference between a stall and being busy.
The CPU has other performance counters that can provide more detail:
![PCM_mac_pro.png](/proxy.php?image=https%3A%2F%2Fsoftware.intel.com%2Fsites%2Fdefault%2Ffiles%2FPCM_mac_pro.png&hash=08d7ec5b9d9fb4e0cc18424aeaaaaa41)
A good overview of why classical CPU utilization has outlived its usefulness is at https://software.intel.com/en-us/articles/intel-performance-counter-monitor/
___
ps: One reason that hyperthreading is useful for heavily multi-threaded workloads is that the micro-scheduler in the chip can see that one thread is stalled for memory, and run a thread that has its memory but is waiting for execution units. The OS scheduler cannot do that.
Last edited: