Software Compatibility

In the early days of computing, many people wrote their own software, so the exact set of instructions a processor could execute was of little importance. Today, however, people expect to be able to use off-the-shelf software, so the instruction set is paramount. Although from a technical viewpoint there’s nothing magic about the Intel 80×86 architecture, it has long since become the industry standard.

If a third party makes a processor which has different instructions, it won’t be able to run industry standard software, resulting in no sales. So, in the days of 386s and 486s, companies like AMD cloned Intel processors, which meant that they were always about a generation behind. The Cyrix 6×86 and the AMD K5 were competitors to Intel’s Pentium, but they weren’t carbon copies. The K5 has its own native instruction set and translates 80×86 instructions into native ones as they’re loaded, so AMD didn’t have to wait for the Pentium before designing the K5. Much of it was actually designed in parallel – only the translation circuitry was held back. When the K5 did eventually appear, it leap-frogged the Pentium in terms of performance if the clock speeds were equal.

The other way in which processors with different architectures are given a degree of uniformity to the outside world is through standard buses. Since its emergence in 1994 the PCI bus has been one of the most important standards in this respect. PCI defines a collection of signals which enable the processor to communicate with other parts of a PC. It includes the address and data buses, plus a number of control signals. Processors have their own proprietary buses, so a chipset is used to convert from this private bus to the public PCI bus.