| • Science | • People | • Locations | • Timeline |
The processor's data structure support allowed modern operating systems to be implemented on it using far less program code than ordinary CPUs—the 432 would instead do much of the work internally in hardware. However, the design was extremely complex compared to the mainstream microprocessors of the era, so much so that Intel's engineers weren't able to translate the design into an efficient implementation using the semiconductor technology of its day. The resulting CPU was very slow and expensive, and so Intel's plans to replace the x86 architecture with the iAPX 432 ended miserably.
The abbreviation iAPX prefixing the model name reportedly stands for intel Advanced Processor architecture, the X coming from the greek letter Chi.
The 432 project started in 1975 as the 8800, so named as a follow-on to the existing 8008 and 8080 CPUs. The design was intended to be purely 32-bit from the outset, and be the backbone of Intel's processor offerings in the 1980s. As such it was to be considerably more powerful and complex than their existing "simple" offerings. However the design was well beyond the capabilities of the existing process technology of the era, and had to be split into several individual chips.
The core of the design was the two-chip General Data Processor (GDP) which was the main processor. The GDP was split in two, one chip (the 43201) handling the fetching and decoding of the instructions, the other (the 43202) executing them. Most systems would also include the 43203 Interface Processor (IP) which operated as a channel controller for I/O. Together the three-chip system used about 250,000 logic gateA logic gate is an arrangement of electronically-controlled switches used to calculate operations in Boolean algebra. Logic gates can also be constructed from relays, diodes, fluidics and optical elements. Nikola Tesla first filed the patents on an electrs, making it one of the largest designs of its era; the contemporary Motorola 68000The Motorola 68000 is a CISC microprocessor, the first member of a successful family of microprocessors from Motorola, which were all mostly software compatible. The entire series was often referred to as the m68k or simply 68k History Originally, the MC6 contained about 68,000 for instance, about 1/3 of that for its microcode.
In 1983 Intel released two additional integrated circuits for the iAPX 432 Interconnect Architecture, the 43204 Bus Interface Unit (BIU) and 43205 Memory Control Unit (MCU). These chips allowed for nearly glueless multiprocessor systems with up to 63 nodes.
Several design features of the iAPX 432 conspired to make it much slower than it could have been. The two-chip implementation of the GDP limited it to the speed of the motherboard's electrical wiring, although this is a minor issue. The lack of reasonable caches and registers was considerably more serious. The instruction set also hindered performance by using bit-aligned variable-length instructions, as opposed to word-aligned fixed-length instructions use in the majority of designs, making instruction decoding complex and slow. In addition the BIU was designed to support fault-tolerant systems, and in doing so added considerable overhead to the bus, with up to 40% of the bus time in wait stateA wait state is a delay experienced by a computer processor when accessing external memory or another device that is slow to respond. As of 2004, computer microprocessors run at very high speeds, while memory technology does not seem to be able to catch us.
Post-project research suggested that the biggest problem was in the compilerA compiler is a computer program that translates a computer program written in one computer language (called the source language into an equivalent program written in another computer language (called the output or the target language . Introduction and h, which used high-cost "general" instructions in every case, instead of high-performance simpler ones where it would have made sense. For instance the iAPX 432 included a very expensive inter-module procedure call instruction, which the compiler used for all calls. However this call was also very expensive, and the much faster branch and link instructions were ignored. Another very slow call was enter_environment, which set up the memory protection. The compiler ran this for every single variable in the system, even though the vast majority were running inside an existing environment and didn't have to be checked. To make matters worse it always passed data to and from procedures by value rather than by reference, requiring huge memory copies in many cases.