VESA Local Bus

The VESA Local Bus (usually abbreviated to VL-Bus or VLB) is a short-lived expansion bus introduced during the i486 generation of x86 IBM-compatible personal computers. Created by VESA (Video Electronics Standards Association), the VESA Local Bus worked alongside the then-dominant ISA bus to provide a standardized high-speed conduit intended primarily to accelerate video (graphics) operations. VLB provides a standardized fast path that add-in (video) card makers could tap for greatly accelerated memory-mapped I/O and DMA, while still using the familiar ISA bus to handle basic device duties such as interrupts and port-mapped I/O. Some high-end 386DX motherboards also had a VL-Bus slot.

Historical overview


In the early 1990s, the I/O bandwidth of the prevailing ISA bus, 8.33 MB/s for standard 16 bit 8.33 MHz slots, had become a critical bottleneck to PC video and graphics performance. The need for faster graphics was driven by increased adoption of graphical user interfaces in PC operating systems. While IBM did produce a viable successor to ISA with the Micro Channel Architecture offering a bandwidth of 66 MB/s, it failed in the market because hardware manufacturers did not want to pay steep licensing fees to use it. While an extension of the royalty-free ISA bus in the form of EISA open standard was developed to counter MCA, its bandwidth of 33.32 MB/s was unable to offer enough improvement over ISA to meet the significant increase in bandwidth desired for graphics. It would be superseded by Peripheral Component Interconnect (PCI), starting at speeds of 133 MB/s (32-bit at 33 MHz in the standard configuration)

Thus for a short time, a market opening occurred where video card manufacturers and motherboard chipset makers created their own proprietary implementations of local buses to provide graphics cards direct access to the processor and system memory. This avoided the limitations of the ISA bus while being less costly than a "licensed IBM MCA machine". At the time, the cost to migrate to an MCA architecture machine from an ISA machine was substantial. MCA machines generally did not offer ISA slots, thus a migration to MCA architecture meant that any prior investment in ISA cards was made unusable. Additionally, makers of MCA-compatible cards were subject to IBM's licensing fees, which combined with MCA's greater technical requirements and expense to implement. It did have the effect of making an MCA version of a peripheral card significantly more expensive than its ISA counterpart.

So while these ad-hoc manufacturer-specific solutions were effective, they were not standardized, and there were no provisions for providing interoperability. This drew the attention of the VESA consortium and resulted in a proposal for a voluntary and royalty-free local bus standard in 1992. An additional benefit from this standardization (beyond the primary goal of greater graphics card performance) was that other devices could also be designed to utilize the performance offered from VLB; notably, mass-storage controllers were offered for VLB, providing increased hard-disk performance. VLB bandwidth depended on the CPU's bus speed: It started at 100 MB/s for CPUs with a 25 MHz bus, increased to 133 MB/s at 33 MHz and 160 MB/s at 40 MHz, and reached 200 MB/s at 50 MHz.

Implementation
A "VLB slot" itself is an additional edge connector placed in-line with the traditional ISA or EISA connector, with this extended portion often colored a distinctive brown. The result is a normal ISA or EISA slot being additionally capable of accepting VLB-compatible cards. Traditional ISA cards remain compatible, as they do not have pins past the normal ISA or EISA portion of the slot. The reverse was also true – VLB cards are by necessity quite long in order to reach the VLB connector and were reminiscent of older full-length expansion cards from the earlier IBM XT era. The VLB portion of a slot looks similar to an IBM MCA slot, as indeed it is the same physical 116-pin connector used by MCA cards, rotated by 180 degrees. The IBM MCA standard had not been as popular as IBM expected, and there was an ample surplus of the connector, making it inexpensive and readily available.

Limitations


The VESA Local Bus was designed as a stopgap solution to the problem of the ISA bus's limited bandwidth. As such, one requirement for VLB to gain industry adoption was that it had to be a minimal burden for manufacturers to implement, in terms of board re-design and component costs; otherwise, manufacturers would not have been convinced to change from their own proprietary solutions. As VLB fundamentally ties a card directly to the 486 processor bus with minimal intermediary logic (reducing logic design and component costs), timing and arbitration duties were strongly dependent on the cards and CPU.

This simplicity of VLB unfortunately created several factors that served to limit its useful life substantially:


 * 80486 dependence
 * The VESA Local Bus relies heavily on the Intel 80486 CPU's memory bus design. When the Pentium processor arrived, there were major differences in its bus design, not easily adaptable to a VESA Local Bus implementation.  Few Pentium motherboards with VLB slots were ever made and use VLB-to-PCI bridges such as the OPTi 82C822.  This also meant that moving the bus to a computer with a non-x86 architecture was nearly impossible, within practical economic constraints.


 * Limited number of slots available
 * Most PCs that use VESA Local Bus have only one or two VLB-capable ISA slots out of the total five or six available; thus, four ISA slots generally are just that, ISA-only. This is a result of VESA Local Bus being a direct branch of the 80486 memory bus.  The processor does not have sufficient electrical capacity to correctly drive (signal and power) more than two or three devices at a time directly from this bus.


 * Reliability problems
 * The strict electrical limitations on the bus also reduce any safety margin available, negatively influencing reliability. Glitches between cards are common, as the interaction between individual cards, combinations of cards, motherboard implementation, and even the processor itself are difficult to predict. This is especially prevalent on lower-end motherboards, as the addition of more VLB cards could overwhelm an already marginal implementation. Results can be rather spectacular when often important devices such as hard disk controllers are involved with a bus conflict with a memory-intensive device such as the ubiquitous video card. As VLB devices have direct high-speed access to system memory at the same level as the main processor, there is no way for the system to intervene if devices were mis-configured or became unstable. If two devices overwrite the same memory location in a conflict, and the hard-disk controller relies on this location (the HDD controller often being the second conflicting device), there is the all-too-common possibility of massive data corruption.


 * Limited scalability
 * As bus speeds of 486 systems increased, VLB stability became increasingly difficult to manage. The tightly coupled local bus design that gives VLB its speed became increasingly intolerant of timing variations, notably past 40 MHz. Intel's original 50 MHz 486 processor faced difficulty in the market, as many existing motherboards (even non-VLB designs) did not cope well with the increase in front-side bus speed to 50 MHz. If one could achieve reliable operation of VLB at 50 MHz, it was faster – but again, this was notoriously difficult to achieve, and often it was discovered not to be possible with a given hardware configuration. The 486DX-50's successor, the 486DX2-66, circumvents this problem by using a slower but more compatible bus speed (33 MHz) and a multiplier (×2) to derive the processor clock speed.


 * Difficulty of installation
 * The length of the slot and number of pins makes VLB cards notoriously difficult to install and remove. The sheer mechanical effort required is stressful to both the card and the motherboard, and breakages are not uncommon. This is compounded by the extended length of the card logic board; often there is not enough room in the PC case to angle the card into the slot, requiring it to be pushed with great force straight down into the slot. To avoid excessive flexing of the motherboard during this action, the chassis and motherboard had to be designed with good, relatively closely spaced supports for the motherboard, which is not always the case, and the person inserting the board had to distribute the downward force evenly across its top edge. Due to the length of a VLB slot and the difficult installation that results from its length, a slang alternative use of the acronym VLB is Very Long Bus.

Legacy
Despite these problems, the VESA Local Bus became very commonplace on later 486 motherboards, with a majority of later (post-1992) 486-based systems featuring a VESA Local Bus video card. VLB importantly offers a less costly high-speed interface for mainstream systems, as only by 1994 was PCI commonly available outside of the server market through the Pentium and Intel's chipsets. PCI finally displaced the VESA Local Bus (and also EISA) in the last years of the 486 market, with the last generation of 80486 motherboards featuring PCI slots instead of VLB-capable ISA slots. However, some manufacturers did develop and offer "VIP" (VLB/ISA/PCI) motherboards with all three slot types.