Powered By

Free XML Skins for Blogger

Powered by Blogger

Monday, August 25, 2008

Industry Standard Architecture (ISA) Bus

Industry Standard Architecture (ISA) Bus

The most common bus in the PC world, ISA stands for Industry Standard Architecture, and unlike many uses of the word "standard", in this case it actually fits. The ISA bus is still a mainstay in even the newest computers, despite the fact that it is largely unchanged since it was expanded to 16 bits in 1984! The ISA bus eventually became a bottleneck to performance and was augmented with additional high-speed buses, but ISA persists because of the truly enormous base of existing peripherals using the standard. Also, there are still many devices for which the ISA's speed is more than sufficient, and will be for some time to come (standard modems being an example).

(As a side note, after 17 years it appears that ISA may finally be going the way of the dodo. Market leaders Intel and Microsoft want to move the industry away from the use of the ISA bus in new machines. My personal prediction is that they will succeed in this effort, but that it will take at least five years to do it fully. There are few standards in the PC world as pervasive as ISA, and the hundreds of millions of existing ISA cards will ensure that ISA sticks around for some time.)

ISA is a type of bus used in PCs for adding expansion cards. For example, an ISA slot may be used to add a video card, a network card, or an extra serial port. The original 8-bit version of PCI uses a 62 pin connection and supports clock speeds of 8 and 33 MHz. 16-bit PCI uses 98 pins and supports the same clock speeds.

The original 8-bit version of ISA was introduced in 1981 but the technology did not become widely used until 1984, when the 16-bit version was released. Two competing technologies -- MCA and VLB -- were also used by some manufacturers, but ISA remained the most common expansion bus for most of the 1980s and 1990s. However, by the end of the twentieth century, ISA ports were beginning to be replaced by faster PCI and AGP slots. Today, most computers only support PCI and AGP expansion cards.

The choices made in defining the main characteristics of the ISA bus--its width and speed--can be seen by looking at the processors with which it was paired on early machines. The original ISA bus on the IBM PC was 8 bits wide, reflecting the 8 bit data width of the Intel 8088 processor's system bus, and ran at 4.77 MHz, again, the speed of the first 8088s. In 1984 the IBM AT was introduced using the Intel 80286; at this time the bus was doubled to 16 bits (the 80286's data bus width) and increased to 8 MHz (the maximum speed of the original AT, which came in 6 MHz and 8 MHz versions).

Later, the AT processors of course got faster, and eventually data buses got wider, but by this time the desire for compatibility with existing devices led manufacturers to resist change to the standard, and it has remained pretty much identical since that time. The ISA bus provides reasonable throughput for low-bandwidth devices and virtually assures compatibility with almost every PC on the market.

Many expansion cards, even modern ones, are still only 8-bit cards (you can tell by looking at the edge connector on the card; 8-bit cards use only the first part of the ISA slot, while 16-bit cards use both parts). Generally, these are cards for which the lower performance of the ISA bus is not a concern. However, access to IRQs 9 through 15 is provided through wires in the 16-bit portion of the bus slots. This is why most modems, for example, cannot be set to the higher-number IRQs. IRQs cannot be shared among ISA devices.


Industry Standard Architecture (in practice almost always shortened to ISA) was a computer bus standard for IBM compatible computers.

History

ISA originated as an 8-bit system in the IBM PC in 1981, and was extended in 1983 as the XT bus architecture. The newer 16-bit standard, the IBM AT bus, was introduced in 1984. In 1988, the Gang of Nine IBM PC compatible manufacturers put forth the 32-bit EISA standard and in the process retroactively renamed the AT bus to be "ISA" to avoid infringing IBM's trademark on its PC/AT computer.

Designed to connect peripheral cards to the motherboard, ISA allows for bus mastering although only the first 16 MiB of main memory is available for direct access. The 8-bit bus ran at 4.77 MHz, while the 16-bit bus operated at 6 or 8 MHz. IBM RT/PC also used the 16-bit bus. It was also available on some non-IBM compatible machines such as the short-lived AT&T Hobbit and later PowerPC based BeBox.

In 1987, IBM moved to replace the AT bus with their proprietary Micro Channel Architecture (MCA) in an effort to regain control of the PC architecture, and the PC market. The system was far more advanced than the AT bus, and computer manufacturers responded with the Extended Industry Standard Architecture (EISA) and later, the VESA Local Bus (VLB). In fact, VLB used some parts originally intended for MCA due to the fact that component manufacturers already had the ability to manufacture it. Both were compatible expansions of the AT bus.

Users of ISA-based machines had to know special information about the hardware they were adding to the system. While a handful of devices were essentially "plug-n-play," this was rare. Users frequently had to configure several parameters when adding a new device, such as the IRQ line, I/O address, or DMA channel. MCA had done away with this complication, and PCI actually incorporated many of the ideas first explored with MCA (though it was more directly descended from EISA).

This trouble with configuration eventually led to the creation of ISA PnP, a plug-n-play system that used a combination of modifications to hardware, the system BIOS, and operating system software to automatically manage the nitty-gritty details. In reality, ISA PnP turned out to be a major headache much of the time, and didn't become well-supported until the architecture was in its final days. This was a major contributor to the use of the phrase "plug-n-pray."

PCI slots were the first physically-incompatible expansion ports to directly squeeze ISA off of the motherboard. At first, motherboards were largely ISA, including a few PCI slots. By the mid-1990s, the two slot types were roughly balanced, and ISA slots soon were in the minority of consumer systems. Microsoft's PC 97 specification recommended that ISA slots be removed entirely, though the system architecture still required ISA to be present in some vestigial way internally to handle the floppy drive, serial ports, etc. ISA slots remained for a few more years, and it was even possible to see systems with an Accelerated Graphics Port (AGP) sitting near the central processing unit, an array of PCI slots, and one or two ISA slots near the end.

It is also notable that PCI slots are "rotated" compared to their ISA counterparts—PCI cards were essentially inserted "upside-down," allowing ISA and PCI connectors to squeeze together on the motherboard. Only one of the two connectors can be used in each slot at a time, but this allowed for greater flexibility.

8-bit ISA (XT bus architecture)

The XT bus architecture is an eight-bit ISA bus used by Intel 8086 and Intel 8088 systems in the IBM PC and IBM PC XT in the 1980s.

An 8-bit ISA (XT-bus) mouse adapter

An 8-bit ISA (XT-bus) mouse adapter

The XT bus has four DMA channels, of which three are brought out to the expansion slots. Of these three, two are normally allocated to machine functions:

DMA channel Expansion Standard function
0 No Dynamic RAM refresh
1 Yes Add-on cards
2 Yes Floppy disk controller
3 Yes Hard disk controller

The XT bus architecture has single Intel 8259 PIC and eight interrupt lines.

16-bit ISA (AT bus architecture)

The AT bus architecture is an 16-bit version of the ISA bus first in the IBM PC/AT.

Technical data

8 bit ISA or XT bus architecture

XT_Bus_pins.png
Bus width 8-bit
Compatible with 8 bit ISA
Pins 62
Vcc +5 V, -5 V, +12 V, -12 V
Clock 4.7727266 MHz

16 bit ISA

ISA_Bus_pins.png
Bus width 16-bit
Compatible with 8 bit ISA, 16 bit ISA
Pins 98
Vcc +5 V, -5 V, +12 V, -12 V
Clock 8.333333 MHz
Capacity
3,97 MiB/s (pio)
2,65 MiB/s (dma)

Note: The ISA bus speed is actually synchronous with the CPU clock speed, resulting in many differing clock speeds, due to the many different speed machines produced by the many 'IBM clone' manufacturers. This led to problems by the late 1980s, where certain ISA cards would suffer compatibility problems and malfunctions when fitted to machines with bus speeds as high as 16MHz. This problem was solved with later, highly integrated chipsets that (generally) standardized the 16-bit ISA bus to 8MHz; this was achieved by under-clocking the CPU to 8MHz only during ISA bus accesses.

Current use

Apart from specialized industrial use, ISA is all but gone today. Even where present, system manufacturers often shield customers from the term "ISA bus", referring to it instead as the "legacy bus" (see legacy system). The PC/104 bus, used in industrial and embedded applications, is a derivative of the ISA bus, utilizing the same signal lines with different connectors. The LPC bus has replaced the ISA bus as the connection to the legacy I/O devices on recent motherboards; while physically quite different, LPC looks just like ISA to software, so that the peculiarities of ISA such as the 16 MiB DMA limit are likely to stick around for a while.

Starting with Windows Vista, Microsoft is phasing out support for ISA cards in Windows. Vista still supports ISA-PnP for the time being, although it's not enabled by default.

Standardization

IEEE started a standardization of the ISA bus in 1985, called the P996 specification. However, despite even books being published on the P996 specification, it has never officially gotten past draft status.

No comments: