Processor supplementary capability
A processor supplementary capability is a feature that has been added to an existing central processing unit design after the initial introduction of that design to the marketplace.
A supplementary capability increases the usefulness of the processor design, allowing it to compete more favorably with competitors and giving consumers a reason to upgrade, while retaining backwards compatibility with the original design.
The CPU supplementary instruction capability does not as a rule apply to 8 or 16 bit CPUs, as many of these CPUs are used mostly as microcontrollers. On modern 32 and 64 bit CPUs the processor supplementary capability does not extend to Floating Point Units (FPUs) or Memory Management Units as these are considered to be fundamental core functionalities. Extensions to the core functionalities of the MMU and FPU may be considered CPU extensions however.
Historical reasoning
The supplementary instructions feature has always been assumed to mean fixed sets of instructions that are not obligatory across all CPUs in a CPU family. Supplementary instructions will simply not be found on all processors within that family. A programmer who wishes to use a supplementary feature of a CPU is faced with a couple of choices.Supplemental instruction programming options
- The operating system and systems programmer may choose to design the systems software so that it mandatorily uses that feature and therefore can only be run on the more recent processors that have that feature.
- On the other hand, the system programmer may write or use existing software libraries to determine whether the processor it is running on has a particular feature.
- In other cases, an operating system may mimic the new features for older processors, though often with reduced performance.
CPU families affected
Some popular processor architectures such as x86, 68000, Power ISA and MIPS have seen many new capabilities introduced over several generations of design.Some of these capabilities have then seen widespread adoption by programmers, spurring consumer upgrades and making the previous generations of processors obsolete.