• Please review our updated Terms and Rules here

ISA cards with high bus speed tolerances

Hak Foo

Experienced Member
Joined
Jul 18, 2021
Messages
315
I noticed someone mentioned in the RealDOOM thread "I have a 20 mhz-ish juko turbo xt" This intrigued me-- what sort of cards are in it?

One of the growing pains on XTs was that 1:1 ratio between CPU clock and bus speed. I assume this tended to keep the platform down to 10MHz and very occasionally 12, when at least 16MHz V20s seem to be available.

But on a broader basis, I'm curious if anyone has curated any lists of ISA cards that are more tolerant of 10 or even 12MHz operation. I feel like most "late 80s and beyond" cards might have been paired with a 10MHz turbo-XT or a 20MHz AT-or-higher machine with a 1/2 ISA bus multiplier, so they should handle 10MHz gracefully. OTOH, there were probably cards that were never designed beyond the original 5150 and 4.77MHz.

I'd assume that through improvements in process, and faster, cheaper logic families available, some of the newer cards, like most modern kits, would have a leg up on supporting higher clock speeds, but I could be wrong.

On a specific concern, I've always had trouble with my project machine getting above 8MHz. It fails with spurious NMIs in TOPBENCH, which is weird because the machine doesn't support parity or a FPU, either of which are the common cause of NMIs. The CPU and memory are both rated far above 8MHz, so I tend to suspect one of my cards is finicky. I'd theorize it might be the Realtek RTG3106 VGA card, since that's the one I can't easily remove or replace. I'll be trying one of the new-build TVGA9000 cards soon and see if that theory shakes out..
 
There were a few XTs that effectively ran the CPU slower when accessing the ISA bus(or more precisely, when doing read or write cycles against hardware not decoded on the system board). Amstrad’s 8086 clones, for instance, and I think the Compaq Deskpro might have as well? Not sure about those late 12mhz XT boards, but I’d kind of be surprised if they didn’t have some mechanism for that?

I used to overclock the ISA bus in my 486es to 11mhz instead of eight and most things were fine, but some cards were a flat no. (Tried an original IBM MDA card for a secondary head once and it was cranky at 8mhz.)
 
It was pretty common for Turbo XT ERSO BIOS to drop the CPU speed to 4.77 MHz when floppy access was being performed, as most used CPU loops for delays. (see the IBM PC XT BIOS for examples).
 
I built my own NEC V20HL 16MHz machine (SBC based on Serges Xi8088) with the hopes of clocking it at the full 16MHz but I could only get video stable at about 11MHz with certain VGA cards (TVGA 9000i and an 8900D) and usually with 1 wait states on IO & VRAM read/writes. As it's a novice build I probably have a lot of poor signal integrity issues so not a great comparison, but just thought I'd pop in my experience of over clocking ISA...
 
I'm the one that talked about the 20 mhz-ish turbo xt. It eventually deserves its own thread but I'm not done with my 16-bit overclocking experiments yet. I have run ISA clocks very high on an XT and 286 board.

The turbo XT is a Juko Turbo XT rated for 12 mhz. There are 16 MhZ V20s out there... there a lot of fakes and/or dead chips, but If you go through enough of them you'll eventually find some that work and some that overclock better than others. As I push that motherboard beyond 20 mhz, the clocks get halved due to some sort of frequency harmonics (i think). There's ways around this but I haven't gotten around to it. I'm a little surprised the 70 and 80ns rated ram on the board seems to have no trouble with 0 wait states.

The 286 board has separate ISA and CPU crystals. I have pushed a 286 to ~37 MhZ using a low-power peltier to cool it. It does about 34 MhZ on air cooling. Its VLSI SCAMP chipset technically is rated for 20 MhZ, but nothing even seems to be hot at 35+ MhZ. When i say "runs", i mean i post, boot into ms-dos, run topbench for a couple seconds, get a score, then run 3dBench which takes a minute or two, get a score, then turn the machine off. It doesnt tend to run more than a couple minutes at those speeds, the cpu eventually just heats up too much. I'm hoping to hit 40 MhZ in the next few months by possibly lapping the chips and exposing the ground plate (making cooling easier), binning some better overclocking candidates, using a more powerful peltier cooler, and maybe overvolting a little bit. It's also not worth it if you dont have RAM that can run at 0 ws, so I'm looking into that, too.

As for the ISA bus and what runs fast...

I have pushed the ISA bus to 40.50 MhZ on that 286. However, the real speed on all the cards seems to be half that so there might be a crystal harmonic sort of thing going on that causes the frequency on the cards to be effectively halved. At the same time, I have a measuring device that clearly says 40.50, so not sure.

Most later VGA cards that are known to have good DOS gaming performance seem to tolerate ISA bus speeds over 16, 17 mhz... I haven't found a Tseng or Mach32 ISA that cant do 17.5, some Mach32s can run 21 MhZ... I think I have some s3 based cards that will run faster, but their bios lacks support for the 286 so I can't actually use them on this motherboard. For the VGA cards, I don't think RAM is the limiting factor on speed, but I don't know what else it is either, maybe some discrete logic chips. I have a spreadsheet with tons of data in it, I do plan to post it at some time.

Some XT-CF, XT-IDE, etc cards can work at those speeds, but once you start going really fast you need to shadow the bios (and of course, need memory is fast enough to handle it). I've found that some CF cards actually dont work well at those speeds while others do, too. I haven't tried normal IDE controlers.

I have not tried serial, parallel, or sound cards, or really anything else I guess. I recall hearing about sound cards struggling with even light overclocks, though. I recall gameport having issues with speeds outside of 4.77 mhz, and certain TSRs existing to counteract that.

Sufficiently advanced bioses will lower the clock/bus speed during post, perhaps knowing that BIOS chips can be slow and they might need to be read into ram (for shadowing) slowly. These speeds get multiplied as you raise the ISA clock though, so all of a sudden your bios is "turboing down" to 12 mhz or so to try and safely post.

See some photos below.
 

Attachments

  • IMG_6735.jpeg
    IMG_6735.jpeg
    1.1 MB · Views: 24
  • IMG_6774.jpeg
    IMG_6774.jpeg
    809.3 KB · Views: 23
  • IMG_6787.jpeg
    IMG_6787.jpeg
    860.8 KB · Views: 23
  • IMG_6790.jpeg
    IMG_6790.jpeg
    1.2 MB · Views: 18
  • IMG_6720.jpeg
    IMG_6720.jpeg
    617.7 KB · Views: 17
  • IMG_6789.jpeg
    IMG_6789.jpeg
    460.1 KB · Views: 19
"Overclocking" V20:
  • I did reach a fairly stable operation at 13.33 MHz (40 MHz clock input to 82C84 clock generator) with 16 MHz V20HL CPU in my Xi 8088. I wasn't able to make it run any faster. I believe I tried a 48 MHz clock next, which would result in a 16 MHz CPU clock, but that didn't work
  • The system didn't insert any memory wait states, and I think I was using 4 I/O wait states
  • Trident TVGA8900/9000 card worked at 12 MHz, maybe even at 13.33 MHz (I don't remember now). Other cards quit working much earlier. Most won't work past 8-10 MHz. Older CGA (both IBM and 3rd party) were particularly bad at working on higher frequencies.
  • It should be noted that V20/V20HL require a 50% duty cycle clock, while 8284 produces a 33% duty cycle, that 8088/8086 use. That might be the reason why I wasn't able to run it any faster.
  • With that being said, at lower frequencies (up to 10-12 MHz), V20 doesn't seem to mind the 33% duty cycle.
ISA Bus and Overclocking
  • ISA is not a synchronous bus. The CPU frequency does not necessarily gets reflected on the ISA bus "speed".
  • IBM PC and IBM XT inserted one wait cycle for each I/O operation (but not for memory)
  • Turbo XT clones typically insert some wait states. Ideally the number of wait states inserted would bring the bus delays related to data availability after /IOR, /IOW, /MEMR, and /MEMW go active, close to these of the original IBM PC/XT at 4.77 MHz clock
  • In discrete logic based Turbo XT's the number of wait states is usually fixed... they simply add 2-4 wait states for 8 MHz operation. Older Turbo XT's won't even do that...
  • Turbo XT chipsets, such as Proton PT8010AF, Faraday FE2010A, Chips and Technologies 82C100, offer some configurability to the number of wait states inserted. They will also change the number of wait states depending whether the board is running in the normal/4.77 MHz mode or in the "turbo" mode
  • IBM AT inserted a number wait states, depending on whether the ISA card is 8-bit or 16-bit one. More wait states for 8-bit, less for 16-bit cards. Also, in AT the cards can use 0WS signal to indicate that they can work without any wait states.
  • Later AT clones, including some 286 chipset based boards, used either some fraction of the CPU clock to run the bus, or a completely independent clock based on 14.31818 MHz signal.
 
Lately I am also testing at higher speeds on a 286 PC without a chipset, using the generic 286 MR BIOS.
The AT system control on the mainboard is a modified version of the 5170 core AT system logic integrated into a CPLD.

I have a Trident 9000B card with 70ns SMD DRAMs on it which works 100% reliable at 16Mhz.
I have run game demo tests of 24 hours without issues at this CPU speed.
So theoretically this card may work fine on faster XTs as well.
The CPU runs at full speed at all times, though indeed some BIOS routines may be slowing it down at certain points, that is quite possible, I can't say.
On XTs if there is discrete logic, it may help to replace certain ICs with ALS logic. On my 8Mhz XT this has resulted in much better DMA function for example.
Controlling the address lines, I have had better and more stable results using HCT logic which has higher amplitudes on the signal outputs.
The databus will probably work best using LS or ALS logic.

At 20Mhz this Trident card won't load the VGA BIOS and also possibly reports some graphics RAM errors though these errors may also have occurred in the CGA card I was using to try to display the MR BIOS messages.

It's my theory that quite possibly the trouble loading the VGA BIOS at higher CPU clock speeds is mostly related to memory issues where the memory can't keep up with the CPU. I don't think it's persé the VGA controller chip itself which is made with quite fast logic. So I will be looking at using a different and faster ROM chip on the VGA card to load the VGA BIOS and replacing the 70ns DRAMs with faster chips on this Trident 9000B card. Since the increase from 16 to 20Mhz is not so big, I think if I used 60ns chips, this may be just enough to be able to support 20Mhz with the video DRAM. Though these are my theoretical assumptions, since the technology is complex. Since the VGA controller is doing the DRAM refresh, possibly the RAM communication may not be going directly but instead through the VGA controller. Anyway, faster DRAM may provide a speed improvement to support faster CPU speeds with this card. If I have the chance to test this I will post about it.

It appears my AT may also have some difficulty loading 8 bit BIOS ROMs at 20Mhz, but I am still investigating this issue because I believe it may be related to the CPU or 82284 and 82288 chips, which on chipset PCs are integrated into the faster chipset logic. I also will be looking into replacing the 82284 and 82288 by CPLD logic.

During my 20Mhz tests I am running into the VGA issues which prevent me from getting further in the POST.
When the MR BIOS doesn't find the VGA card, it continues using CGA output, even when no CGA card is plugged into the slot.
This MR BIOS is really "robust".

At 20Mhz I can still use the keyboard and boot from a floppy when MR BIOS assumes CGA display mode.
I am currently testing with a Harris 16Mhz 286, but I have ordered a 20Mhz version which I will try next month when I receive it. Hopefully it is a real one.

It's still a little early in my test process regarding 20Mhz, I am exploring this now and trying to determine the exact cause of the Trident card not working.
And I plan to read a lot of chipset documentation to see how they slowed down the CPU while accessing cards.
I briefly tested at 16,5 Mhz using a 33Mhz 286_CLK which still worked fine to at least display normally.
A few Mhz more and it fails. I hope to create some method later on to be able to slow down the CPU only while it is reading slower ROMs for example in case this is the actual problem.

Especially when the CPU clock is raised further this will become more and more of an issue.

It's a challenge to try to push the speed without making many compromises.
When you see the system freeze, it is likely a memory issue which causes failures.
For example, when your system contains an EPROM, replacing it with a faster EEPROM chip (like 45ns) will help a lot with clock speeds above 10 Mhz.
 
Some recent testing on my side:

I have a juko xt that runs super stably at 16.5 MHz (runs my benchmarks that take 150+ minutes, even with dram refresh times cut by 95% or so.) It runs momentarily stably at 18 MHz (enough to swap turbo jumper pins and get a quick topbench or landmark score) . As before, tseng et4000 video cards are not a problem and certain xt ide cards are fine even without shadowing their bios . The blue lava xt-ide - which in my opinion looks like the cheapest put-together xtide I’ve seen - is by far the most stable overclocking performer. Many CF cards also fail to work at these speeds.

I don’t use things like floppy, serial, parallel, sound cards at these speeds.

I regularly run isa clocks between 34-43 MHz (so a crystal of twice that) with some video cards on 286 machines. Shadowing roms makes things relatively simple. The vlsi scamp bios dynamically lowers clock using the chipset divider while loading roms during post so even when your ISA clock is very high the rom loading portion runs at 1/6th the clock or so. I can see this clearly using an isa clock measuring device and the chipset documentation and bios options clearly document the feature so it’s not a big surprise.

Anyway, the ISA clock is definitely running at these speeds but I am not convinced that the card is not internally halving the rate so I will use that assumed halved rate from here on. ISA Mach 32s can run as high as 21-22 MHz and tseng et4000ax regularly handled 16-17 MHz fine. Once in a while a cirrus 542x or s3 924 based card (usually manufactured by diamond) will run 16-17 MHz too. Most vga cards start to struggle around 10-12 MHz though. I don’t think I’ve run a trident beyond 12 before myself. There are newer chipsets like Mach 64 and cirrus 5434 and some newer s3 ones that exist on ISA but they contain 386-and-up bios code so I can’t do an apples-to-apples comparison on the same motherboard.

EDIT: Based on a lot of swapping of parts and benchmarking and testing I've come to become pretty used to being able to tell whats a memory speed issue, video card issue, cpu issue, etc. On the v20 16.5 mhz JUKO board, it's definitely the CPU that can't keep up with the clock. Every now and then I buy another lot of four or five for fun, but most of the 16 mhz parts can't even post at 16 mhz - even ones claiming to be legitimate. (I'm not sure under what conditions these parts were validated.) I have some crystals on the way to enable some other speeds to get some finer testing of speeds done. But I think it'll be a few more mhz at least before the video or memory speeds become an issue.
 

Attachments

  • IMG_8421.jpeg
    IMG_8421.jpeg
    224.8 KB · Views: 5
Last edited:
Back
Top