The Trillion Dollar Kludge
One of the most extraordinary announcements of last year’s Microprocessor Forum was that of AMD’s intention to extend the Intel x86 architecture from 32 to 64 bits. The new instruction set architecture, which AMD calls x86-64, will be implemented by their future K8 processor, the heir apparent to their highly successful and widely praised K7 Athlon family. If these plans come to pass it would represent a remarkable new chapter in the history of an architecture that is both widely criticized on technical grounds and commercially successful beyond belief.
A young Intel software designer called John Morse threw the original 16-bit x86 design together in 10 weeks. The design effort was the start of a crash program in 1976 at Intel to introduce a stopgap product to compete with the upcoming 68000 and Z8000 microprocessor designs from Motorola and Zilog. It was meant to compete with these chips only until the hideously complex ‘8800 project’ could be completed. The subject of the 8800 project was an ultra-CISC, 32-bit processor that was eventually productized as the iAPX432. It came to market DOA due to its high cost (the CPU was spread across three separate complex chips) and abysmal performance (from 5 to 40% of that of a 5 MHz 8086).
The architecture John Morse designed was intentionally made conceptually similar to Intel’s 8-bit 8080 microprocessor design to make its adoption more palatable for existing Intel customers. As a result it retained the 8080’s accumulator and special function register based paradigm instead of going to a general-purpose register based scheme, like the architects of the 68000 and Z8000 did. To extend the addressing range of the x86 architecture beyond 64 Kbytes, Morse arranged it so that the contents of special 16-bit registers would be shifted left by 4 bits, then added to the 8080-like 16-bit logical address to generate a 20 bit physical address. Although this scheme is technically called segmentation, it compares to previous segmentation schemes used in mainframes like a Yugo compares to a Mercedes. Some computer architects lament that the x86 may have forever ruined the reputation of segmented address schemes. Engineers have a term for such inelegant half measures taken as quick and dirty solutions to tough problems that deserve to be solved properly. The term is ‘kludge’ (pronounced kloodge).
Despite its late start, Intel managed to deliver the 8086 to market ahead of the 68000 and Z8000. Its early availability, and the existence of a version that supported a low cost 8-bit wide data bus, the 8088, earned it the jackpot of a lifetime design win in the IBM personal computer. So, like another temporary stopgap measure, income tax, the x86 architecture succeeded beyond all expectations. And like income tax, the x86 compatible MPU is too big a revenue source for its beneficiaries to abandon. Considering microprocessors, systems, and software, the x86 architecture will probably generate more than a trillion U.S. dollars worth of sales over its eventual lifetime.
Be the first to discuss this article!