The CPU also operates as a pipeline, and while one unit is in use in an execution unit, you may be able to schedule an operation in the next cycle. If you only have floating point multiplications then you may only use the single FPU MUL (multiply) unit. If you only have integer additions then you will be able to use 3 of the core execution units, as the CPU has 3 INT ALU units.
You can see we have an initial instruction decoder frontend, which for complex and diverse instruction streams might struggle to keep the rest of the pipeline full. CPU usage is a measure of how much resource the CPU has available, but there are many different types of instruction that can be processed and they all have different processing and memory requirements.Ī task that is memory intensive may cause the CPU to stall while it fetches data from memory and so reduce the effective instruction throughput while still having the CPU 'in use'.Īlso there are many different parts of the CPU that may be saturated differently.