The introduction of IBM’s Micro-Channel Architecture (MCA) was a redesign of the entire bus architecture. Although IBM developed the original AT architecture, which later became ISA, many companies produced machines that followed this standard. The introduction of MCA meant that IBM could produce machines to which it alone had the patent rights.
One of the most obvious differences is the smaller slots required for MCA cards. ISA cards are 4.75 x 13.5 inches, compared with the 3.5 x 11.5-inch MCA cards. As a result, the same number of cards can fit into a smaller area. The drawback was that ISA cards could not fit into MCA slots, and MCA cards could not fit into ISA slots. Although this might seem as though IBM had decided to cut its own throat, the changes they made in creating MCA made it very appealing.
Part of the decrease in size was a result of surface mount components, or surface mount technology (SMT). Previously, cards used “through-hole” mounting, in which holes were drilled through the system board (hence the name). Chips were mounted in these holes or into holders that were mounted in the holes. Surface mount does not use this and as a result, looks “flattened” by comparison. This saves not only space but also time and money, as SMT cards are easier to produce. In addition, the spacing between the pins on the card (0.050″) corresponds to the spacing on the chips, which makes designing the boards much easier.
Micro-Channel also increases speed because there is a ground on every fourth pin, which reduces interference, and as a result, the MCA-Bus can operate at ten times the speed of non-MCA machines and still comply with FCC regulations in terms of radio frequency interference.
Another major improvement was the expansion of the data bus to 32 bits. This meant that machines were no longer limited to 16 megabytes of memory, but could now access 4 gigabytes.
One key change in the MCA architecture was the concept of hardware-mediated bus arbitration. With ISA machines, devices could share the bus, and the OS was required to arbitrate who got a turn. With MCA, that arbitration is done at the hardware level, freeing the OS to work on other things. This also enables multiple processors to use the bus. To implement this, the bus has several new lines. Four lines determine the arbitration bus priority level, which represents the 16 different priority levels that a device could have. Who gets the bus depends on the priority.
From the users perspective, the installation of MCA cards is much easier than that of ISA cards due to the introduction of the Programmable Option Select, or POS. With POS, the entire hardware configuration is stored in the CMOS. When new cards are added, you are required to run the machines reference disk. In addition, each card comes with an options disk that contains configuration information for the card. With the combination of reference disk and options disk, conflicts are all but eliminated.
Part of the MCA spec is that each card has its own unique identifying number encoded into the firmware. When the system boots, the settings in the CMOS are compared to the cards that are found on the bus. If one has been added or removed, the system requires you to boot using the reference disk to ensure that things are set up correctly.
As I mentioned, on each options disk is the necessary configuration information. This information is contained within the Adapter Description File (ADF). The ADF contains all the necessary information for your system to recognize the expansion card. Because it is only a few kilobytes big, many ADF files can be stored on a floppy. This is useful in situations like those we had in tech support. There were several MCA machines in the department with dozens of expansion cards, each with its own ADF file. Rather than having copies of each disk, the analysts who supported MCA machines (myself included) each had a single disk with all the ADF files. (Eventually that, too, became burdensome, so we copied the ADF files into a central directory where we could copy them as needed.) Any time we needed to add a new card to our machines for testing, we didn’t need to worry about the ADF files because they were all in one place.
Because each device has its own identification number and this number is stored in the ADF, the reference diskette can find the appropriate number with no problem. All ADF files have names such as @BFDF.ADF, so it isn’t obvious what kind of card the ADF file is for just by looking at the name. However, because the ADF files are simply text files, you can easily figure out which file is which by looking at the contents.
Unlike ISA machines, the MCA architecture enables interrupt sharing. Because many expansion boards are limited to a small range of interrupts, it is often difficult, if not impossible, to configure every combination on your system. Interrupt sharing is possible on MCA machines because they use something called level-triggered interrupts, or level-sensitive interrupts.
With edge-triggered interrupts, or edge-sensitive interrupts, (the standard on ISA buses), an interrupt is generated and then is dropped. This sets a flag in the PIC, which figures out which device generated the interrupt and services it. If interrupts were shared with edge-triggered interrupts, any interrupt that arrived between the time the first interrupt is generated and serviced would be lost because the PIC has no means of knowing that a second interrupt occurred. All the PIC sees is that an interrupt occurred. Figure 0-2 shows how each of these elements relate to each other in time.
With level-triggered interrupts, when an interrupt is generated, it is held high until the PIC forces it low after the interrupt has been serviced. If another device were on the same interrupt, the PIC would try to pull down the interrupt line; however, the second device would keep it high. The PIC would then see that it was high and would be able to service the second device.
Despite the many obvious advantages of the MCA, there are a few drawbacks. One primary drawback is the interchangeability of expansion cards between architectures. MCA cards can only fit in MCA machines. However, it is possible to use an ISA card in an EISA machine, and EISA machines is what I will talk about next.