• Please review our updated Terms and Rules here

Some details about using 20 MHz 387SX with a 33 MHz 386SX

upnorth

Experienced Member
Joined
Mar 9, 2016
Messages
76
Location
North
Dear all,


I want to add a numerical (mathematical, math) coprocessor co-processor to my motherboard which has a soldered-in 386SX running at 33MHz. More exactly, it is an AMD Am386 SX/SXL-33. The problem is that I have a 387SX running at 20 MHz, so I will have to set up my motherboard for asynchronous work with the NPU.

The motherboard is probably a Biostar MB-1325/1333ACA-S. I say "probably", because I could only determine it by looking at the images of 386 motherboards on Total Hardware. The closest one is http://www.uncreativelabs.de/th99/m/A-B/32442.htm
While some important elements of my motherboard are missing from that diagram, all the jumpers seem to be in the correct locations, so I will work on the assumption that I found my motherboard.

If you look at the page I linked to, you will see that I have to set jumper 7 to close pins 2 and 3 ("Clock mode select asynchronous"). That's the easy part! What you don't see on that diagram is that there is a socket for a crystal oscillator to the left of the 5th and 6th ISA slot. It is marked with "OSC 1". I assume but am not sure that I need to put an oscillator in there, so that the NPU can work at its own frequency. I also assume but am not sure that the frequency of the oscillator should be 20 MHz. However, note that often with motherboards there are frequency dividers and multipliers.

Can you please help me clarify whether my assumptions are correct? Many thanks in advance.

Oh, and BTW, this is my first ever post in this forum.
 
My guess is that when the jumper is set to asynchronous mode, the whole ISA subsystem will run at a lowered speed, probably the old 14.318 MHz, and the missing oscillator provides just that.
Why not set the CPU speed jumper to 25 MHz, plug in the 387 and see if it runs, I think it will run happily along at 25 MHz. I would try that first, then set the jumper to 33 MHz and see how it goes. Maybe stick a small cooler on top of the 387 if it gets warm/hot.
 
My guess is that when the jumper is set to asynchronous mode, the whole ISA subsystem will run at a lowered speed, probably the old 14.318 MHz, and the missing oscillator provides just that.
Why not set the CPU speed jumper to 25 MHz, plug in the 387 and see if it runs, I think it will run happily along at 25 MHz. I would try that first, then set the jumper to 33 MHz and see how it goes. Maybe stick a small cooler on top of the 387 if it gets warm/hot.
I think your guess is wrong because the motherboard has also a 14.318MHz crystal (just the crystal, not a 4-pin oscillator).
You are right that I could set the CPU speed to 25 MHz, but this whole exercise with asynchronous clock mode is to maximize the clock speeds of both the CPU and the NPU. And this NPU is an Intel part, and from what I've read the Intel 387 was notorious for not handling overclocking well. Typically it would not complain, but calaclulation would result in gibberish results.

All I am asking here is, what should be the NPU's oscillator frequency.


That said.... yeah, I'll try those, just to see what happens. After all, this is all for fun.
 
Last edited:
Without the manual to refer to, we're all just guessing. But what you've described was a relatively common arrangement for a time, and your conclusions seem reasonable so far. Set the jumper for asynchronous, plug in a 20 MHz crystal, and hope for the best.
 
Without the manual to refer to, we're all just guessing. But what you've described was a relatively common arrangement for a time, and your conclusions seem reasonable so far. Set the jumper for asynchronous, plug in a 20 MHz crystal, and hope for the best.

All I could find was the page on Total Hardware.I was counting on the patrons of this forum having had some experience in adding 387 NPUs to their motherboards, since I myself have none. I never added an NPU to any motherboard, 386 or otherwise.

I could, of course, add a 20 MHz oscillator. The problem is, it may clock the NPU at 10 MHz, which then I would not be able to detect: the NPU would give correct results, albeit at about half the speed. I could source a 40 MHz oscillator, at a modest additional expense, but i'd rather avoid that if I know it's almost certainly unnecessary. I have a bunch of 8 MHz and 16 MHz oscillators, from back in the day when I used to do embedded development as a hobby, but nothing even close to 40 MHz.
 
If you have a 16MHz oscillator, then the solution to your problem is obvious. Plug in the 16MHz part and see what speed the NPU runs at. If you run benchmark programs it should be somewhat clear if the FPU is running at 8 or 16MHz. Using the results of that test, you can then determine if you need to purchase a 20 or 40MHz oscillator.

I have installed FPUs many times, but I have never once tried an asynchronous configuration.
 
If you have a 16MHz oscillator, then the solution to your problem is obvious. Plug in the 16MHz part and see what speed the NPU runs at. If you run benchmark programs it should be somewhat clear if the FPU is running at 8 or 16MHz.
I am afraid I wouldn't be. I have no idea what any given application is supposed to gain from the NPU. And I would really need to have a good idea of the execution speed increase at any given clockspeed.
I'm still looking for the oscillators. Will get back when I have everything plugged in. (I found a bunch of 2.5 MHz oscillators - two dozens of them! Must have been a very cheap eBay opportunity, no idea...)
 
quote_icon.png
Originally Posted by Sir_Fartalot

I will not do that for obvious reasons.

Reasons aren't obvious to me... why not? Shipping costs?
Seriously, are you the only one here who's not a mindreader? :)
 
I am afraid I wouldn't be. I have no idea what any given application is supposed to gain from the NPU. And I would really need to have a good idea of the execution speed increase at any given clockspeed

Unless your software is specifically coded for x87 instructions, there will be no execution speed increase. In any case, why bother trying to eyeball the speed increase when you can use a benchmark program that will report the results in a bar graph and allow you to compare against other systems?
 
In any case, why bother trying to eyeball the speed increase when you can use a benchmark program that will report the results in a bar graph and allow you to compare against other systems?
Is there a benchmark program for DOS or otherwise wchich would specifically determine the nmerical processor performance? I am not aware of any.
 
Back
Top