How Intel Gave Us The PCI Bus While Burying VESA’s VL-Bus

PC AT mainboard with both 16-bit ISA and 32-bit PCI slots. (Credit: htomari, Flickr)
Gigabyte GA486IM mainboard from 1994 with ISA, VLB and PCI slots. (Credit: Rjluna2, Wikimedia)
Gigabyte GA486IM mainboard from 1994 with ISA, VLB and PCI slots. (Credit: Rjluna2, Wikimedia)

The early days of home computing were quite a jungle of different standards and convoluted solutions to make one piece of hardware work on as many different platforms as possible. IBM’s PC was an unexpected shift here, as with its expansion card-based system (retroactively called the ISA bus) it inspired a new evolution in computers. Of course, by the early 1990s the ISA bus couldn’t keep up with hardware demands, and a successor was needed. Many expected this to be VESA’s VLB, but as [Ernie Smith] regales us in a recent article in Tedium, Intel came out of left field with its PCI standard after initially backing VLB.

IBM, of course, wanted to see its own proprietary MCA standard used, while VLB was an open standard. One big issue with VLB is that it isn’t a new bus as such, but rather an additional slot tacked onto the existing ISA bus, as it was then called. While the reasoning for PCI was sound, with it being a compact, 32-bit (also 64-bit) design with plug and play and more complex but also more powerful PCI controller, its announcement came right before VLB was supposed to be announced.

Although there was some worry that having both VLB and PCI in the market competing would be bad, ultimately few mainboards ended up supporting VLB, and VLB quietly vanished. Later on PCI was extended into the Accelerated Graphics Port (AGP) that enabled the GPU revolution of the late 90s and still coexists with its PCIe successor. We covered making your own ISA and PCI cards a while ago, which shows that although PCI is more complex than ISA, it’s still well within the reach of today’s hobbyist, unlike PCIe which ramps up the hardware requirements.

Top image: PC AT mainboard with both 16-bit ISA and 32-bit PCI slots. (Credit: htomari, Flickr)

38 thoughts on “How Intel Gave Us The PCI Bus While Burying VESA’s VL-Bus

  1. From what I remember, VLB was only meant to be very temporarily because it took too much time to deveop PCI. And the linked to Wikipedia confirms this:

    > The VESA Local Bus was designed as a stopgap solution to the problem of the ISA bus’s limited bandwidth.

    MCA was extremely expensive I believe. Maybe because of royalties, maybe because of complexity, or both. Does anyone remember rambus? According to it seems it was mostly sued to death.

    1. Why do you mention rambus, this article is about expansion card buses. but from what i recall, rambus emerged a few months before the invention of double data rate ram, which doubled the speed with a simple change. therefore making it effectively obsolete overnight. at the time dell computers had a contract to buy rambus they couldn’t back out of and lost market share when buyers switched to competitors.

      1. there’s not much difference tween rambus and DDR, the people behind rambus was sitting on the committee taking notes of all the industry’s best ideas and then tried to release a proprietary design before DDR launched as a standard. They are shitbag scum

    2. “MCA was extremely expensive I believe. Maybe because of royalties, maybe because of complexity, or both”

      An anecdote: In the early 90’s, the Ford plant I worked at was an IBM shop. If you wanted a computer, it had to IBM, meaning PS/2s and MCA.

      I don’t recall having any specific opinion of the technical merits of MCA at that time, but I hated it. Why? The exact same Hayse modem card that in ISA form cost 100 bucks, was $800 dollars in MCA format. There was no material difference in technical complexity between the two, so the price differential could only be explained by Hayse’ obligation to obscene royalty payments.

      When I sought to buy a new computer for my personal (home) use, I could have leveraged an employee discount to buy a PS2 through work. Instead, I paid full price for a Dell, with a non-proprietary backplane and standard drives, peripherals, and memory. The value-to-cost ratio was far greater.

      In my opinion, IBM’s greed-driven short-sightedness all but assured that MCA, even if a better/faster backplane, would never proliferate as ISA had.

      1. MCA was plug and play before it was. No jumpers. Just a text file. So hardware selection which was easy for jumpers {port, irq and dma} now was programmed via basically a text file to a more intelligent add in card. Similar was the EISA standard if anyone remembers that mess of a standard.

    3. EISA was nice. It replaced the original ISA slot and was backwards compatible.

      It’s a shame it was merely being used in niche applications, like servers.

      Even if PCI had won the race, having kept a brown 32-Bit EISA slots silently instead of those black plain ISA slots would have been awesome.

      It would have preserved most of VLB’s capabilities, like 4GB address range, without making a big fuss about it (no separate VLB slot needed).

      Inmean, the whole plug&play thing of PCI was a nightmare to DOS or OS/2 and all the traditional hardware (Sound Blaster cards, floppy controllers etc).

      Alas, PCI proves that not always the better technology succeeds.
      Sometimes it’s all about the loudest and fastest.

      And about popularity. PCI was made by intel, one of the “gods” of PC platform (besides IBM).

      It’s like with society, maybe, I think.
      If you’re quite and thoughtful, you may won’t make it very far.
      While simultaneously, a hotshot of a person might be successful. Or not, dunno.

        1. Yes. My smartphone constantly auto-corrects/auto-selects words while I’m typing. I wished it wouldn’t do this. I don’t like smartphones or these dull days we’re living in. If I have to be responsible for my typos, these typos should be really my own typos, at least. Not a product of an auto-correct feature that knows better all the time. 😟

      1. EISA was just another layer of methastasised cancer over ISA crap.

        Since it couldn’t get out of ISA box, it had to keep its signalling and timings, so it was slow,p compared to VLB. Yes, VLB was not really a bus ( just 1 car limitation), but EISA was not really a solution to that problem either.

        Besides its low speed, it was BIG. Which meant it took a lot of place on a big motherboard AND daghtercards.

    1. The satisfaction of getting a early generation cd ROM running on such a platform was superb. But let’s be honest here, it sucked. The drivers sucked. Dos sucked. I much more enjoy current hardware and Linux.

      1. To me, it wasn’t that bad, though.

        MS-DOS 6 setup was much friendlier than a typical Linux installation of the time.

        That commercial software took you by the hand, no need to fiddle with things like XFree86, /etc/fstab, swapon, nano and modprobe.

        My soundcard, for example, shipped with a setup utility that looked like MS-DOS 6 setup, too. 😃

        It’s just me perhaps, but I have so many positive memories of that era.

        I went online with pre-internet technology, too.

        I had CompuServe access via CompuServe Informationen Manager software, for example.

        Then there was loads of free software, music (mod, mid), pictures (pcx, bmp, gif, tga), sound files (wav, voc) and animation (mov, mpg, fli, flc, avi) on those shovelware CDs..

        No need to download things through a slow phone line!

        Speaking of entertainment, television was also more civilized.
        There was StarTrek TNG, Voyager, DS9, Babylon 5.
        Or those funny Disney cartoons of the day (Darkwing D., D-Tales,T-Spin).
        And much more, of course.
        Say, the X-Files or Batman The Animated Series. And so on.

        In my place, VideoCD was a thing, too, years before DVD was even known by name.
        The selection was small, but classics like The Secret of NIMH, Airplane! or the StarTrek movies were available, at least.

        And that’s exactly what Window 3.1 era multimedia was about, really.
        PhotoCD, QuickTime, VideoCD, CD-i..
        Video telephony through ISDN, too, maybe?

        In the US, MovieCD was kind of successful, too.
        It was a technology especially made for Windows 3.1x.
        A 486DX2-66 and a double speed CD-ROM drive were all what it takes.

        Okay, to be fair, all of this wasn’t mainstream by any means (that was VHS), but so neither was Laserdisc.
        Computing as such wasn’t as mainstream.

        Seriously, I wished I could show you how thrilling the 486 era was.
        Not just only on PC, but also on Amiga or Macintosh. Or the 16-Bit consoles.

        The early-mid 90s were so exciting! 😃New inventions every few months, new breakthroughs in microchip technology.

        Reading latest computer magazines or video game magazines was something to be actually looking forward to.

        But even if Windows wasn’t yours, there were alternatives.
        A Mac with System 7 had a very similar ecosystem to Windows 3.1x, too.

        In fact, many CD-ROM titles were in dual format (Mac Systems 7+Windows 3.1x).

        Technologies like QuickTime, PhotoCD and VideoCD were available on both platforms.

        At same time, Linux was still Minix pretty much.

        But that wasn’t bad, maybe.
        Unix systems like Sun’s Solaris were commercially available, already.

        They had had a good GUI and could run Wabi, even. That proto-WINE.
        So you could have your favorite Windows 3 programs on the Unix desktop! 😃

      2. I forgot to mention, DOS and Linux had something in common.

        There wasn’t just one version, but quite a few.

        In practice, DOS as a platform was free and independent.

        It wasn’t owned by one guy.

        Please have a quick look:

        There were even unix-style DOSes with multi-tasking and multi-user capabilities. Years before Linux.

        Even CP/M had some counterpart like that (MP/M, ’79).

  2. My memory is that, in the exact same way that ISA is “just” the 8086 bus signals, VLB is “just” the 486 bus signals.

    Wikipedia says:

    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

    This article feels sensationalized in an unhelpful way. VLB was by design tied to the 486, it had reliability and scaling problems, and Intel felt that having to maintain yet another ad-hoc bus architecture was a bad choice.

    1. There are three types, I think.

      a) 8-Bit PC bus or PC/XT bus (named after their PCs)
      b) 16-Bit AT bus (named after IBM/AT; later standardized by Gang of Nine as ISA bus; ~8 MHz became standard frequency)
      c) 32-Bit EISA bus (encapsulates all previous buses)

      a and b were essentially the front-side bus of 8088 and 80286 on an edge connector. Chipsets came by late 80s.

      In the early 80386 days, there were proprietary 32-Bit busses, around, too.
      Mainly for adding full-size 32-Bit RAM boards.

      They either connected directly to the 80386 front side bus or used a bus driver unit (some companion chip made for 80386).

      In 486 days, local buses like VLB or Opti bus were essentially providing the missing pins not found on ISA bus.

      The 8-Bit part (PC bus part) of ISA bus was still being used to make the BIOS detect the VLB card during POST (VGA card etc).

      Technically, VLB is the native 486 bus.
      It’s as raw and authentic as it gets.

      In a time of 486 PCs (almost whole 90s), it was top notch and very compatible.

      *If* there hadn’t been electrical problems. Bus noise, reflections etc.

      If VLB had been modified carefully, by using noise blocking capacitors, clean board layouts (no sharp 90° or 180° edges for the traces) and better shielding..

      Speaking under correction.

    2. There is almost nothing 486 about VLB. Its more of a raw data + address bus bus. There were “VLB” peripherals on Amiga, and VLB slot equipped 386SX motherboards.
      As you said there are problems when hanging external devices on your CPU main data/address bus.
      1 reliability. Every device loads the bus, impedance reflections etc. This is why 3 VLB was absolute max, and lots of configs worked only with max two cards.
      2 scaling.
      – Cant just have 66MHz dangling on parallel slots without special care, thats why VLB tops out at 33MHz or 40MHz with wait states.
      – Pentium got special advanced burst read/write modes, not taking advantage means leaving performance on the floor. VLB standard only supported optional 2 cycle burst memory read. This is that one purely 486 thing about VLB, only short memory burst, not even burst IO.
      – taking over main data/address bus means bus masters halt CPU, counter productive.

  3. PCI established much more than just a bus. It really established the model for publishing computer hardware standards, striking the right balance between openness versus assuring compatibility.

  4. ISTM that an awful lot of tech detail has been left out by the normally excellent Tedium, and is not improved by the comments.

    @rnjacobs is bang on: VL-bus is more or less an extension of the 80486DX bus, and thus would not work with other CPUs such as the Pentium, effectively the 586.

    PCI was designed to address this: it can be used with Pentium, and with PPro/P6, AMD chips, etc. and with various RISC chips, too.

    As for EISA, it focussed on bandwidth more than speed (as in, low latency) of transfers. Ideal for fast storage — mainly SCSI — and to much lesser extent, network — adaptors for servers, but expensive, and not much help with fast graphics adaptors, which was a market 10-100x bigger.

    MCA was expensive, but it worked well. One snag was that while EISA, VL-bus and PCI all happily coexisted with ISA on the same mobo, MCA did not. With MCA it was all or nothing, which alongside cost, impeded adoption.

    1. You are right about low quality of Tedium article.

      >VL-bus is more or less an extension of the 80486DX bus, and thus would not work with other CPUs such as the Pentium

      Except there were VLB peripherals (Cirrus Logic VGA chips) used in AMIGA Zorro cards. There also are 386SX, yes the 16bit SX of all the things, VLB motherboards The only strictly 486 thing in the VLB spec is optional 2 cycle read burst as that was all 486 could do.

  5. Tedium article includes such ridiculous statements as:

    >(VL-Bus) … It wasn’t a massive leap, more like a stopgap improvement on the way to better graphics … VESA came up with a slightly faster bus standard for the next generation of graphics cards, one just fast enough to meet the needs of 486 users.

    From 5MB/s ISA to 133MB/s VLB “not a massive leap”, “just slightly faster”
    Absolute theoretical 16bit ISA limit is 2 cycles per transaction (0WS), (2 Bytes x clock MHz)/2 cycles = ~8MB/s at 8MHz. In practice best period correct VGA cards reach ~4-6MB/s write speed. Slowest VLB VGA ~10MB/s fastest ~30MB/s, slowest PCI VGA ~15MB/s fastest again ~30MB/s.

    >Intel didn’t exactly make that point clear to the companies supporting the VESA standards body until it was too late for them to react.

    Those companies didnt care. Adding VLB to a 486 motherboard cost below 1$ by reusing excess stock of failed standard MCA connectors and wiring it straight to CPU bus. Adding PCI meant big expensive PCI bridge chip or developing next generation chipset and impedance matched PCB to satisfy PCI reflected wave switching requirements. VLB was a quick hack to give users what was needed at the price they were willing to pay. Market wasnt ready to pay for PCI in 1992, two years later costs came down to earth.

  6. “The early days of home computing were quite a jungle of different standards and convoluted solutions to make one piece of hardware work on as many different platforms as possible. IBM’s PC was an unexpected shift here, as with its expansion card-based system (retroactively called the ISA bus) it inspired a new evolution in computers”

    It’s an interesting article here, but there are quite a few errors.
    1. The IBM PC didn’t compete in the home computer market, because it costed $2.5k up whereas home computers were in the $200 to $1.5k market. It was a Personal Computer aimed at businesses, backed by IBM – which is why it rapidly gained market share (“No-one ever got fired for buying IBM.”).
    2. The microcomputer business market already had a standard slot-based bus before the IBM PC: the S100 standard, upon which the previous business computers ran (mostly) CP/M. The Apple ][ also had a slot-based bus, which could support plug-and-play peripherals (the I/O in each slot was mapped to a different memory address range and ROMs were paged into a common address bank).

    In other words, there was nothing new about the IBM PC’s bus design: it wasn’t the most open (both S100 and the Apple ][ bus were at least as open), it wasn’t the cheapest (S100 and Apple ][s were already cheaper), it wasn’t the easiest (the Apple ][‘s bus was plug-and-play over 15 years before PCI). What it had going for it was that “No-one ever got fired for buying IBM.”

    1. Thank you ;-)

      You realize how old you have become when you read articles about a time that you actively experienced – written by people who were not yet born back then. And you realize how much that “second-hand perspective” can blur facts. This is no different in the history of technology than in politics.

      1. So true. Consider the Victor 9000, an 8088 based computer very similar in form and price to the IBM PC, whose design team was lead by Chuck Peddle (who designed the early PET computers I think, or lead the 6502 design team).

        The Victor 9000, released in 1981 (or the very beginning of 1982) had a character-mode display with software definable characters; or an 800×400 bitmapped display – all built-in! No MDA or CGA requiring a card. It had a serial port that could even handle low-speed HDLC networking out of the box; it had an absolutely sublime keyboard; it came with 128kB as standard (when the IBM PC came with, I think 16kB as standard[2]); it had a maximum of 896kB of RAM (vs the PC’s 640kB); it had an open bus architecture which was basically the same signals as the IBM PC’s (probably different pinout); it had 1.2MB floppy disks (when the PC only had 160kB). It had *software* control of the display’s brightness and contrast! It had audio in/out with CVSD audio compression!!! And it was stylish!

        Every differentiated feature in the Victor 9000 was _better_ than an IBM PC and the Victor 9000 ran the at-the-time industry standard CP/M-8086 Operating System, but the IBM PC totally out-competed it. Why? Because “No-one ever got fired for buying IBM.”

        Bitsavers tech doc on the Victor 9000:


        A 64kB IBM PC + Twin 160kB disks + Monochrome display would cost about $3000.

  7. We used to build a lot of 486 PCs into old 286 cases back at my old workplace. This was back in those sweet days when Pentium 1 and 2 were the new stuff. But even a single desktop PC was still expensive enough to be a major investment for a household. But sub-Pentium parts were basically e-Waste even though if you knew what you were doing you could get a usable web/email/homework machine from that waste.

    When the only tools you have are a Dremel, a nibbler and a pop rivet gun everything looks like a slightly off-standard old PC case!

    Anyway.. We managed to get ahold of a few VL-Bus video cards and I think maybe even an ide/floppy card. I remember being amazed how well they worked. They were way faster than any of our IDE stuff. I was sad to know they were already basically discontinued. But PCI was good too, we were just waiting for Pentium hardware to reach e-waste status so oh well. I definitely like the fact that an empty VL-Bus slot could take a plain old ISA or EISA card and I think those VL-Bus cards even worked albeit slower when plugged into an ISA/EISA slot so long as the extra card edge didn’t hit anything on the motherboard.

    That kind of double-backwards compatibility was great!

  8. “ultimately few mainboards ended up supporting VLB” – I recall a short period in the 90s (1993-1995?) where almost all 486 boards had VLB, no PCI, and PCI cards were much more expensive than VLB ones. Iirc, PCI wasn’t populare until Pentium MMX boards became mainstream, a few years later.

    1. That’s true, I think.

      In the years before Windows 95, 486 PCs with VLB were very common.

      That’s when DOS and Windows 3.x were new; they didn’t support Plug&Pray yet.

      To get PCI cards and later on, those ISA PnP cards working, they needed to fiddle with DOS Plug&Pray utilities and Plug&Pray BIOSes.

      That was way worse than playing with Mem Maker or Qemm.
      In this respect, VLB was very user friendly. Once configured, it kept working as expected.

      PCI hardware with its Plug&Pray feature always changed resources for no apparent reasons.
      On DOS or Windows 3 or OS/2, PCI and ISA PnP were no fun.

      Anyway. The article isn’t bad, though.
      Just uses a modern interpretation of everything, I suppose.
      The definitions of what’s successful and not nolonger are same, I realized.

      For example, there were numerous VIP mainboards. VLB/ISA/PCI.
      But they being were made using just a handful of chipsets supporting it.

      So it’s relative if it was successful or not.

      As far as the world of the user was concerned, though, VLB was a big part of the 486 era.

      Mainly the beloved 486DX2-66 with 33 MHz FSB.
      With this CPU, VLB ran at a stable frequency of 33 MHz.

      The 486DX2-66 was the succesor/drop-in replacement of the classic 486DX-33.

      Of course, PC gamers building their hot-rod PC also had an interest in the very fast 486DX-50 with a 50 MHz FSB.
      That’s were VLB got very finicky..

  9. IBM really bungled MCA. I get why they didn’t just make it open like ISA. But hindsight being 20/20 I think they should have charged chip makers a nominal fee like $1 per chip and give some vendors a different deal making them more competitive like the CHIPS P82C612 which was already too expensive. And held onto the trademark and standards for MicroChannel. That gives IBM a competitive advantage because new revisions and features could make it into their own equipment first but eventually everyone else could license the same update for $1.
    PCI is both better and worse than MCA. Bus mastering on MCA was way more interesting but complicated. And PCI had a much more elegant way to handle configuration. Both PCI and MCA (and NuBus) ended the era where you could grab some off-the-shelf chips and make a simple card. You had to have dedicated chip that could handle the bus interfacing, the functionality could be integrated into whatever ASIC you making if you had a complex card. But cheap cards suddenly got more expensive. Making a printer port or serial port wasn’t as simple as a handful of 74xx00 series parts.

    1. IBM saw MCA as a way to create a new proprietary standard away from the confusion of ISA. And unlike the PC/XT and PC/AT that had technical references describing pretty much everything, the PS/2’s didn’t.

      So it was about vendor lock-in, and so blatantly obvious it failed.

      As to licensing MCA, it might’ve been an opportunity, but they weren’t looking for perhaps $100M per year in licensing revenue, but “protecting” several $B’s in product and related services. Similar to the story of Apple licensing MacOS, except that Apple had the users locked in and appropriately brainwashed to begin with.

  10. PCI-E is not really out of reach for hobby use. You have many chips that bridge it to SPI, UART, ISA or PCI. Alternatively, FPGAs with PCI-E capable serdes IO are quite common and cheap now. Finally, a lot of modern application processors often have one or two PCI-E ports, sometimes even usable as a device instead of a root complex.

    1. You’re right, but I think you’re missing the point.

      The nice thing about ISA or VLB was that it could be interfaced with ordinary logical chips.

      These chips are “pure”. No software, no microcontroller, no intelligence.
      Just plain physics.

      And that’s the magic of DOS and bare metal programming, I think.

      The hardware is very flexible, and mainly being limited by the software.

      If you build a D/A or A/D converter for your project, for example, it contains no firmware or any sort of MCU.
      (-Just think of the old gameport on your soundcard-)

      It might be just interfaced by a buffer and an address decoder built using a 74 series logic IC.
      That’s what we used to call glue-logic, I believe.

      All what you mention involve some form of microcontroller, a form of active protocol converter.

      That’s like replacing a discreet TTL serial interface of the 1960/1970s by an FPGA-based USB to serial converter that has a higher transistor count like an 386 CPU.

      It works, sure. But that’s not appealing. It’s no fun. It feels like waste and overkill.

      It’s like exchanging a bow and arrow in sports for a rocket launcher.

      I mean, sure, the rocket launcher will hit the target, too.. But is it sporty?

  11. I hated VLB when it was around as the fastest thing for 486. You had to have Hulk-like strength to push a 12″ long video card into a 12″ long slot, especially if it’s brand new. Forget getting them out, there’s a small risk something will break if you tried to pull VLB card out.

    And there’s no buffering between VLB so if you had 2 or 3 VLB cards, you ran risk of data corruption and flaky hardware. I am glad that VLB didn’t carry over to Pentium (save for a few oddball motherboard with 486/Pentium support)

    For most of the time I allowed only 1 VLB card, no matter what anyone wanted. Almost always the better video card in there and left the rest of upgrade in older ISA slots like sound cards and IDE ports if the motherboard didn’t have any built in.

  12. I’m always surprised that articles don’t simply explain that PCIe is a network interface, not what most people think of as a bus. It’s technical breakthrough was simply differential pairs (from the network world), achieving much higher transfer rates than old-style (parallel) buses. Of course it also stood on the shoulders of PCI for configuration, too.

    What’s really surprising is that DRAM interfaces haven’t seen any large jumps, pretty much ever. Still very dumb chips exposing a minimalistic (in the bad way) interface to the memory controller.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.