Central Processing Unit
cpu0 at mainbus?
cpu* at mainbus?
Several processor models have additional features that extend their base functionality, such as power and frequency control or thermal monitoring.
The sysctl(3) hw.cpuspeed will return the current operating frequency of the processor (on some processors this value may be an approximation). If possible, speed may be adjusted by altering hw.setperf from 0 to 100, representing percentage of maximum speed. There are several possible implementations for setperf, all transparent to the user. In systems with more than one control capability, they are preferred in the order given.
- Found on Transmeta Crusoe processors, offers frequency scaling with numerous positions. The processor dynamically adjusts frequency in response to load, the setperf value is interpreted as the maximum.
- Enhanced SpeedStep found on Intel Pentium M processors, offers frequency scaling with numerous positions.
- Found on some Intel Pentium 3 and newer mobile chips, it is capable of adjusting frequency between a low and high value. Only enabled on some chipsets.
- Thermal Control Circuit found on Intel Pentium 4 and newer processors, adjusts processor duty cycle in 12.5 percent increments.
- Found on various AMD processors. Currently only supports a limited set of models in the K6, K7, and K8 families.
INSTRUCTION SET EXTENSIONS
The presence of extended instruction sets can be determined by sysctl machdep.
- Supports the fxsave instruction.
- Supports the SSE instruction set.
- Supports the SSE2 instruction set.
- Support the VIA AES encryption instruction set. If this is supported, the
libcryptoEVP AES functions will automatically use this support.
The sysctl(3) hw.sensors.cpu*.temp0 will return the current temperature reported by the processor.
Due to the way in which thermal information is reported on Intel processors, the temperature may be off by exactly +/-15 degrees C.
For multiprocessor kernels with more than one CPU sensor, processors will report identical temperatures since the temperature is taken from the processor running the sensors update.