The overwhelming majority of this information was derived from Micro Channel Architecture: Revolution in Personal Computing, by Pat A. Bowlds, pages 135-137. ISBN 0-442-00433-8
Where did you go, Pat?
The beginning- The IBM 1401
All I/O operations controlled are directly by the CPU. The CPU was also responsible for information transfers to and from memory or I/O devices. Many processing cycles were consumed with I/O management. Throughput often limited by the speed of any I/O device, because the CPU was forced to wait until an I/O operation was completebefore other activity could begin.
I/O Processor Emerges- IBM System/360
In 1964, the I/O Processor appears (as I do also). This
device boosted performance by allowing the CPU to delegate I/O management
to the I/O Processor by using high level commands. The I/O Processor then
managed all the data transfers between I/O and memory.
I/O Devices Use DMA- IBM System/7
In the early 1970s the System/7 permitted I/O devices
to have DMA. These first uses of DMA by other devices other than the CPU
was the foundation of today's busmasters.
Smart I/O- IBM Series/1
The Series/1 introduced the concept of intelligent adapters (Smart I/O). These smart I/O devices interpreted and executed their own commands, which gave them increased independence from the CPU. New software protocols called Control Blocks were used to permit Series/1 adapters to access memory directly (called first-party DMA operation) as well as communicate with the channel controller.
Fall From Grace- IBM AT
This hell-spawn bus continues to bedevil us with all sorts
of bad mojo. The channel controller was replaced by a DMA controller. The
DMA controller could take control of the I/O bus and act as a third party
in data transfers between devices and memory over multiple DMA Channels.
Supreme Being- IBM PS/2 Microchannel
In 1987, IBM blessed the hudled masses yearning for true busmaster capabilities with MICROCHANNEL. Unfortunately, IBM seemed to have wanted to rest after that.
True bus master capabilities were finally achieved with
a hardware mediated arbitration process, method of preemption, and a fairness
algorithm for equitable bus sharing.
Busmasters offload functions from the system master, minimize
interrupts, provide their own processing power, and eliminate third party
DMA transfers. A busmaster goes to the memory or I/O slave (in addition
to other busmasters, of course) and gets the data it's looking for.
Multiple CPU Subsystems
This is interesting for those questing for the "Superserver".
Busmasters can upgrade the processing capability of systems by adding a
new CPU subsystem that serves as a replacement of the system master. The
new CPU subsystem can be given control of the system resources after the
default master has initialized the system. The default master can be made
quiescent, relegated to supporting I/O functions, or operate concurrently
with the new CPU subsystem.
The added CPU(s) can have a completely different software architectures
from that of their host system. Examples are the adapter for the IBM 6152
Academic System based on the RISC MC68881 CPU with 8MB on-board, Prometa
BusMaster WS/88K, based on the RISC 88000 and running UNIX System V, the
YARC Systems Micro 785+, based on the MC68020 at 40MHz and runs FORTRAN,
C, and Pascal, the Xtend Renaissance CPU board,
the IBM PS/2 Wizard adapter, based on
the RISC i860 at 33MHz and running numeric intensive calculations
(like a big math-co!), the rare and (still) costly
P/390, running OS390, the (even rarer)
OS370 (or whatever, MUSIC/SP
I think), and ending up with the darling of the bunch, the AOX/Kingston MCMaster,
based on a 386 or
486 from 25 to 33 MHz and running whatever
OS you want. Because microchannel architecture is SEPARATE
from the CPU architecture of the system, maximum design flexibility is
Micro Channel Architecture came out at approximately the same time as IBM moved to 32-bit processors However, the change to MCA was more than an upgrade in the processor, it is a redesign of the entire bus architecture.
One of the most significant changes was the introduction of smaller expansion slots. Originally AT cards were 4.75 x 13.5 inches, whereas the new MCA cards are 3.5 x 11.5 inches. This allowed the same number of expansion cards to be installed in a smaller area. However, this also means that existing cards were not compatible with the new MCA machines.
A key issue in the miniaturization of the expansions card is the concept of surface mount components or surface mount technology (SMT). Most of the components look 'flattened' in comparison to their non-MCA counterparts.
Earlier architectures used "through-hole" mounting which were holes drilled through the system board (hence the name) and then the chips were mounted into holders which were soldered into these holes. Not only does SMT save space, it also saves time and money since it is easier to produce boards in this fashion versus "through-hole".
Another key enhancement was the spacing of the connectors with SMT. The 0.050 inch spacing of the pins corresponds to the spacing on the expansions cards, making design much easier.
A radical rearrangement of the signals on the Micro Channel bus puts a ground on every fourth pin. This reduces interference so much that MCA machines can operate at 80MHz and still comply with FCC regulations on the amount of interference generated. The speed of MCA machines is also increased because this improved arrangement of signals means a high bandwidth on the bus. Therefore, the Micro Channel is not limited to the 8Mhz bus speed of the AT architecture. An additional advantage is obtained because the ground pins are no more than 1/10 of an inch away from any signal lines. This substantially reduces noise emissions.
Although subsequently implemented on the AT bus, MCA was the first to double the width of the data bus the 32-bit, which allowed anything attached to it to be accessed twice as fast. MCA was also the first to expand the address bus from 24 bits to 32. This increased accessible memory from 16 megabytes to 4 gigabytes.
Perhaps the most significant change from the traditional PC design was its hardware-mediated bus arbitration. With the old AT architecture, devices could share the bus, but it required special software. The hardware-mediate bus arbitration that MCA provides is borrowed from mainframes and allows it to use multiple processors, thus allowing multitasking and parallel processing. The current MCA implementation of hardware-mediations allows up to eight microprocessors and eight devices that all share the single data bus (such as DMA controllers). An added advantage to this hardware arbitration is that the CPU is no longer busy arbitrating bus requests and can devote itself to other tasks.
To implement this arbitration strategy, MCA adds new lines to the bus. One important set is the four lines determining the Arbitration Bus Priority Level. This represents 16 different priority levels that could be assigned to a device that wants to take control of the bus. MCA also added three lines that do that actual work. The Preempt signal tells all the other devices on the bus that the bus is being requested. The Arbitrate/Grant signal is sent by the Central Arbitration Point and begins the actual arbitration. The Burst signal is sent by a device as a "Do Not Disturb" sign to tell the other device that they ought not to even ask for the bus until this transfer is completed. Additionally, each device checks the Arbitration Bus Priority Level lines. If a higher priority level has already been asserted, the device stops its attempt to gain control of the bus.
For the end user the most notable change was the introduction of the Micro Channel's Programmable Option Select. With this, the entire hardware configuration is stored in the CMOS and it almost eliminates the conflicts (such as base address and interrupts) that were common on AT installations. In order to add a news card, the machine's reference disk needs to be booted and the configuration file need to be loaded from the options diskette that comes with the card. This makes installation of new cards substantially easier for the novice user because this installation procedure is the same for each card, no matter the manufacturer.
An added advance in terms of expansion cards is the concept of interrupt sharing. Many expansion board manufacturers allow only a limited range of interrupts which might prevent use of certain cards because of conflicts. Interrupt sharing is possible because the Micro Channel allows level-sensitive interrupts.
With edge-sensitive interrupts, as on the standard AT-bus, an interrupt is generated and then drops. The PIC determines which device the interrupt came from and services it. If interrupts were shared in this scenario, any interrupt coming between the time the first one is generated and serviced would be lost. The PIC would have no means of knowing that a second one occurred.
With level-sensitive interrupts, when an interrupt is generated it is held high until forced low by the PIC when it is serviced. If another device were on the same interrupt, pulling down the interrupt line of the would still leave the line for the second device high. The PIC would then be able to see it and service the device.