Micro Channel architecture

From Free net encyclopedia

Image:MCA IBM XGA-2.jpg Image:MCA NIC IBM 83X9648.jpg Micro Channel architecture (in practice almost always shortened to MCA) was a proprietary 16 or 32-bit parallel computer bus created by IBM in the 1980s for use on their new PS/2 computers.

Contents

History

Micro-Channel architecture was designed by IBM engineer, Chet Heath and first introduced on the PS/2 series of machines in 1987; it slowly spread to IBM's entire computer line. For a time, MCA could be found in the PS/2, RS/6000, AS/400, and even some of the System/370 mainframes. However, most of these systems later were redesigned to incorporate PCI. MCA is no longer used in new designs.

Why the interface was created

Overview of the technology issues of that time

Micro Channel was an attempt to address, once and for all, the problems that had come to plague the PC bus (later known as ISA).

The principal design problems of ISA were

  • A slow bus speed.
  • A limited number of interrupts, fixed in hardware.
  • A limited number of I/O device addresses, also fixed in hardware
  • A lack of bus-master support.
  • Hardwired and complex configuration with no conflict resolution.
  • Poor grounding.
  • Undocumented Bus Interface standards that varied between systems and manufacturers

Most of the problems were not a big issue in the early days of IBM PC computers, but came to the surface as the range of tasks and peripherals, and number of manufacturers for PCs grew.

ISA design issues

Another problem for the IBM designers was that the original ISA bus design was deeply linked to the CPU architecture of the 80x86 chip family, principally the

Cards built for ISA would simply not work in any other machine.

IBM was already investigating the use of RISC processors in desktop machines, and could, in theory, save considerable money if a single, well documented bus could be used across their entire computer lineup.

Marketshare issues

A final problem was that IBM had lost control of the hardware market for PCs. Anyone could create an ISA card and plug it into any ISA bus-equipped computer. It was thought that by creating a new standard, IBM would regain control via the required licencing. As patents can take 3 years or more, only those relating to ISA could be licensed when MCA announced. Patents on important Micro Channel features, such as Plug and Play automatic configuration, were not granted to IBM until after PCI had replaced MCA in the marketplace.

Design features

MCA was primarily a 32-bit bus, but the system also supported a 16-bit mode designed to lower the cost of connectors and logic in Intel-based machines like the IBM PS/2.

The situation was never that simple, however, as both the 32-bit and 16-bit versions initially had a number of additional optional connectors for memory cards which resulted in a huge number of physically incompatible cards for bus attached memory. In time, memory moved to the CPU's local bus, thereby eliminating the problem. On the upside, signal quality was greatly improved as MCA added ground and power pins and arranged the pins to minimize interference, a ground or a supply was thereby located within 3 pins of every signal.

Data transmission features

The basic data rate of MCA was increased from ISA's 8 MHz to 10 MHz. This isn't a large signalling speed increase, but the communications were now driven by the bus controller utilizing burst modes instead of the CPU's individual transfers, so real throughput was greatly increased: up to five times over ISA. Around 40 MB/s, of throughput was observed (the theoretical maximum for MCA was 66 MB/s).

With bus-mastering, each card could talk to another directly. This allowed performance that was independent of the CPU. One drawback of this design was the possible collisions when more than one card would try to busmaster, but MCA included an arbitration feature to correct for these situations, and also allowed a master to use a burst-mode. MCA cards had complete control for up to 12 milliseconds. This was long enough to permit the maximum number of other devices on the bus to buffer inbound data from over-runable devices like tape and communications.

Multiple busmaster support and improved arbitration means that several such devices could coexist and share the system bus. MCA busmaster-capable devices can even use the bus to talk directly to each other at speeds faster than the system CPU, without any other system intervention.

Arbitration enhancement ensures that we have better system throughput, since control is passed more efficiently. Advanced interrupt handling refers to the use of level sensitive interrupts to handle system requests. Rather than a dedicated interrupt line, several lines can be shared to provide more possible interrupts, addressing the ISA-bus interrupt line conflict problems.

All interrupt request signals were "public" on MCA permitting any card on the bus to support an I/O processor for service of I/O device interrupts. ISA had limited all such processing to just the system's CPU. Likewise, bus master request and grant signals were public, such that bus attached devices could monitor latency to control internal buffering for I/O processors. These features were not adopted for PCI, requiring all I/O support to come uniquely from the system board processor.

The final major improvement was POS, the Programmable Option Select, which allowed all setup to take place in software. This feature is taken for granted now, but at the time setup was a huge chore for ISA systems. POS was a simple system that included device IDs in firmware, which the drivers in the computer were supposed to interpret. This software-configuration is known as plug-and-play today.

Why MCA was not widely adopted

Although MCA was a huge technical improvement over ISA, it was not properly introduced and marketed by IBM. Implementation in products was limited mainly to a portion of IBM's PC, Midrange and Mainframe hardware with Apricot, Tandy and Olivetti making MCA machines only as part of their PC ranges and NCR using MCA on their entire computer line from PC's to clustered high-end servers. It was not compatible with ISA bus architecture, so older cards could not be used with it.

This means that if MCA became the sole PC standard, the millons of existing ISA cards would not be portable into MCA machines. Lack of portability was less of a problem when users upgraded machines, as most cards typically stayed with the old system. However, two competing bus standards in the marketplace forced the industry to divide its development resources between ISA and MCA. Unlike ISA, IBM largely left development of MCA cards to third parties and never developed a market by utilizing advanced features of the bus for its MCA cards. Consequently, most MCA cards were simply modified ISA designs with no more function. Further, with ISA and MCA competing, card developers often had to create a unique set of software drivers for each bus. Operating system vendors were then obliged to carry both sets.

MCA cards were then sold only for a comparatively smaller number of MCA machines. As development costs for cards must be recovered through sales, a smaller market made for higher prices. Although, IBM could not require licenses for pending patents, the corporation did not help matters by initially threatening stricter enforcement of patent licensing for the future.

In the early 90's, IBM replaced MCA systems with industry standard PCI systems with support for MCA cards using a MCA/PCI riser solution. This provided a transition path for its MCA customers. The next generation of IBM systems were PCI only. Customers were able to remain with IBM or migrate to other brands for future sales. Little more than a decade later, IBM sold their PC business to Lenovo.

MCA was largely ignored by PC manufacturers, save IBM who produced 15 million machines. MCA disappeard within a few years after the introduction of PCI which provided very similar functionality.

See also

es:Bus MCA fi:MCA fr:Micro Channel Architecture ja:Micro Channel Architecture pl:MCA