mpe wrote:- I don't currently own one, but I've definitely seen a working 386 VL-Bus system (typically late boards that shipped with soldered 386 or SLC/DLC that also had 486 upgrade socket). Visit the 'System Specs" section on this forum to see some success sorties.
I never said it didn't work at all. Just that chipsets/motherboards that even support it are very rare, and even when they support it, the performance gains and compatibility may be very marginal.
mpe wrote:- I also happen to own a working bus-master capable VL-Bus card (Adaptec AHA-2842A) which also has VL-Bus 2.0 feature (write-back cache invalidation) in all write-back 486 system. I would eventually like to get another one to see if I can have two masters in one system 😀
Yes, even on 486es, VLB was often flawed. Most people wouldn't notice because they only used one or two cards, and 'got lucky', because the cards didn't use bus mastering.
Because there is no bus arbitration implemented, having two bus-master cards in one system is going to fail.
When you're only using one bus-master card, well, it's always the bus-master, so there's nothing to arbitrate.
Adaptec is a big name, so they probably designed their part right, and tested it properly. But the motherboard could still let it down.
I guess it also doesn't help that localbus was a thing before it was standardized in VLB. So there were probably a number of chips originally developed for some custom localbus solution, and later hacked around to be somewhat VLB-compatible.
I wouldn't be surprised if that 16-bit mode for 386SX doesn't actually work on quite a few devices, because either the designers never bothered to implement it at all (they targeted only 486), or because they never actually had any 386SX-VLB systems to test them on (because they simply didn't exist), so the implementation went untested.
mpe wrote:So while I agree with you these features are rather non-mainstream, implementation can be screwed or problematic it is not that uncommon. Or you just need to be lucky 😀
Yes, you need to be lucky, even on a real 486.
That's not entirely exclusive to VLB either. In the early PII/Athlon era, you had the same thing with PCI, AGP, USB and such. Certain budget chipsets, notoriously VIA, didn't have an official license, and as such didn't have access to the official spec. So they just reverse-engineered everything, and built their own hacked-up implementation. The systems would kinda sorta work, but you had to be lucky. The same chipset worked better on one mainboard than on another because of different settings hardcoded into the BIOS. And some cards would work fine despite the flaws, other cards would not. And some stuff would work, just not very well.
One example I can think of is my Athlon 1400 with VIA KT133A chipset. I wanted to use it as a DAW, and I had a USB audio interface with ASIO support. I had lots of trouble getting the latency down below 150 ms (which is quite a lot). I would get random dropouts and whatnot.
When I tried it on a much slower system, a Celeron 1000 with Intel chipset, the same USB interface ran just fine, and I could get it down to 10 ms latency easily. Obviously the VIA chipset had issues.
I then wanted to see what the GeForce2 GTS in my Athlon 1400 would do in the Celeron 1000. Once again I found that the AGP bus ran much faster on that machine. I could actually get better performance out of the GPU as long as I didn't run into a CPU bottleneck.
I've seen similar issues with various VLB systems, because again they generally use cheap chipsets with poor implementations. I got lucky with my own 486DX2-66. It has a very fast VLB implementation, and can run zero-waitstate. I now run it overclocked at 80 MHz, and it still runs zero-waitstate just fine.
Most of my friends' VLB systems at the time couldn't run zero-waitstate, even at 66 MHz, even if we used my video card and IDE controller. And the performance difference was quite significant because of that.