VESA Local Bus
The VESA Local Bus (usually abbreviated to VL-Bus or VLB) was 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 provided 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.
VESA Local Bus | |
Multi-I/O-Controller with 1×IDE/SCSI-2/FDD/parallel/2×RS232/Game | |
Year created | 1992 |
---|---|
Created by | VESA |
Superseded by | PCI (1993) |
Width in bits | 32 |
No. of devices | 3[1] |
Speed | 25–40 MHz |
Style | Parallel |
Hotplugging interface | no |
External interface | no |
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 due to IBM's requirement to license and payment of licensing fees by hardware manufacturers 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.
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". It is important to note that at the time a migration 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 (which in itself is not bad: MCA required peripheral cards to not just be "passive" members and made cards active participants in increasing system performance) 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.[2] 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 was simply 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 was a normal ISA or EISA slot being additionally capable of accepting VLB-compatible cards. Traditional ISA cards remained compatible, as they would not have pins past the normal ISA or EISA portion of the slot. The reverse was also true – VLB cards were 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 looked similar to an IBM MCA slot, as indeed it was 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.[1]
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 manufactures 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 tied 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.[1]
This simplicity of VLB unfortunately created several factors that served to limit its useful life substantially:
- 80486 dependence
- The VESA Local Bus relied heavily on the Intel 80486 CPU's memory bus design.[3] 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 used VLB-to-PCI bridges such as the OPTi 82C822.[4] This also meant that moving the bus to a computer with a non-x86 architecture was nearly impossible, within practical economic constraints.[5]
- Limited number of slots available
- Most PCs that used VESA Local Bus had only one or two VLB-capable ISA slots out of the total five or six available; thus, four ISA slots generally were just that, ISA-only. This was a result of VESA Local Bus being a direct branch of the 80486 memory bus. The processor did not have sufficient electrical capacity to correctly drive (signal and power) more than two or three devices at a time directly from this bus.[5]
- Reliability problems
- The strict electrical limitations on the bus also reduced any "safety margin" available, negatively influencing reliability. Glitches between cards were common, as the interaction between individual cards, combinations of cards, motherboard implementation, and even the processor itself was difficult to predict. This was especially prevalent on lower-end motherboards, as the addition of more VLB cards could overwhelm an already marginal implementation. Results could be rather spectacular when often important devices such as hard disk controllers were involved with a bus conflict with a memory-intensive device such as the ubiquitous video card.
- As VLB devices had direct high-speed access to system memory at the same level as the main processor, there was no way for the system to intervene if devices were mis-configured or became unstable. If two devices overwrote the same memory location in a conflict, and the hard-disk controller relied on this location (the HDD controller often being the second conflicting device), there was 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 gave 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 extremely fast – but again, this was notoriously difficult to achieve, and often it was discovered not to be possible with a given hardware configuration.[6]
- The 486DX-50's successor, the 486DX2-66, circumvented this problem by using a slower but more compatible bus speed (33 MHz) and a multiplier (×2) to derive the processor clock speed.
- Installation woes
- The length of the slot and number of pins made VLB cards notoriously difficult to install and remove.[7] The sheer mechanical effort required was stressful to both the card and the motherboard, and breakages were not uncommon. This was compounded by the extended length of the card logic board; often there was 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 was 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 resulted from its length, a slang alternative use of the acronym VLB was Very Long Bus.[8]
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 offered 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" (VESA/ISA/PCI) motherboards with all three slot types.
Technical data
Bus width | 32 bits |
---|---|
Compatible with | 8 bit ISA, 16 bit ISA, VLB |
Pins | 112 |
Vcc | +5 V |
Clock | 486SX-25: 25 MHz 486DX2-50: 25 MHz 486DX-33: 33 MHz 486DX2-66: 33 MHz 486DX4-100: 33 MHz 486DX-40: 40 MHz 486DX2-80: 40 MHz 486DX4-120: 40 MHz 5x86@133 MHz: 33 MHz 5x86@160 MHz: 40 MHz 486DX-50: 50 MHz (out of specification) |
Bandwidth | 25 MHz: 100 MB/s
33 MHz: 133 MB/s 40 MHz: 160 MB/s 50 MHz: 200 MB/s (out of specification) |
See also
- Industry Standard Architecture (ISA)
- Extended Industry Standard Architecture (EISA)
- Micro Channel architecture (MCA)
- NuBus
- Peripheral Component Interconnect (PCI)
- Accelerated Graphics Port (AGP)
- PCI Express (PCIe)
- List of device bandwidths (A useful listing of device bandwidths that include VLB)
References
- Schuytema, Paul. "Infinite expansion. (computer buses)". Atari Magazine, COMPUTE! ISSUE 158 / NOVEMBER 1993 / PAGE 68. Retrieved May 27, 2019.
- Richter, Jake. "Local-bus architecture: A little-understood, much-cited graphics technology", "InfoWorld", May 18, 1992, accessed March 9, 2011.
- Kozierok, Charles. "VESA Local Bus". The PC Guide. Retrieved May 27, 2019.
- http://bitsavers.informatik.uni-stuttgart.de/pdf/opti/dataSheets/82C822_VESA_to_PCI_Apr94.pdf
- Kozierok, Charles. "VESA Local Bus". The PC Guide. Retrieved May 27, 2019.
- BrainBell.com "A+ Tutorials > Expansion Buses > VESA Local Bus (VLB)", accessed January 8, 2012.
- Slone, John P. Local Area Network Handbook, Sixth Edition. CRC Press. p. 43. ISBN 9780849398384.
- Edwards, Benj. "The Micron Millennia". Vintage Computing and Gaming Adventures in Classic Technology. Retrieved May 27, 2019.
This article is based on material taken from the Free On-line Dictionary of Computing prior to 1 November 2008 and incorporated under the "relicensing" terms of the GFDL, version 1.3 or later.